Ansible 小手册系列 六(Patterns 匹配模式)

Patterns 是定义Ansible要管理的主机。但是在playbook中它指的是对应主机应用特定的配置或IT流程。

 

命令格式

1
2
3
4
5
6
7
命令行
 
ansible <host-pattern> [options]
 
playbook 中
 
- hosts: <host-pattern>

  

使用示例

1
ansible \* -m service -a "name=httpd state=restarted"

  

Patterns 使用

匹配所有的主机

1
2
all
*     # 命令行中使用 \进行转义<br>以上两个Patterns 均表示匹配所有的主机

精确匹配  

1
192.168.77.121<br>以上Patterns 表示只匹配192.168.77.121这一个主机

或匹配 

1
2
web:db
以上Patterns 表示匹配的主机在web组或db组中

非模式匹配

1
2
"web:\!db"
命令下需转义特殊符号,以上Patterns 表示匹配的主机在web组,不在db组中,包含在web组,又在db中的用户

交集匹配

1
2
"web:&db"
以上Patterns 表示匹配的主机同时在db组和dbservers组中

通配符匹配

1
2
3
4
web-*.com:dbserver
webserver[0]
webserver[0:25]
*表示所有字符,[0]表示组第一个成员,[0:25] 表示组第1个到第24个成员,类似python中得切片

正则表达式匹配

1
2
~(web|db).*\.example\.com
在开头的地方使用“~”,表示这是一个正则表达式

组合匹配

1
2
"webservers:dbservers:&staging:!phoenix"
在webservers 或者dbservers 组中,必须还存在于staging 组中,但是不在phoenix 组中

在ansible-palybook 命令中,你也可以使用变量来组成这样的表达式,但是你必须使用“-e”的选项来指定这个表达式

1
webservers:!{{excluded}}:&{{required}}

排除条件

1
2
3
只执行-l后的主机
ansible-playbook site.yml -l 192.168.77.129
ansible-playbook site.yml --l  @retry_hosts.txt

 

posted @   wanstack  阅读(347)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示