我正在写一本剧本来验证我们的云形成堆栈(端口80打开,httpd.conf具有正确的设置,实例类型是正确的,等等)。让我头疼的一件事就是如何验证EC2标签。
key=Name, value=testec2我已经尝试了下面的方法,并以多种不同的方式更改了when条件。
- name: Check Name Tag
action: debug msg="Name Tag Exists."
when: "ec2_tag_Name"尝试过的示例
when: "tag_Name_testec2"
when: " ec2_tag_Name_testec2"
when: "ec2_tag_Name"实际上,我已经尝试了相当多的品种,但这些都是我很容易记住的。
当我运行"ec2.py --list“时,它会输出多种格式的标记
"ec2_tag_Name": "testec2",
"tag_Name_testec2": [任何建议都将不胜感激。
发布于 2016-03-01 04:42:51
我使用tag_Name_testec2,但这是hostsvars中的一个组。不是公共变量。为了避免麻烦,首先在ec2.ini中更改缓存最大年龄,从20更改为1:
cache_max_age =1
看看你有没有像地域、公网或内网ip这样的过滤器。
你可以这样调试你的hostvar:
[batman@myhost myproject]$ ansible -i ec2.py tag_Name_webserver -u ec2-user -m debug -a msg="{{ hostvars[inventory_hostname]['ec2_id'] }}" -vvv
Using /etc/ansible/ansible.cfg as config file
10.78.17.117 | SUCCESS => {
"msg": "i-b34cb736"
}发布于 2016-03-02 22:32:18
如果有人感兴趣,我终于想明白了。请随意指出并嘲笑没有注意到的“定义”缺失。
名称:检查名称标记类型操作:调试msg=“名称标记存在。”when:“定义了ec2_tag_Name”
https://stackoverflow.com/questions/35708623
复制相似问题