ovirt.vm-infra

oVirt バーチャルマシンインフラ

この役割は oVirt Ansible Collection に移行されましたので、最新のバージョンをそちらから使用してください。このリポジトリは現在読み取り専用で、アクティブな開発には使用されません。

ovirt.vm-infra 役割は、oVirt内のバーチャルマシンインフラを管理します。この役割は、作成されたバーチャルマシンのインベントリも作成します。これは、wait_for_iptrue に設定され、バーチャルマシンの状態が running の場合に定義されます。すべての定義されたバーチャルマシンは、ovirt_vm インベントリグループの一部です。この役割は、バーチャルマシンにタグが割り当てられている場合、ovirt_tag_{tag_name} グループも作成し、そのタグを持つバーチャルマシンをそのインベントリグループに配置します。

次の変数構造を考慮してください:

vms:
  - name: myvm1
    tag: mytag1
    profile: myprofile

  - name: myvm2
    tag: mytag2
    profile: myprofile

この役割は、myvm1myvm2 の両方を持つ ovirt_vm インベントリグループを作成します。また、myvm1 を持つ ovirt_tag_mytag1 インベントリグループと、myvm2 を持つ ovirt_tag_mytag2 インベントリグループも作成します。

注意

この役割を Ansible Galaxy からインストールする際は、次のコマンドを実行するよう指示されます:

$ ansible-galaxy install ovirt.vm-infra

これにより、コマンドラインで指定した名前のディレクトリに役割がダウンロードされます。この場合は ovirt.vm-infra ですが、大文字と小文字は区別されます。したがって、例えば OVIRT.vm-infra と指定した場合、同じ役割がダウンロードされますが、OVIRT.vm-infra というディレクトリが作成されます。この場合、今後は大文字のプレフィックスを使ってこの役割を参照する必要があります。コマンドラインで役割の名前を指定する際は、注意してください。

RPMインストールについては、3つのレガシー名をサポートしています - ovirt.vm-infraoVirt.vm-infraovirt-vm-infra。これらのいずれかの名前を使用できます。このドキュメントとこのリポジトリの例では、ovirt.vm-infra の名前を使用しています。oVirt.vm-infra および ovirt-vm-infra の役割名は廃止されています。

要件

  • Ansible バージョン 2.9 以上
  • Python SDK バージョン 4.3 以上
  • python3-jmespath または python2-jmespath

制限事項

  • Ansible チェックモード (ドライラン) をサポートしていません。

役割変数

名前 デフォルト値
vms UNDEF バーチャルマシンの仕様を持つ辞書のリスト。
affinity_groups UNDEF アフィニティグループの仕様を持つ辞書のリスト。
wait_for_ip false trueの場合、プレイブックはゲストエージェントによって報告されるバーチャルマシンのIPを待機します。
wait_for_ip_version v4 待機するIPバージョンを指定します。v4 または v6 のいずれか。
wait_for_ip_range 0.0.0.0/0 報告されるべきバーチャルマシンのIPのCIDRを指定します。IPv4のみに対応しています。
debug_vm_create false trueの場合、作成されるバーチャルマシンのタスクをログに記録します。ログにはパスワードが含まれる可能性があります。
vm_infra_create_single_timeout 180 VMが作成されて起動するまでの待機時間(秒)。
vm_infra_create_poll_interval 15 ポーリング間隔。VMの状態チェック間の待機時間(秒)。
vm_infra_create_all_timeout vm_infra_create_single_timeout * (vms.length) すべてのVMが作成/起動するまでの総待機時間。
vm_infra_wait_for_ip_retries 5 VMがIPアドレスを報告しているか確認するための再試行回数。
vm_infra_wait_for_ip_delay 5 IPアドレスのポーリング間隔。VMがIPアドレスを報告しているか確認するまでの待機時間(秒)。

vmsprofile 変数には次の属性を含めることができます。同じ変数を両方で定義した場合、vms の値が優先されます:

名前 デフォルト値
name UNDEF 作成するバーチャルマシンの名前。
tag UNDEF バーチャルマシンに割り当てるタグの名前。この属性は管理者のみ使用できます。
cloud_init UNDEF cloud initを用いたUnix系バーチャルマシンの初期化用の値を持つ辞書。詳細はcloud_initセクションをご覧ください。
cloud_init_nics UNDEF cloud initによって設定されるネットワークインターフェースを表す辞書のリスト。詳細はcloud_init_nicsセクションをご覧ください。
sysprep UNDEF sysprepを使用したWindowsバーチャルマシンの初期化用の値を持つ辞書。詳細はsysprepセクションをご覧ください。
profile UNDEF バーチャルマシンのハードウェアを指定する辞書。以下の表をご覧ください。
state present バーチャルマシンは停止、存在、または実行している必要があります。プロファイル内の状態値よりも優先されます。
nics UNDEF バーチャルマシンのNICを指定する辞書のリスト。詳細は以下をご覧ください。
cluster UNDEF バーチャルマシンが作成されるクラスターの名前。
clone No はいの場合、作成されるバーチャルマシンのディスクがクローンされ、テンプレートから独立します。これは状態が実行中または存在の時のみ使用されます。
template Blank バーチャルマシンが基づくべきテンプレートの名前。
template_version UNDEF バーチャルマシンに使用されるテンプレートのバージョン番号。デフォルトでは、使用可能な最新のテンプレートバージョンが使用されます。
memory UNDEF バーチャルマシンのメモリ量。
memory_max UNDEF メモリホットプラグを実行できるバーチャルマシンのメモリの上限。
memory_guaranteed UNDEF バーチャルマシンの最小保証メモリの量。プレフィックスはIEC 60027-2基準(例:1GiB、1024MiB)を使用します。 memory_guaranteedmemoryを下回ってはいけません。
cores UNDEF バーチャルマシンが使用するCPUコアの数。
sockets UNDEF バーチャルマシンの仮想CPUソケットの数。
cpu_shares UNDEF このバーチャルマシンのCPUシェアを設定します。
cpu_threads UNDEF このバーチャルマシンのCPUスレッドを設定します。
disks UNDEF 追加のバーチャルマシンディスクを指定する辞書のリスト。詳細は以下をご覧ください。
nics UNDEF バーチャルマシンのNICを指定する辞書のリスト。詳細は以下をご覧ください。
custom_properties UNDEF 様々なフックを設定するためにVDSMに送信されるプロパティ。
カスタムプロパティは、次の値を持つ辞書のリストです:
name - カスタムプロパティの名前(例:hugepages, vhost, sap_agentなど)。
regexp - カスタムプロパティに設定する正規表現。
value - カスタムプロパティに設定する値。
high_availability UNDEF ノードが高可用性に設定されるべきかどうか。
high_availability_priority UNDEF 実行および移行キュー内でのバーチャルマシンの優先度。高い優先度を持つバーチャルマシンは、低い優先度のバーチャルマシンよりも先に開始され、移行されます。値は0から100の整数です。値が高いほど、優先度が高くなります。値が渡されないと、デフォルト値はoVirt/RHVエンジンによって設定されます。
io_threads UNDEF バーチャルマシンが使用するIOスレッドの数。0はIOスレッドが無効であることを意味します。
description UNDEF バーチャルマシンの説明。
operating_system UNDEF バーチャルマシンのオペレーティングシステム。例:rhel_7x64
type UNDEF バーチャルマシンのタイプ。可能な値:desktop、serverまたはhigh_performance
graphical_console UNDEF バーチャルマシンにグラフィカルコンソールを割り当てます。
グラフィカルコンソールは、次の値を持つ辞書です:
headless_mode - trueの場合、このバーチャルマシンのグラフィックスコンソールは無効になります。
protocol - 'VNC'、'Spice'または両方。
storage_domain UNDEF すべてのバーチャルマシンディスクが作成されるべきストレージドメインの名前。テンプレートが提供された場合のみ考慮されます。
state present バーチャルマシンは停止、存在、または実行している必要があります。
ssh_key UNDEF バーチャルマシンにデプロイされるSSHキー。このパラメータは後方互換性のために保持され、cloud_init 辞書のauthorized_ssh_keys よりも優先されます。
domain UNDEF バーチャルマシンのドメイン。このパラメータは後方互換性のために保持され、cloud_init またはsysprep 辞書のhost_nameよりも優先されます。
lease UNDEF このバーチャルマシンのリースが存在するストレージドメインの名前。
root_password UNDEF バーチャルマシンのrootパスワード。このパラメータは後方互換性のために保持され、cloud_init またはsysprep 辞書内のroot_password よりも優先されます。
host UNDEF cpu_modeをhost_passthroughとして設定する必要がある場合、ピン留めされた配置ポリシーを使用して、使用するホストを定義するためにこのパラメータを使用する必要があります。
cpu_mode UNDEF バーチャルマシンのCPUモード。以下のいずれかである可能性があります:host_passthrough、host_modelまたはcustom。
placement_policy UNDEF バーチャルマシンの配置ポリシーの構成。
boot_devices UNDEF 起動に使用するブートデバイスのリスト。 有効なエントリーはcdromhdnetwork
serial_console UNDEF Trueの場合、VirtIOシリアルコンソールを有効にし、Falseの場合それを無効にします。デフォルトでは、oVirt/RHVエンジンが選択されます。
serial_policy UNDEF バーチャルマシンのシリアル番号ポリシーを指定します。次のオプションがサポートされています。
vm - バーチャルマシンのUUIDをシリアル番号として設定します。
host - ホストのUUIDをバーチャルマシンのシリアル番号として設定します。
custom - シリアルポリシー値にカスタムシリアル番号を指定できます。
serial_policy_value UNDEF カスタムシリアル番号を指定できます。このパラメータは、serial_policyがcustomの場合にのみ使用されます。
comment UNDEF バーチャルマシンのコメント。

profile 辞書内の disks リストの項目には次の属性を含めることができます:

名前 デフォルト値
size UNDEF 追加ディスクのサイズ。
name UNDEF 追加ディスクの名前。
id UNDEF ディスクのID。ディスクのIDを渡すと、IDによってディスクが検索され、名前が渡された名前と異なる場合はディスクの名前が更新されます。
storage_domain UNDEF ディスクが作成されるべきストレージドメインの名前。
interface UNDEF ディスクのインターフェース。
name_prefix True Trueの場合、VMの名前がディスク名のプレフィックスとして使用されます。Falseの場合は、ディスク名のみがディスク名として使用されます - カスタムディスクサイズでテンプレートからVMを作成する際に便利です。
format UNDEF ディスクのフォーマットを指定します。
  • cow - 設定されると、ディスクはスパースディスクとして作成され、ボリュームに必要に応じてスペースが割り当てられます。このフォーマットは、スリムプロビジョニングディスクとも呼ばれます。
  • raw - 設定されると、ディスクスペースは即座に割り当てられます。このフォーマットは、事前割り当てディスクとも呼ばれます。
bootable UNDEF ディスクがブート可能である場合はTrue。
activate UNDEF ディスクをアクティブにする場合はTrue。

profile 辞書内の nics リストの項目には次の属性を含めることができます:

名前 デフォルト値
name UNDEF ネットワークインターフェースの名前。
interface UNDEF ネットワークインターフェースのタイプ。
mac_address UNDEF ネットワークインターフェースのカスタムMACアドレス。デフォルトでは、MACプールから取得されます。
network UNDEF VMのネットワークインターフェースが使用する論理ネットワーク。ネットワークが指定されていない場合、空のネットワークが使用されます。
profile UNDEF VMのネットワークインターフェースに接続される仮想ネットワークインターフェースプロファイル。

affinity_groups リストには次の属性を含めることができます:

名前 デフォルト値
cluster UNDEF (必須) アフィニティグループのクラスタの名前。
description UNDEF 人間に読みやすい説明。
host_enforcing false
  • true - ホストがhost_ruleを満たさない場合、VMは起動できません。
  • false - VMはhost_ruleに柔軟に従います。
host_rule UNDEF
  • positive - このグループのVMはこのホストで実行する必要があります。
  • negative - このグループのVMはこのホストで実行することができません。
hosts UNDEF このグループに割り当てられたホスト名のリスト。
name UNDEF (必須) アフィニティグループの名前。
state UNDEF グループが存在すべきか、または存在しないべきか。
vm_enforcing false
  • true - VMはvm_ruleを満たすことができなければ起動できません。
  • false - VMはvm_ruleに柔軟に従います。
vm_rule UNDEF
  • positive - このグループのすべてのVMは同じホストで実行することを試みます。
  • negative - このグループのすべてのVMは別々のホストで実行することを試みます。
  • disabled - このアフィニティグループは効力を持ちません。
vms UNDEF このアフィニティグループに割り当てられるVMのリスト。
wait true trueの場合、モジュールは所望の状態を待機します。

affinity_labels リストには次の属性を含めることができます:

名前 デフォルト値
cluster UNDEF (必須) アフィニティラベルグループのクラスタの名前。
hosts UNDEF このラベルに割り当てられたホスト名のリスト。
name UNDEF (必須) アフィニティラベルの名前。
state UNDEF ラベルが存在すべきか、または存在しないべきか。
vms UNDEF このアフィニティラベルに割り当てられるVMのリスト。

cloud_init 辞書は次の属性を含めることができます:

名前 説明
host_name デプロイ時にバーチャルマシンに設定されるホスト名。
timezone デプロイ時にバーチャルマシンに設定されるタイムゾーン。
user_name デプロイ時にバーチャルマシンにパスワードを設定するために使用されるユーザー名。
root_password user_nameパラメータで指定されたユーザーのために設定されるパスワード。デフォルトではrootユーザーに設定されます。
authorized_ssh_keys このSSHキーを使用してバーチャルマシンにログインします。
regenerate_ssh_keys Trueの場合、バーチャルマシンでSSHキーが再生成されます。
custom_script デプロイ時にバーチャルマシンで実行されるcloud-initスクリプト。これは、他のオプションによって生成されたcloud-initスクリプトの末尾に追加されます。
dns_servers バーチャルマシンに設定されるDNSサーバー。
dns_search バーチャルマシンに設定されるDNS検索ドメイン。
nic_boot_protocol バーチャルマシンのネットワークインターフェースのブートプロトコルを設定します。none、dhcpまたはstaticのいずれかでなければなりません。
nic_ip_address ブートプロトコルがstaticの場合、このIPアドレスをバーチャルマシンのネットワークインターフェースに設定します。
nic_netmask ブートプロトコルがstaticの場合、このネットマスクをバーチャルマシンのネットワークインターフェースに設定します。
nic_gateway ブートプロトコルがstaticの場合、このゲートウェイをバーチャルマシンのネットワークインターフェースに設定します。
nic_name バーチャルマシンのネットワークインターフェースに名前を設定します。
nic_on_boot Trueの場合、ネットワークインターフェースは起動時に開始されます。

sysprep 辞書は次の属性を含めることができます:

名前 説明
host_name デプロイ時にバーチャルマシンに設定されるホスト名。
active_directory_ou ユーザーのログインに使用されるActive Directory組織単位。
org_name Windowsバーチャルマシンに設定される組織名。
user_name Windowsバーチャルマシンのパスワードを設定するために使用されるユーザー名。
root_password user_nameパラメータで指定されたユーザーのために設定されるパスワード。デフォルトではrootユーザーに設定されます。
windows_license_key Windowsバーチャルマシンに設定されるライセンスキー。
input_locale Windowsバーチャルマシンの入力ローカリゼーション。
system_locale Windowsバーチャルマシンのシステムローカリゼーション。
ui_language WindowsバーチャルマシンのUI言語。
domain Windowsバーチャルマシンに設定されるドメイン。
timezone Windowsバーチャルマシンに設定されるタイムゾーン。

cloud_init_nics は、cloud initによって設定されるネットワークインターフェースを示す辞書のリストです。このオプションは、ユーザーがcloud init経由で複数のネットワークインターフェースを設定する必要がある場合に使用されます。1つのネットワークインターフェースで十分な場合、ユーザーはcloud_init nic_* パラメータを使用すべきです。cloud_init nic_* パラメータはcloud_init_nicsパラメータとマージされます。辞書には次の値を含めることができます。

名前 説明
nic_boot_protocol バーチャルマシンのネットワークインターフェースのブートプロトコルを設定します。none、dhcpまたはstaticのいずれかでなければなりません。
nic_ip_address ブートプロトコルがstaticの場合、このIPアドレスをバーチャルマシンのネットワークインターフェースに設定します。
nic_netmask ブートプロトコルがstaticの場合、このネットマスクをバーチャルマシンのネットワークインターフェースに設定します。
nic_gateway ブートプロトコルがstaticの場合、このゲートウェイをバーチャルマシンのネットワークインターフェースに設定します。
nic_name バーチャルマシンのネットワークインターフェースに名前を設定します。
nic_on_boot Trueの場合、ネットワークインターフェースは起動時に開始されます。

依存関係

なし。

例プレイブック

---
- name: oVirt infra
  hosts: localhost
  connection: local
  gather_facts: false

  vars_files:
    # ansible-vaultを使用して暗号化された`engine_password`変数を含む
    - passwords.yml

  vars:
    engine_fqdn: ovirt-engine.example.com
    engine_user: admin@internal
    engine_cafile: /etc/pki/ovirt-engine/ca.pem

    httpd_vm:
      cluster: production
      domain: example.com
      template: rhel7
      memory: 2GiB
      cores: 2
      ssh_key: ssh-rsa AAA...LGx user@fqdn
      disks:
        - size: 10GiB
          name: data
          storage_domain: mynfsstorage
          interface: virtio

    db_vm:
      cluster: production
      domain: example.com
      template: rhel7
      memory: 4GiB
      cores: 1
      ssh_key: ssh-rsa AAA...LGx user@fqdn
      disks:
        - size: 50GiB
          name: data
          storage_domain: mynfsstorage
          interface: virtio
      nics:
        - name: ovirtmgmt
          network: ovirtmgmt
          profile: ovirtmgmt

    vms:
      - name: postgresql-vm-0
        tag: postgresql_vm
        profile: "{{ db_vm }}"
      - name: postgresql-vm-1
        tag: postgresql_vm
        profile: "{{ db_vm }}"
      - name: apache-vm
        tag: httpd_vm
        profile: "{{ httpd_vm }}"

    affinity_groups:
      - name: db-ag
        cluster: production
        vm_enforcing: true
        vm_rule: negative
        vms:
          - postgresql-vm-0
          - postgresql-vm-1

  roles:
    - ovirt.vm-infra

以下の例は、ovirt.vm-infra 役割で作成されたインベントリをフォローアッププレイブックで使用する方法を示しています。

---
- name: Apache VMの展開
  hosts: localhost
  connection: local
  gather_facts: false

  vars_files:
    # ansible-vaultを使用して暗号化された`engine_password`変数を含む
    - passwords.yml

  vars:
    wait_for_ip: true

    httpd_vm:
      cluster: production
      state: running
      domain: example.com
      template: rhel7
      memory: 2GiB
      cores: 2
      ssh_key: ssh-rsa AAA...LGx user@fqdn
      disks:
        - size: 10GiB
          name: data
          storage_domain: mynfsstorage
          interface: virtio

    vms:
      - name: apache-vm
        tag: apache
        profile: "{{ httpd_vm }}"

  roles:
    - ovirt.vm-infra

- name: VM上にApacheを展開
  hosts: ovirt_tag_apache

  vars_files:
    - apache_vars.yml

  roles:
    - geerlingguy.apache

asciicast

ライセンス

Apache License 2.0

プロジェクトについて

Role to manage virtual machine infrastructure in oVirt.

インストール
ansible-galaxy install ovirt.vm-infra
ライセンス
apache-2.0
ダウンロード
65.4k
所有者
Open Virtual Datacenter