vm.gowatana.jp

NEOにほんごVMware(仮)

VMware Cloud Director 10.4 を Ansible で操作してみる。Part-01 環境構築

VMware Cloud Director 10.4(VCD)を、Ansible で操作してみます。今回は Photon OS 4.0 に Ansible をインストールして、組織 VCD に作成してある vApp の仮想マシン情報を取得してみます。

 

今回の内容です。

 

今回の環境

VCD は、下記のように作成したラボ環境を利用しています。

 

Ansible は、Photon OS 4.0 の Yum リポジトリにあるものを利用します。Photon OS は、下記の OVA を使用しています。

root@lab-ansible-03 [ ~ ]# cat /etc/photon-release
VMware Photon OS 4.0
PHOTON_BUILD_NUMBER=2f5aad892

 

Ansible の VCD モジュールは、VMware の GitHub リポジトリに公開されているものを利用します。

 

Ansible ホストの構築

まず、Photon OS のパッケージを最新化しておきます。

root@lab-ansible-03 [ ~ ]# yum update -y
root@lab-ansible-03 [ ~ ]# reboot

 

Python バージョンです。

root@lab-ansible-03 [ ~ ]# python -V
Python 3.10.0

 

ansible をインストールします。

root@lab-ansible-03 [ ~ ]# tdnf install ansible -y
root@lab-ansible-03 [ ~ ]# rpm -q ansible
ansible-2.12.1-1.ph4.noarch

 

pip で、Python の pyvcloud パッケージをインストールします。

root@lab-ansible-03 [ ~ ]# tdnf install python3-pip -y
root@lab-ansible-03 [ ~ ]# pip3 install --user pyvcloud

 

下記のようにパッケージがインストールされます。ちなみに、vSphere は VCD 経由で操作するため、community.vmware モジュールなどで利用される pyvmomi パッケージは不要です。

root@lab-ansible-03 [ ~ ]# pip3 freeze
ansible-core==2.12.1
asn1crypto==1.4.0
attrs==20.3.0
bcrypt==3.2.0
certifi==2020.6.20
cffi==1.14.3
chardet==4.0.0
charset-normalizer==2.0.9
cloud-init==22.2.2
configobj==5.0.6
cryptography==3.3.2
ecdsa==0.16.0
humanfriendly==10.0
idna==2.10
Jinja2==2.11.2
jsonpatch==1.26
jsonpointer==2.0
jsonschema==3.2.0
lxml==4.9.1
MarkupSafe==1.1.1
motdgen==0.1.3
netifaces==0.10.9
oauthlib==3.1.0
packaging==21.3
paramiko==2.10.3
prettytable==0.7.2
pyasn1==0.4.8
pycparser==2.20
pycryptodome==3.12.0
Pygments==2.12.0
PyNaCl==1.4.0
pyOpenSSL==19.1.0
pyparsing==2.4.7
pyrsistent==0.17.3
python-dateutil==2.8.2
pyvcloud==23.0.4
PyYAML==5.4.1
requests==2.26.0
resolvelib==0.5.5
six==1.15.0
unittest-xml-reporting==3.2.0
urllib3==1.25.11
vcd-api-schemas-type==10.3.0.dev72

 

Git で、VCD を操作する Ansible モジュールをダウンロードします。

root@lab-ansible-03 [ ~ ]# tdnf install git -y
root@lab-ansible-03 [ ~ ]# git clone https://github.com/vmware/ansible-module-vcloud-director
root@lab-ansible-03 [ ~ ]# cd ansible-module-vcloud-director/

 

VCD への Ansible Playbook の実行

今回は、接続確認のかわりとして下記のように VCD の vApp から仮想マシン情報を取得する Ansible Playbook を作成しました。

gist.github.com

 

VCD に接続するための変数は、下記のようにモジュールの外側でまとめて定義しておくこともできます。

gist.github.com

 

ansible-playbook で demo_get_vapp-01_vm_01.yml Playbook を実行して、vapp-01 から仮想マシンの情報を取得してみます。

# ansible-playbook demo_get_vapp-01_vm_01.yml

 

下記のように情報取得できます。


ちなみに、この vapp-01 の仮想マシンは、VCD のテナント ポータルでは下記のように見えます。

 

つづく。