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"
我正在尝试在配置以外的其他主机上播放 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"