Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon ec2 Ansible 2.8无法使用[0]符号解析动态EC2主机_Amazon Ec2_Ansible - Fatal编程技术网

Amazon ec2 Ansible 2.8无法使用[0]符号解析动态EC2主机

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

我正在使用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_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。这使得它只能在其中一台主机上执行预期的角色。再次感谢!