目的
インベントリースクリプトを使わず、標準ソースにある VMware vCenter
を使ってvCenter上の仮想インスタンスを自動でインベントリーに登録する。
また、フィルタリング機能も動作させ目的に合わせたグループ分けなどができるかも確認する。
準備
認証情報登録
vCenterの情報を登録します。
(1) 認証情報
をクリックして 追加
をクリックします。
(2) 必要項目を入力・選択して 保存
をクリックします。
インベントリー作成
(1) インベントリー
をクリックして 追加
インベントリー
をクリックします。
(2) 必要項目を入力・選択して 保存
をクリックします。
(3) ソース
をクリックします。
(4) ソースの追加
をクリックします。
(5) 必要事項を入力して ソース
は VMware vCenter
を選択し 保存
をクリックします。
インベントリーに登録
VM情報を登録
(1) 作成したソースを実行してみます。
(2) インベントリーの グループ
と ホスト
が自動で登録されていることが確認できます。
標準は Power On
になっている仮想インスタンス情報を取得するようです。
グループは ゲストOSの識別子
になっています。
(3) 登録されたホストの変数には以下のように情報が登録されています。
フィルタリング例
登録するVMをフィルタリングしてみます。
ここでは VMs
というグループにフィルタリングしたVMを登録してみます。
(1) VMの名前でフィルタリングをしてみます。ソース変数
に以下を追加して実行します。
1 2 3 |
--- host_filters: "{{ name == 'ansible_awx_centos' or name == 'devel' }}" |
これを実行すると VMs
グループに ansible_awx_centos
と devel
という名前の仮想インスタンスが登録されます。
フィルタリングは取得したホスト変数を元にして可能です。例えばPowerOnの仮想インスタンスだけを取得する場合は以下のようになります。
1 2 3 |
--- host_filters: "{{ runtime.powerstate == 'poweredOn' }}" |
フィルタリングの詳細は以下のページを参照してください。
http://docs.ansible.com/ansible-tower/latest/html/userguide/inventories.html#vmware-vcenter