ansible 2.0.1.0
对于我的环境中以电子邮件地址作为值的机器,我无法根据“所有者”标签执行任何可靠的操作。
我检查以确保标签值存在:
./ec2.py --list >> aws_example.json
我可以确认“所有者”标签:
...
"ec2_tag_Owner": "infrastructure",
...
"ec2_tag_Owner": "[email protected]",
...
但是当我运行 ansible 命令来引用使用该标签的主机时,它找不到以电子邮件地址作为值的主机:
ansible -i tools/ec2.py [email protected] -m ping
这是相同命令的示例,其标记值为“基础设施”
ansible -i tools/ec2.py tag_Owner_infrastructure -m ping
The authenticity of host '52.53.222.209 (52.53.222.209)' can't be established.
这表明它知道主机并试图联系它。
$ ansible -i tools/ec2.py [email protected] -m ping -vvvv
Using /Users/.../ansible/ansible.cfg as config file
ERROR! Specified hosts options do not match any hosts
这表明它无法将实例与 Key:"Owner" 和 Value:" [email protected] " 相关联
@bhuddleston感谢您的报告,但是,ec2.py 正在“故意”执行此操作以将生成的组名称值限制为 ASCII 字母数字。
看看ec2.py中的to_safe()
: https :
您的组名应该是tag_Owner_it_domain_com
。 (您始终可以从主机的上下文中执行debug: var=groups
以找出它所属的所有组)。
这种行为可能有点严厉(因为我已经确认我们实际上会接受并使用其中包含“@”和“.”的组名)- 随时提交问题或 PR(或开始讨论我们的邮件列表/IRC)来改变 ec2.py 的行为。
啊! 现在我知道发生了什么,我尝试了“_”版本并且它起作用了! 谢谢您的帮助。
出于好奇,在任何地方的任何文档中都有详细说明吗? 我想确定我没有遗漏一些明显的东西。
我可能会伸出手,看看邮件列表是否接受它。
布赖恩·哈德尔斯顿
开放式 IT 设计(IT 工程师)
+1.510.460.1444(主)
+1.510.780.2425(传真)
[email protected]
2016 年 4 月 28 日下午 5:05,Matt Davis [email protected]写道:
@bhuddleston感谢您的报告,但是,ec2.py 正在“故意”执行此操作以将生成的组名称值限制为 ASCII 字母数字。
看看 ec2.py 中的 to_safe(): https :
您的组名应该是 tag_Owner_it_domain_com。 (您始终可以从主机的上下文中执行 debug: var=groups 以找出它所属的所有组)。
这种行为可能有点严厉(因为我已经确认我们实际上会接受并使用其中包含“@”和“.”的组名)- 随时提交问题或 PR(或开始讨论我们的邮件列表/IRC)来改变 ec2.py 的行为。
—
你收到这个是因为你被提到了。
直接回复此邮件或在 GitHub 上查看
是的,它在动态清单文档页面中,但有点隐藏在标签部分:“每个键/值对都是它自己的一组实例,特殊字符再次转换为下划线,格式为 tag_KEY_VALUE”