伙计们,在我的 .j2 模板中,我想像这样使用来自每个主机的 ansible 变量
dc_suffix={{ ansible_ec2_placement }}
但是,"msg": "AnsibleUndefinedVariable: ERROR! 'ansible_ec2_placement' is undefined"}
出现错误。
ansible 获取特定实例的可用区的正确语法是什么?ec2_facts文档很少
伙计们,在我的 .j2 模板中,我想像这样使用来自每个主机的 ansible 变量
dc_suffix={{ ansible_ec2_placement }}
但是,"msg": "AnsibleUndefinedVariable: ERROR! 'ansible_ec2_placement' is undefined"}
出现错误。
ansible 获取特定实例的可用区的正确语法是什么?ec2_facts文档很少
我已经能够做到这一点:
- 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 格式的变量。