Ansible-playbook:: 如何在未配置的其他主机上玩游戏



我正在尝试使用-l选项在配置以外的其他主机上播放yml..但是skipping: no hosts matched。 这种情况是需要将主机关联的 playbook 例外地用于其他主机的情况。(出于安全原因,剧本不能有 hosts:all,而留给管理员来限制目标(
执行此操作的正确方法是什么(如果有的话(?

L.E.所以,最后,@mdaniel的答案给了我一个想法 bash 包装器,它创建一个临时 yml,其中主机:字段被替换为参数。它不漂亮,但它有效。(同样适用于从一系列任务动态生成剧本( 而正确的方法,我只是在这里找到了它: https://stackoverflow.com/a/18195217/624734

正确的方法是什么?

使用all作为 playbook 的目标,然后通过清单或你提到的--limit来约束它所应用到的主机

- hosts: all
# and now the rest of your playbook

如果您想限制 ansible 脚本中的hosts:all,可以尝试以下方法。

- hosts: "{{ host_group }}"
# Rest of your playbook

您可以在hosts file中有一个可用于测试的特定组。 例如

[test]
192.168.1.1 # Test host
# Rest of your inventory file

并按以下顺序触发 ansible 剧本,

ansible-playbook -i hosts main.yml -e host_group="test"

最新更新