给定下面的inventory文件,如何在不同的机器集上运行诸如ansible -m raw -a 'mkdir test'这样的特殊命令?
例如,如何在以下上运行该命令:
app1和app2中的主机app1中而不是在app2中的主机app1或app2中的主机这是库存文件:
[app1]
ip1.address
ip2.address
ip3.address
[app2]
ip1.address
ip2.address
ip4.address发布于 2017-07-15 09:48:31
如您在问题中所述,在不同的主机组上运行Ansible -hoc。-l参数称为限制,用于在库存中有限的一组节点上执行任务。
禁止所有-i‘/path/to/库存’-l 'app1,app2‘-m shell -a "mkdir $HOME/test“
禁止所有-i‘/path/to/库存’-l 'app1‘-m shell -a "mkdir $HOME/test“
禁止所有-i‘/path/to/库存’-l 'app1:app2‘-m shell -a "mkdir $HOME/test
PS:如果库存路径已在ansible.cfg中配置为库存,则无需显式指定它。
发布于 2019-08-15 16:48:29
这是一个老问题,但你也可以这样做:
ansible all -i '/path/to/inventory' -l '!app2' -m shell -a "mkdir $HOME/test"它将运行在库存中所有不在app2中的主机上。或者,如果库存包含的内容超过了所显示的两个组,并且希望仅限于app1中的主机,而不是app2中的主机:
ansible app1 -i '/path/to/inventory' -l '!app2' -m shell -a "mkdir $HOME/test"https://stackoverflow.com/questions/45114260
复制相似问题