管理者以外のユーザーから、Ansibleのvmware_guestモジュールを実行した際に、
権限のエラーで仮想マシンのクローンが出来ず・・(´・ω・`)
一応 公式ドキュメント には以下を設定してくださいとの記載があります。
DataStore > Allocate Space
Virtual Machine > Configuration > Add New Disk
Virtual Machine > Configuration > Add or Remove Device
Virtual Machine > Inventory > Create New
Network > Assign Network
Resource > Assign Virtual Machine to Resource Pool
ただし、以下記載もあるように、クローンには追加の特権が必要になるようです。
Module may require additional privileges as well, which may be required for gathering facts - e.g. ESXi configurations.
そこで、今回はどのロールが無いとエラーが出てしまうのかについて調べました。
(意外とこの辺りの情報ってどこも載ってないんですよね。。)
※注: Ansibleのバージョンによっては違うこともあります。(調査時のバージョンは2.7)
#ロールの割り当て先
作成したロールは以下に割り当てました。
-
クラスタ
仮想マシン配置先のクラスタ -
フォルダ
テンプレートのフォルダ、仮想マシン配置先のフォルダ -
データストア
接続するデータストア -
ネットワーク
接続するネットワーク
※子へ伝達のチェックは外す
#設定した権限
以下がクローンする上で必要となった権限です。
どれを外してもエラーが発生しました。
-
仮想マシンをクローンする
[仮想マシン].[プロビジョニング].[仮想マシンのクローン作成] -
データセンターまたは仮想マシンフォルダを既存のものから作成する
[仮想マシン].[インベントリ].[既存のものから作成] -
データセンターまたは仮想マシンフォルダの構成に新規ディスクを追加する
[仮想マシン].[構成].[新規ディスクの追加] -
ターゲットホスト、クラスタ、またはリソースプールに仮想マシンを割り当てる
[リソース].[仮想マシンのリソースプールの割り当て] -
宛先データストアまたはデータストアフォルダの領域の割り当て
[データストア].[領域の割り当て] -
仮想マシンにネットワークを割り当てる
[ネットワーク].[ネットワークの割り当て] -
仮想マシンを移動せずに仮想マシンのゲストOSをカスタマイズする
[仮想マシン].[プロビジョニング].[カスタマイズ] -
ゲストOSのカスタマイズ仕様を読み取れるようにする
[仮想マシン].[プロビジョニング].[カスタマイズ仕様の読み取り] -
仮想CPU数の変更
[仮想マシン].[構成].[CPUカウントの変更] -
仮想デバイス設定の変更
[仮想マシン].[構成].[デバイス設定の変更] -
仮想マシンのメモリ量の設定
[仮想マシン].[構成].[メモリ]
#その他の権限
他のvmwareモジュールでも、同様に追加の特権が必要になったので記載しておきます。
vmware_guest_powerstate
以下の権限がないと、パワーオンオフが出来ません。
-
仮想マシンをパワーオフします
[仮想マシン].[相互作用].[パワーオフ] -
仮想マシンをパワーオンします
[仮想マシン].[相互作用].[パワーオン]
vmware_vm_shell
コマンドを実行する際に必要となります。
- 仮想マシンのゲストOSでプロセスを実行
[仮想マシン].[ゲスト操作].[ゲスト操作のプログラム実行]
使用するvmwareモジュールに合わせて、適切な権限を実行ユーザーに与えることが重要となりそうですね。
以上、ご参考程度に。