第14章 Ansible を使用した設定作業の自動化
Ansible は、システムの設定、ソフトウェアのデプロイ、およびローリングアップデートの実行に使用する自動化ツールです。Ansible には Red Hat Virtualization のサポートが含まれ、Ansible のモジュールを使用してインストール後の作業 (データセンターのセットアップおよび設定、ユーザーの管理、または仮想マシンの操作) を自動化することができます。
REST API および SDK を用いた場合と比較して、Ansible による Red Hat Virtualization 設定の自動化は容易で、他の Ansible モジュールと統合することができます。Red Hat Virtualization に利用可能な Ansible モジュールの詳細については、Ansible のドキュメントの Ovirt modules を参照してください。
Ansible Tower は、Ansible の Web インターフェースおよび REST API エンドポイントからアクセスできるグラフィック対応のフレームワークです。Ansible Tower に対するサポートを受けるには、Ansible Tower のライセンスが必要です (Red Hat Virtualization のサブスクリプションには含まれていません)。
Ansible は Red Hat Virtualization に同梱されています。Ansible をインストールするには、必要なリポジトリーを有効にする必要があります。『インストールガイド』の「Red Hat Virtualization Manager リポジトリーの有効化」を参照し、以下のコマンドを実行してください。
yum install ansible
# yum install ansible
その他のインストール手順および Ansible の使用方法については、Ansible のドキュメント を参照してください。
Ansible Playbook 実行時の Manager の詳細度レベルを永続的に上げるには、以下に示す内容で /etc/ovirt-engine/engine.conf.d/
に設定ファイルを作成します。
ANSIBLE_PLAYBOOK_VERBOSE_LEVEL=4
ファイルを作成したら、systemctl restart ovirt-engine
を実行して Manager を再起動する必要があります。
14.1. Ansible ロール リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Virtualization インフラストラクチャーのさまざまな要素の設定および管理に役立つ Ansible ロールが、複数用意されています。Ansible ロールにより、大規模な Playbook を他のユーザーと共有できる小規模で再利用可能なファイルに分割して、Ansible コードをモジュール化することができます。
Red Hat Virtualization で利用可能な Ansible ロールは、さまざまなインフラストラクチャーコンポーネントごとにカテゴリー分けされます。Ansible ロールの詳細については、「oVirt Ansible Roles」のドキュメントを参照してください。Ansible ロールと共にインストールされるドキュメントについては、「Ansible ロールのインストール」を参照してください。
14.1.1. Ansible ロールのインストール リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Virtualization 用の Ansible ロールは、「rhel-7-server-rhv-4.2-manager-rpms」リポジトリーからインストールすることができます。詳細については、『インストールガイド』の「Red Hat Virtualization Manager リポジトリーの有効化」を参照してください。
以下のコマンドを使用して Ansible ロールをインストールします。
yum install ovirt-ansible-roles
# yum install ovirt-ansible-roles
デフォルトでは、ロールは /usr/share/ansible/roles にインストールされます。ovirt-ansible-roles
パッケージの構成は以下のとおりです。
- /usr/share/ansible/roles: ロールを保管
- /usr/share/doc/ovirt-ansible-roles/: サンプル、基本概要、およびライセンスを保管
- /usr/share/doc/ansible/roles/role_name: ロールに固有のドキュメントを保管
14.1.2. Ansible ロールを使用した Red Hat Virtualization の設定 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順で、Ansible ロールを使用した Playbook の作成/実行から Red Hat Virtualization 設定までの一連のプロセスを説明します。以下の例では、Ansible を使用してローカルマシン上の Manager に接続し、新規データセンターを作成します。
前提条件
-
/etc/ansible/ansible.cfg の
roles_path
オプションが Ansible ロールの場所 (/usr/share/ansible/roles) をポイントしていること。 - Playbook を実行するマシンに Python SDK がインストールされていること。
Ansible ロールを使用した Red Hat Virtualization の設定
作業ディレクトリーに、Red Hat Virtualization Manager のユーザーパスワードを保管するためのファイルを作成します。
cat passwords.yml --- engine_password: youruserpassword
# cat passwords.yml --- engine_password: youruserpassword
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーパスワードを暗号化します。Vault パスワードが要求されます。
ansible-vault encrypt passwords.yml
# ansible-vault encrypt passwords.yml New Vault password: Confirm New Vault password:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow URL、証明書の場所、ユーザー等の Manager に関する情報を保管するファイルを作成します。
cat engine_vars.yml --- engine_url: https://example.engine.redhat.com/ovirt-engine/api engine_user: admin@internal engine_cafile: /etc/pki/ovirt-engine/ca.pem
# cat engine_vars.yml --- engine_url: https://example.engine.redhat.com/ovirt-engine/api engine_user: admin@internal engine_cafile: /etc/pki/ovirt-engine/ca.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記これらの変数は、ファイルに保管せずに直接 Playbook に追加することもできます。
Playbook を作成します。この手順を簡素化する場合には、/usr/share/doc/ovirt-ansible-roles/examples のサンプルをコピーしてそれを変更することができます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Playbook を実行します。
ansible-playbook --ask-vault-pass rhv_infra.yml
# ansible-playbook --ask-vault-pass rhv_infra.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ovirt-datacenters
Ansible ロールを使用して、mydatacenter
という名前のデータセンターを正しく作成することができました。