ansible-playbook:: 如何在配置以外的其他主机上播放

ansible-playbook:: how to play on other host than configured

我正在尝试在配置以外的其他主机上播放 yml,使用 -l 选项..但是 skipping: no hosts matched。 该场景是需要将主机关联的剧本特别用于其他主机的情况。 (出于安全原因,剧本不能有 hosts:all 并留给管理员来限制目标)
正确的做法是什么(如果有的话)?

L.E。所以,最后,@mdaniel 的回答给了我一个 bash 包装器的想法,它创建一个临时 yml,其中 host: 字段被参数替换..它不漂亮但它有效。 (同样适用于从一系列任务中动态生成剧本) 以及正确的方法我刚刚在这里找到它:

What is the correct way to do this?

使用 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 playbook,

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