Ansible 如何在单个或短列表的主机上运行Playbook,并从该主机不属于的资源清册组中获取内容?
我确实有一个剧本,它可以播放一个特定的组,并将该组的所有主机放到另一个主机上的命令中 更准确地说。 在一个或多个客户端上,我的清单文件中的主机组oldserver中的所有主机必须位于/etc/ssh.conf中 任务看起来像Ansible 如何在单个或短列表的主机上运行Playbook,并从该主机不属于的资源清册组中获取内容?,ansible,ansible-inventory,Ansible,Ansible Inventory,我确实有一个剧本,它可以播放一个特定的组,并将该组的所有主机放到另一个主机上的命令中 更准确地说。 在一个或多个客户端上,我的清单文件中的主机组oldserver中的所有主机必须位于/etc/ssh.conf中 任务看起来像 --- - name: echo Old Servers debug: var: groups["oldservers"] - name: create ssh_conf_for_old_server blockinfile:
---
- name: echo Old Servers
debug:
var: groups["oldservers"]
- name: create ssh_conf_for_old_server
blockinfile:
path: /etc/ssh/ssh_config
backup: True
block: |
Host {{ groups["oldservers"]|join(' ') }}
user admin
KexAlgorithms +diffie-hellman-group1-sha1
HostKeyAlgorithms +ssh-dss
Ciphers +aes128-cbc
这应该在不是组服务器成员的客户端上执行
主机文件(资源清册):
我的执行行是ansible playbook-i 192.168.200.1,-u ansible./createServerList.yml
我想我应该做得有点不同。不是吗
结果应该是。。。首先输出所有旧服务器(调试)
除了将这些旧服务器的块写入/etc/ssh/ssh_config命令
ansible playbook-i 192.168.200.1-u ansible./createServerList.yml
,您直接将ip地址作为库存传递。因此,Ansible不知道定义了主机组的清单文件。因此,您可以试着运行这个ansible playbook-i-u ansible./createServerList.yml
然后,如果您必须限制playbook仅运行某些主机或组,请执行以下操作:
ansible剧本-i-u ansible./createServerList.yml--limit“192.168.200.1192.168.200.2”
ansible playbook-i-u ansible./createServerList.yml——限制客户端
[clients]
192.168.200.1
192.168.200.2
[oldservers]
192.168.201.1
192.168.201.2