前提・実現したいこと
下記リンクに挑戦いたしましたが、httpd-inst.ymlの実行にて
タグのついていない既存の仮想マシンにも
httpdインストールされ、サービス起動して、ポートあいてしまい、
whenで記載した箇所が効いていないようです。
ユースケースから学ぶ、Ansible AutomationによるVMware環境の自動化
Ansible Tower による VMware vSphere 環境の自動化 Part5 (仮想マシンの作成編)
どう修正したらタグのついていない仮想マシンには実行されないようになりますでしょうか?
また、playbook中の変数ansible_nodenameには何を指定したらよいでしょうか?
実在する仮想マシンの名前を何か指定しないとエラーになってしまいますが、
vmware_guest_infoで電源ON状態の仮想マシン分だけ実行されますが、
取得される情報がすべて指定した仮想マシンだけのものになり、
ここではすべての仮想マシンの情報が取得されなくてはいけないのではと考えております。
該当のソースコード
--- - name: Get VM Tag & httpd install & Firewall (80/443) config hosts: all gather_facts: yes tasks: - name: Confirm VM Tag & Register to variable vmware_guest_info: hostname: "{{lookup('env', 'VMWARE_HOST')}}" username: "{{lookup('env', 'VMWARE_USER')}}" password: "{{lookup('env', 'VMWARE_PASSWORD')}}" validate_certs: False datacenter: DC name: "{{ansible_nodename}}" tags: yes register: vm_facts delegate_to: localhost - name: httpd install yum: name: httpd state: latest when: vm_facts.instance.tags == ["New_VM"] - name: httpd running & Enabled service: name: httpd state: started enabled: yes when: vm_facts.instance.tags == ["New_VM"] - name: Firewall Setting 80/443 firewalld: service: "{{item}}" zone: public state: enabled permanent: true immediate: true with_items: - http - https when: vm_facts.instance.tags == ["New_VM"]
試したこと
インベントリをlocalhostにしてみたり、
変数ansible_nodenameを指定しないでみたくらいです。
httpdをインストールしたくない仮想マシンにはタグがついていない、また、
httpdをインストールしたい仮想マシンにはタグがついていることは確認済みです。
補足情報(FW/ツールのバージョンなど)
ESXi6.5
VCSA6.5
Ansible2.9.7
仮想マシンCent8
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/06 01:53
2021/04/06 05:03