thulium_drake.vmware
VMWare用Ansibleツールキット
この役割は、VMWareクラスターで使用するための複数のアクションを提供します。現在の機能は以下の通りです。
- powerstate : VMの電源状態を管理します
- provision_guest : VMやテンプレートの作成/編集(いくつかの制限がある場合があります!)
- snap : VMのスナップショットを管理します
この役割は、必要なアクションを別のマシンに委任できます。このマシンは、対象とする各VMに対して異なる場合もあります。この役割の中では、このホストを「APIホスト」と呼びます。
環境内でVMを特定する必要があるタスクについては、対象となるVMのすべての情報を含む追加の変数が使用可能です。これにより、たとえばスナップショット名にVMWareの属性を使用できます。この情報は「vm_info」変数に見つけることができます。
使用方法
このモジュールはPyVmomiとVMWare SDKを使用する必要があります。この役割は、必要な依存関係を自動的に検出し、インストールを試みます。
これらの依存関係を手動でインストールする方法についての詳細な指示は、例のセットアップを確認してください。
RHEL 8での使用に関する注意
この役割はRHEL8でも完璧に動作しますが、vSphere SDKに必要なPythonのバージョンのために、vSphereのメジャーバージョンに応じてansible_python_interpreter
を変更する必要があります。検出する方法については、例のプレイブックを参照してください。
- vSphere 7 SDKはPython 3.3以上が必要です
- vSphere 8 SDKはPython 3.8以上が必要で、RHEL8ではカスタムの
ansible_python_interpreter
が必要です
この役割はvSphere 7のサポートに準備されていますが、これは未テストです。
複数のvSphereクラスター?問題ありません!
プレイブックは、対象とするVMのhostvars内のvSphereの資格情報と情報を使用するように構成されています。そのため、複数のVMwareクラスターの設定は、特定のホスト/グループのためにこれらの資格情報を定義するだけで簡単にできます。
Ansibleがプレイブックを実行すると、それぞれの対象となるVMのために必要な情報をすべて検索します。ホストごとに検索される必要がある変数('group_vars'に定義する必要がある)は以下の通りです:
- vsphere_api_host
- vsphere_datacenter
- vsphere_host
- vsphere_password
- vsphere_username
電源状態
サポートされている状態は以下の通りです:
- VMWareツールまたは仮想電源ボタンを使用してVMの電源を入れる
- VMWareツールまたは仮想電源ボタンを使用してVMの電源を切る
- VMWareツールまたは仮想電源ボタンを使用してVMを再起動/リセットする
この役割は必要な情報を求めることはありません。それは、呼び出すために使用するプレイブックを通じてのみ提供できます:
- hosts: all
gather_facts: no
tasks:
- import_role:
name: vmware
vars:
target_action: "powerstate"
target_state: "powered-on"
run_once: yes
必要な変数:
- target_action: この役割に付属するプレイブックの1つ
- target_state: サポートされた状態リストの1つ
スナップ
サポートされているアクションは以下の通りです:
- スナップショットを作成(自動的に日付スタンプを付けるか、指定された名前で)
- 指定されたスナップショットまたはすべてのスナップショットを削除
- 指定されたスナップショットに戻る。このスクリプトは、選択するためのリストを提供しません。
この役割は必要な情報を求めることはありません。それは、呼び出すために使用するプレイブックを通じてのみ提供できます:
- hosts: all
gather_facts: no
tasks:
- import_role:
name: vmware
vars:
target_action: "snap"
target_state: "present"
target_snapshot_name: ansible_snap_stuff
run_once: yes
必要な変数:
- target_action: この役割に付属するプレイブックの1つ
- target_state: サポートされたアクションリストの1つ
任意の変数:
- target_snapshot_name:
- スナップショットを作成する場合:スナップショットの名前を上書き
- スナップショットを戻す/削除する場合:削除するターゲットスナップショット
ゲストのプロビジョニング
サポートされているアクションは以下の通りです:
- テンプレートまたは他のVMを基に新しいVMを作成する
- VMを削除する
- VMを基に新しいテンプレートを作成する
この役割は必要な情報を求めることはありません。それは呼び出すために使用するプレイブックを通じてのみ提供されます。デフォルトのハードウェアプロファイルはdefaultsディレクトリに用意されています。
新しいVMを作成するには、以下の手順に従います:
- 以下の情報を含むvarsファイルを作成します(詳細はvmware_guestモジュールのドキュメントを確認してください):
- データストア
- VMフォルダー
- テンプレート(存在を確認してください)
- ディスクの設定とディスクコントローラーの種類
- ネットワークの設定
- RAMとCPUの設定
- VMハードウェアバージョンとBIOSタイプ
- インベントリに新しいエントリを追加します
- プレイブックを実行します。例:
---
- hosts: new-host.example.com
gather_facts: no
tasks:
- import_role:
name: vmware
vars:
target_action: provision_guest
target_state: present
target_esxi_hostname: esxi.example.com
run_once: yes
必要な変数(これらのほとんどにはデフォルト値があります):
- target_action: この役割に付属するプレイブックの1つ
- target_state: サポートされたアクションリストの1つ。
- target_esxi_hostname / target_esxi_cluster : VMが動作するホスト/クラスターの名前。
- target_folder : VMを配置するフォルダー
- target_networks : ネットワーク設定の辞書。vmware_guestドキュメントを参照してください。
- target_disks : ディスクレイアウトの辞書。vmware_guestドキュメントを参照してください。
- target_ram : メモリ設定の辞書。デフォルトファイルを参照してください。
- target_cpu : CPU設定の辞書。デフォルトファイルを参照してください。
- target_template: VMのベースとなるテンプレート。別のVMまたはテンプレートであることができます。
任意の変数:
- target_force : 警告やエラーを無視します。
- target_scsi : 使用するディスクコントローラーのタイプ。
- target_boot_firmware: VMのBIOSタイプ。
- target_vm_version : 使用するVMWare HWバージョン。
- target_customization : VM作成後に実行するVMWareのカスタマイズ。詳細はvmware_guestドキュメントを参照してください。