3.5. Ansible を使用した設定タスクの自動化
Ansible は、システムの設定、ソフトウェアのデプロイ、ローリング更新の実行に使用する自動化ツールです。Red Hat Virtualization には、データセンターのセットアップと設定、ユーザーの管理、仮想マシンの操作など、RHV のインストール後のタスクを自動化するための限定バージョンの Ansible が含まれています。
Ansible は、REST API や SDK と比較して、Red Hat Virtualization 設定を自動化する簡単な方法を提供し、他の Ansible モジュールと統合できます。Red Hat Virtualization で利用可能な Ansible モジュールの詳細は、Red Hat Ansible Automation Hub ドキュメントの oVirt Ansible Collection を参照してください。
Ansible Tower は、Ansible の Web インターフェイスと REST API を介してアクセスできるグラフィカルに有効化されたフレームワークです。Ansible Tower のサポートが必要な場合は、Red Hat Virtualization サブスクリプションの一部ではない Ansible Tower ライセンスが必要です。
他のインストール手順、および Ansible の使用に関する情報は、Ansible のドキュメント を参照してください。
3.5.1. oVirt Ansible Collection
oVirt Ansible コレクション は、Red Hat Virtualization インフラストラクチャーのさまざまな部分を管理するためのモジュール、ロール、およびプラグインを提供します。モジュールは、Ansible と Red Hat Virtualization Manager 間の通信に使用されます。Ansible のロールは、大きな Playbook を他のユーザーと共有できる小さな再利用可能なファイルに分割することで、Ansible コードをモジュール化する方法を提供します。oVirt Ansible Collection の詳細は、Automation Hub のドキュメントを参照してください。
3.5.1.1. RPM パッケージからの oVirt Ansible Collection のインストール
oVirt Ansible Collection for Red Hat Virtualization は、Red Hat Virtualization Manager のリポジトリーからインストールできます。
前提条件
oVirt Ansible Collection をインストールするには、次のサブスクリプションチャネルのいずれかにサブスクライブする必要があります。
- Red Hat Virtualization サブスクリプションを使用する場合 - rhv-4.4-manager-for-rhel-8-x86_64-rpms
- 任意の Red Hat Enterprise Linux サブスクリプションを使用する場合 - rhv-4-tools-for-rhel-8-x86_64-rpms
手順
次のコマンドを実行して、Manager マシンに oVirt Ansible Collection をインストールします。
# dnf install ovirt-ansible-collection
デフォルトでは、コレクションは次の場所にインストールされます。
/usr/share/ansible/collections/ansible_collections/redhat/rhv
ovirt-ansible-collection
パッケージの構造は次のとおりです。/usr/share/ansible/collections/ansible_collections/redhat/rhv/usr/share/doc/ovirt-ansible-collection/
3.5.1.2. Automation Hub からの oVirt Ansible Collection のインストール
Automation Hub は、oVirt Ansible Collection のインストールに使用できる新しい場所です。環境を設定するには、oVirt Ansible Collection ドキュメント の指示に従います。
手順
コレクションをインストールします。
# ansible-galaxy collection install redhat.rhv
Automation Hub は現在、RPM 依存関係をインストールしていません。Playbook を実行するホストに次のパッケージがあることを確認してください。
-
python3-ovirt-engine-sdk4
-
python3-netaddr
-
python3-jmespath
-
python3-passlib
-
3.5.1.3. oVirt Ansible コレクションを使用した Red Hat Virtualization の設定
次の手順では、oVirt Ansible Collection を使用して Red Hat Virtualization を設定する Playbook を作成および実行する方法を説明します。この例では、Ansible を使用してローカルマシンのマネージャーに接続し、新しいデータセンターを作成します。
前提条件
- Playbook を実行しているマシンに Python SDK がインストールされていることを確認する。
手順
Playbook を作成します。
- name: RHV infrastructure hosts: localhost connection: local gather_facts: false vars_files: # Contains variables to connect to the Manager - engine_vars.yml # Contains encrypted engine_password variable using ansible-vault - passwords.yml pre_tasks: # The use of redhat.rhv before ovirt_auth is to check if oVirt Ansible Collection is correctly loaded - name: Login to RHV redhat.rhv.ovirt_auth: hostname: "{{ engine_fqdn }}" username: "{{ engine_user }}" password: "{{ engine_password }}" ca_file: "{{ engine_cafile | default(omit) }}" insecure: "{{ engine_insecure | default(true) }}" tags: - always vars: data_center_name: mydatacenter data_center_description: mydatacenter data_center_local: false compatibility_version: 4.4 roles: - infra collections: - redhat.rhv post_tasks: - name: Logout from RHV ovirt_auth: state: absent ovirt_auth: "{{ ovirt_auth }}" tags: - always
これで、oVirt Ansible Collection の Ansible ロール infra
を使用して、mydatacenter
という名前のデータセンターが作成されました。