ovirt.vm-infra
oVirt バーチャルマシンインフラ
この役割は oVirt Ansible Collection に移行されましたので、最新のバージョンをそちらから使用してください。このリポジトリは現在読み取り専用で、アクティブな開発には使用されません。
ovirt.vm-infra
役割は、oVirt内のバーチャルマシンインフラを管理します。この役割は、作成されたバーチャルマシンのインベントリも作成します。これは、wait_for_ip
が true
に設定され、バーチャルマシンの状態が running
の場合に定義されます。すべての定義されたバーチャルマシンは、ovirt_vm
インベントリグループの一部です。この役割は、バーチャルマシンにタグが割り当てられている場合、ovirt_tag_{tag_name}
グループも作成し、そのタグを持つバーチャルマシンをそのインベントリグループに配置します。
次の変数構造を考慮してください:
vms:
- name: myvm1
tag: mytag1
profile: myprofile
- name: myvm2
tag: mytag2
profile: myprofile
この役割は、myvm1
と myvm2
の両方を持つ 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-infra
、oVirt.vm-infra
、ovirt-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アドレスを報告しているか確認するまでの待機時間(秒)。 |
vms
と profile
変数には次の属性を含めることができます。同じ変数を両方で定義した場合、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_guaranteed はmemoryを下回ってはいけません。 |
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 | 起動に使用するブートデバイスのリスト。 有効なエントリーはcdrom 、hd 、network 。 |
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 | ディスクのフォーマットを指定します。
|
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 |
|
host_rule | UNDEF |
|
hosts | UNDEF | このグループに割り当てられたホスト名のリスト。 |
name | UNDEF (必須) | アフィニティグループの名前。 |
state | UNDEF | グループが存在すべきか、または存在しないべきか。 |
vm_enforcing | false |
|
vm_rule | UNDEF |
|
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
ライセンス
Apache License 2.0