Amazon ec2 Ansible 2.8无法使用[0]符号解析动态EC2主机
我正在使用Ansible Jenkins插件和Ansible 2.8。管道引用了单个剧本“site.yml”,其中包含以下内容Amazon ec2 Ansible 2.8无法使用[0]符号解析动态EC2主机,amazon-ec2,ansible,Amazon Ec2,Ansible,我正在使用Ansible Jenkins插件和Ansible 2.8。管道引用了单个剧本“site.yml”,其中包含以下内容 --- - hosts: reports[0] roles: - aaa - bbb - ccc - hosts: reports roles: - ddd - ccc - eee 主机资源清册是动态的,可解析2台带有reporting_app标记的EC2主机。主机映射文件如下所示 [tag_role_repo
---
- hosts: reports[0]
roles:
- aaa
- bbb
- ccc
- hosts: reports
roles:
- ddd
- ccc
- eee
主机资源清册是动态的,可解析2台带有reporting_app标记的EC2主机。主机映射文件如下所示
[tag_role_reporting_app]
[reports:children]
tag_role_reporting_app
文件夹中确实存在ec2.py和ec2.ini文件
当playbook通过管道运行时,它会正确解析与“reports”组对应的2台主机。但是,它无法解析“报告[0]”。正如代码中指定的,有些角色我只想在两个节点之一上执行一次。其余的角色集需要在两个节点上执行
管道运行代码段:
playbook: site.yml
19:40:02
19:40:02 play #1 (reports[0]): reports[0] TAGS: []
19:40:02 pattern: [u'reports[0]']
19:40:02 hosts (0):
19:40:02 TASK TAGS: []
19:40:02
19:40:02 play #2 (reports): reports TAGS: []
19:40:02 pattern: [u'reports']
19:40:02 hosts (2):
19:40:02 10.235.149.163
19:40:02 10.235.148.35
引用reports组中的一个节点的正确方法是什么?我猜是因为主机由事实收集程序填充?您可以使用这些类型的需求,这样您就可以确保您的角色是真正可重用的,并且总是在一台主机上执行一个操作。您好@β.εηοτ.βε,谢谢您的回复。跑步曾经对我有用。所以,我只是在第一台主机中保留了“报告”,并添加了run_once:true。这使得它只能在其中一台主机上执行预期的角色。再次感谢!我猜是因为主持人都是事实搜集者?您可以使用这些类型的需求,这样您就可以确保您的角色是真正可重用的,并且总是在一台主机上执行一个操作。您好@β.εηοτ.βε,谢谢您的回复。跑步曾经对我有用。所以,我只是在第一台主机中保留了“报告”,并添加了run_once:true。这使得它只能在其中一台主机上执行预期的角色。再次感谢!