Amazon ec2 ansible ec2 az变量

Amazon ec2 ansible ec2 az变量,amazon-ec2,ansible,ansible-facts,Amazon Ec2,Ansible,Ansible Facts,各位, 在我的.j2模板中,我希望像这样使用来自每个主机的ansible变量 dc_suffix={{ ansible_ec2_placement }} 但是,“msg”:“AnsibleUndefinedVariable:错误!ansible_ec2_placement”未定义”}错误出现 ansible获取特定实例的可用性区域的正确语法是什么?这些资源很少我已经能够做到这一点: - name: Gather facts action: ec2_facts register: ec2

各位, 在我的.j2模板中,我希望像这样使用来自每个主机的ansible变量

dc_suffix={{ ansible_ec2_placement }}
但是,
“msg”:“AnsibleUndefinedVariable:错误!ansible_ec2_placement”未定义”}
错误出现


ansible获取特定实例的可用性区域的正确语法是什么?这些资源很少

我已经能够做到这一点:

- name: Gather facts
  action: ec2_facts
  register: ec2_facts
然后在终端板中:

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 }}"
在shell中,您可以通过以下内容查看ec2_facts设置的所有事实:

echo "localhost ansible_connection=local" >inv
ansible -m ec2_facts localhost -i inv

它将以json格式打印出大量变量。

n不,这看起来是正确的方法。不幸的是,ansible中缺少大量事实等的文档,部分原因是这些事实太多了,它们取决于您的环境和其他因素。我发现最好的方法是像以前那样调用一个任务,然后使用调试任务来显示结果,并以此作为指导。