前提・実現したいこと
Ansible TowerのダイナミックインベントリでESXi上にある仮想マシンを取得しました。
ここで取得された仮想マシン全台の情報をvmware_guest_infoモジュールを使って取得しようとしています。
そのためにはvmware_guest_infoモジュールのnameパラメータに何を指定したらよいでしょうか?
ここにダイナミックインベントリから取得した仮想マシン名がつるっとはいったりすればいいのですが。。
実現したいことは、
Ansible Tower による VMware vSphere 環境の自動化 Part5 (仮想マシンの作成編)
にある内容のトレースで、Ansible Towerで以下の5つを実行したいです。
- Linux 仮想マシンをテンプレートからデプロイ
- デプロイした仮想マシンに対しタグを付与
- タグの付いた仮想マシンに対し httpd のインストール、80 / 443 のポート開放
- httpd 動作確認
- タグの削除
そのうちの3番と4番でタグのついた仮想マシンにだけhttpdのインストール等操作するという動作ができません。
原因はvmware_guest_infoモジュールで適切に情報を拾えていないからだと思います。
発生している問題・エラーメッセージ
・変数ansible_nodenameを無指定・実在しない仮想マシン名にするとエラーで止まってしまいます。
・変数ansible_nodenameをlocalhostにするとエラーで止まってしまいます。
・変数ansible_nodenameをタグ付きの仮想マシン名にすると実行されますが取得される結果が指定した仮想マシン名だけのものとなり、タグなしの仮想マシンにもhttpdがインストールされるなどしてしまいます。
・変数ansible_nodenameをタグなしの仮想マシン名にすると実行されますが取得される結果が指定した仮想マシン名だけのものとなり、タグ付きの仮想マシンにもhttpdがインストールされません。
・変数ansible_nodenameを実在するすべての仮想マシン名にするとエラーで止まってしまいます。
該当のソースコード
Ansible
1- name: Get VM Tag & httpd install & Firewall (80/443) config 2 hosts: all 3 gather_facts: yes 4 tasks: 5 - name: Confirm VM Tag & Register to variable 6 vmware_guest_info: 7 hostname: "{{lookup('env', 'VMWARE_HOST')}}" 8 username: "{{lookup('env', 'VMWARE_USER')}}" 9 password: "{{lookup('env', 'VMWARE_PASSWORD')}}" 10 validate_certs: False 11 datacenter: DC 12 name: "{{ansible_nodename}}" 13 tags: yes 14 register: vm_facts 15 delegate_to: localhost 16 17 - name: httpd install 18 yum: 19 name: httpd 20 state: latest 21 when: vm_facts.instance.tags == ["New_VM"] 22 23 - name: httpd running & Enabled 24 service: 25 name: httpd 26 state: started 27 enabled: yes 28 when: vm_facts.instance.tags == ["New_VM"] 29 30 - name: Firewall Setting 80/443 31 firewalld: 32 service: "{{item}}" 33 zone: public 34 state: enabled 35 permanent: true 36 immediate: true 37 with_items: 38 - http 39 - https 40 when: vm_facts.instance.tags == ["New_VM"]
試したこと
自分で作成したコードではなく、
Ansible Tower による VMware vSphere 環境の自動化 Part5 (仮想マシンの作成編)
からもってきているものなので、コードはおかしくないと思いますが、
なんでできないんだろう。。
補足情報(FW/ツールのバージョンなど)
ESXi6.5
VCSA6.5
Ansible2.9.7
仮想マシンCent8
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/06 08:48
2021/04/06 08:49