Weitere ähnliche Inhalte Ähnlich wie Pyvmomiとansibleのdynamic inventory (20) Pyvmomiとansibleのdynamic inventory2. 自己紹介
● 河野健太朗(@kawken)
● シナジーマーケティング(株)
● 仕事
o WEBアプリ開発
SIのお仕事
Ruby on Rails を主に使ってる
o 開発環境の改善
レガシーな環境をモダンにするような活動
社内の開発用サーバ管理
3. Dynamic Inventory とは?
● インベントリファイルに、実行権限が付与
されていると実行結果を使用する仕組み
手順
1. JSONを出力するスクリプトを作成& 実行
権限を付与
2. インベントリファイルとしてスクリプトを
指定する
ansible-playbook -i hosts.py site.yml
4. Dynamic Inventory のルール
● スクリプトはpython以外でもOK
● --list, --host のコマンドライン引数が渡って
くる
o デフォルトは--list
o ホストが指定されているときは--host
● スクリプト用の設定ファイルはiniファイル
が推奨?
● 実行時に設定したい値は環境変数で渡す以
外なさそう
https://github.com/ansible/ansible/tree/devel/plugins/inventory
5. pyvmomiとは?
● VMware vSphere APIのPythonバインディン
グ
o VMware vSphere APIとは
VMware ESXなどで管理している仮想ホストを
操作
● VMware公式
o https://github.com/vmware/pyvmomi
● VMOMI
o Virtualization Management Object
Management Infrastructure
● 読み方は…?
7. 使いどころ
● 社内の開発用サーバの構築(VMware)
1. pyvmomiで仮想マシン構築
2. CentOSのkickstartで自動インストール
3. Ansibleでプロビジョニング
DHCPのためFQDNとIPがわからないので、
pyvmomiでVMwareの管理名からIPを取得している
TARGET_HOST="$vmname" ansible-playbook -i target.py site.yml
9. まとめ
● Dynamic Inventory
o 簡単なスクリプトから始められる
o VMWareやAWS上に構築された、IPやEnd Pointが
わからないようなサーバを特定して、プロビジョニ
ングすることができる
● pyvmomi
o pyvmomiはVMwareの操作が簡単にできる
o サンプルを見ると何となくわかるので、Pythonがわ
かれば簡単
10. 参考
Ansible公式ドキュメント
Dynamic Inventory の説明
http://docs.ansible.com/intro_dynamic_inventory.html
スクリプトの作り方
http://docs.ansible.com/developing_inventory.html
Dyanmic Inventory のサンプル
https://github.com/ansible/ansible/tree/devel/plugins/inventory
pyvmomi
https://github.com/vmware/pyvmomi
VMOMI
https://github.com/vmware/pyvmomi/wiki/VMOMI
VMware vSphere Web Services SDK Documentation
https://www.vmware.com/support/developer/vc-sdk/