首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在一组主机上运行即席命令?(例如,第1组和第2组的宿主,第1组的宿主,而不是第2组,等等)

如何在一组主机上运行即席命令?(例如,第1组和第2组的宿主,第1组的宿主,而不是第2组,等等)
EN

Stack Overflow用户
提问于 2017-07-15 03:47:40
回答 2查看 3.8K关注 0票数 1

给定下面的inventory文件,如何在不同的机器集上运行诸如ansible -m raw -a 'mkdir test'这样的特殊命令?

例如,如何在以下上运行该命令:

  • app1app2中的主机
  • app1中而不是在app2中的主机
  • 位于app1app2中的主机

这是库存文件:

代码语言:javascript
复制
[app1]
ip1.address
ip2.address
ip3.address

[app2]
ip1.address
ip2.address
ip4.address
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-15 09:48:31

如您在问题中所述,在不同的主机组上运行Ansible -hoc。-l参数称为限制,用于在库存中有限的一组节点上执行任务。

  • app1和app2中的主机

禁止所有-i‘/path/to/库存’-l 'app1,app2‘-m shell -a "mkdir $HOME/test“

  • 在app1中而不是在app2中的主机

禁止所有-i‘/path/to/库存’-l 'app1‘-m shell -a "mkdir $HOME/test“

  • 位于app1或app2中的主机

禁止所有-i‘/path/to/库存’-l 'app1:app2‘-m shell -a "mkdir $HOME/test

PS:如果库存路径已在ansible.cfg中配置为库存,则无需显式指定它。

票数 3
EN

Stack Overflow用户

发布于 2019-08-15 16:48:29

这是一个老问题,但你也可以这样做:

代码语言:javascript
复制
ansible all -i '/path/to/inventory' -l '!app2' -m shell -a "mkdir $HOME/test"

它将运行在库存中所有不在app2中的主机上。或者,如果库存包含的内容超过了所显示的两个组,并且希望仅限于app1中的主机,而不是app2中的主机:

代码语言:javascript
复制
ansible app1 -i '/path/to/inventory' -l '!app2' -m shell -a "mkdir $HOME/test"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45114260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档