ansible之patterns

在Ansible中,Patterns 是指我们怎样确定由哪一台主机来管理. 意思就是与哪台主机进行交互. 但是在playbooks 中它指的是对应主机应用特定的配置或执行特定进程。

ansible的语法:
ansible <pattern_goes_here> -m <module_name> -a <arguments>

举个例子:
ansible webservers -m service -a "name=httpd state=restarted"

一个pattern通常关联到一系列组(主机的集合) ,如上示例中,所有的主机均在 “webservers” 组中。

不管怎么样,在使用Ansible前,我们需事先告诉Ansible哪台机器将被执行。 能这样做的前提是需要预先定义唯一的 host names 或者 主机组。

patterns

  • 如下的patterns等同于目标为仓库(inventory)中的所有机器:
    all*

  • 也可以写IP地址或系列主机名:

one.example.com
one.example.com:two.example.com
192.168.1.50
192.168.1.*
  • 如下patterns分别表示一个或多个groups.多组之间以冒号分隔表示或的关系.这意味着一个主机可以同时存在多个组:
webservers
webservers:dbservers
  • 你也可以排队一个特定组,如下实例中,所有执行命令的机器必须隶属 webservers 组但同时不在 phoenix组:
webservers:!phoenix
  • 你也可以指定两个组的交集,如下实例表示,执行命令有机器需要同时隶属于 webservers 和 staging 组.
webservers:&staging
  • 你也可以组合更复杂的条件:
webservers:dbservers:&staging:!phoenix

上面的例子中:webservers和daservers两个组中属于staging但不属于phoenix组的主机。

  • 同时也可以通配符:
*.example.com
*.com
  • 通配符和组也可以:
one*.com:dbservers
  • 在高级语法中,你也可以在group中选择对应编号的server:
webservers[0]
  • 或者一个group中的一部分servers:
webservers[0-25]
  • 排除条件--limit,/usr/bin/ansible or /usr/bin/ansible-playbook都支持:
ansible-playbook site.yml --limit datacenter2
  • 如果你想从文件读取hosts,文件名以@为前缀即可.从Ansible 1.2开始支持该功能:
ansible-playbook site.yml --limit @retry_hosts.txt
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值