夥計們, 在我.j2模板,我想用一個ansible變量從每臺主機像這樣ansible EC2 AZ變量
dc_suffix={{ ansible_ec2_placement }}
然而,出現"msg": "AnsibleUndefinedVariable: ERROR! 'ansible_ec2_placement' is undefined"}
錯誤。
什麼是正確的語法來獲取特定實例的可用區域?該ec2_facts docs稀少
夥計們, 在我.j2模板,我想用一個ansible變量從每臺主機像這樣ansible EC2 AZ變量
dc_suffix={{ ansible_ec2_placement }}
然而,出現"msg": "AnsibleUndefinedVariable: ERROR! 'ansible_ec2_placement' is undefined"}
錯誤。
什麼是正確的語法來獲取特定實例的可用區域?該ec2_facts docs稀少
我已經能夠做到這一點:
- name: Gather facts
action: ec2_facts
register: ec2_facts
在termplate
然後:
dc_suffix={{ ec2_facts.ansible_facts.ansible_ec2_placement_availability_zone }}
任何問題這樣做呢?
謝謝!
這比@ CMAG的回答更簡單,至少ansible v 1.9:
- name: gather ec2 facts
action: ec2_facts
- name: display AZ
debug: msg="region is {{ ansible_ec2_placement_availability_zone }}"
從貝,您可以查看ec2_facts設定的所有事實有以下:
echo "localhost ansible_connection=local" >inv
ansible -m ec2_facts localhost -i inv
這將打印出json格式的大量變量。
不,這看起來像是正確的做法。不幸的是,很多事實的文件等都很缺乏,部分原因是因爲它們太多了,它們依賴於你的環境和其他因素。我發現最好的方法就是像調用任務一樣調用任務,然後使用調試任務來顯示結果並將其用作指導。 –