目前的情况如下:
我有一个剧本,它提供了一堆服务器并为这些服务器安装了应用程序。
其中一个应用程序已经拥有了我想要使用的自己的ansible playbook。现在我的问题来自于这本剧本,因为它仅限于hosts: [prod]
,而我在高级剧本中的主持人群体则不同。
我知道我可以使用add_host
将所需的主机添加到prod
组,但这是一个我不喜欢的解决方案。
所以我的问题是:有没有办法将当前主机添加到include语句中的新主机组?
像- include: foo.yml prod={{ ansible_host_group }}
或者我可以以某种方式仅包含剧本中的任务?
答案 0 :(得分:1)
不,没有直接的方法可以做到这一点。
现在我的问题来自于这本剧本,因为它仅限于此
hosts: [prod]
您可以通过额外的变量设置主机更灵活:
- name: add role fail2ban
hosts: '{{ target }}'
remote_user: root
roles:
- fail2ban
运行它:
ansible-playbook testplaybook.yml --extra-vars "target=10.0.190.123"
ansible-playbook testplaybook.yml --extra-vars "target=webservers"
这种解决方法适合您吗?