Ansible で仮想マシンをクローンした際の電源状態を操作する
Ansible から vSphere ゲスト(仮想マシン)を操作するモジュールを使って仮想マシンを作成する際、電源の状態は state
の定義を利用して制御します。 しかし、from_template
を使ってテンプレートからクローンを実行した際は state
を使って電源状態を制御することが出来ません。 from_template
を使った場合の電源状態は(state
では無く)power_on_after_clone
を使います。
state
の引数¶
state
は下記の引数を取りえます。 但し前述の通り、from_template
を使った場合は state
が使えません。 実際に from_template
と state
を同時に指定するとエラーになります。
- present
- powered_off
- absent
- powered_on
- restarted
- reconfigured
power_on_after_clone
の引数¶
power_on_after_clone
は下記の引数を取りえます。 from_template
する場合は (state
では無く) こちらの power_on_after_clone
を使います。
- yes
- no
yes
を指定した場合は電源オンに、no
を指定した場合は電源オフになります。
Ansible モジュールの実装を見てみる¶
Ansible から仮想マシンを操作する部分のソースコードは vphere_guest.py で公開されています。 from_template
に関連する部分は以下のように定義されています。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
尚、state
と from_template
を排他にするよう、定義しているのは以下部分のようです。
1 |
|
利用例¶
テンプレートから仮想マシンを作成しつつ、Inventory 中の power_on_after_clone
変数で電源状態を制御するサンプルは以下の通りです。
playbook¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
inventory¶
VM-1 ~ 3
という 3 台の仮想マシンを作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|