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

手順

  1. 次のコマンドを実行して、Manager マシンに oVirt Ansible Collection をインストールします。

    # dnf install ovirt-ansible-collection
  2. デフォルトでは、コレクションは次の場所にインストールされます。

    /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 ドキュメント の指示に従います。

手順

  1. コレクションをインストールします。

    # ansible-galaxy collection install redhat.rhv
  2. 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 がインストールされていることを確認する。

手順

  1. 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 という名前のデータセンターが作成されました。