Patterns 是定義Ansible要管理的主機(jī)。但是在playbook中它指的是對(duì)應(yīng)主機(jī)應(yīng)用特定的配置或IT流程。
命令格式
命令行
ansible <host-pattern> [options]
playbook 中
- hosts: <host-pattern>
使用示例
ansible * -m service -a "name=httpd state=restarted"
Patterns 使用
** 匹配所有的主機(jī) **
all
*
以上兩個(gè)Patterns 均表示匹配所有的主機(jī)
精確匹配
192.168.77.121
以上Patterns 表示只匹配192.168.77.121這一個(gè)主機(jī)
或匹配
web:db
以上Patterns 表示匹配的主機(jī)在web組或db組中
非模式匹配
"web:\!db"
命令下需轉(zhuǎn)義特殊符號(hào),以上Patterns 表示匹配的主機(jī)在web組,不在db組中,包含在web組,又在db中的用戶
交集匹配
"web:&db"
以上Patterns 表示匹配的主機(jī)同時(shí)在db組和dbservers組中
** 通配符匹配**
web-*.com:dbserver
webserver[0]
webserver[0:25]
*表示所有字符,[0]表示組第一個(gè)成員,[0:25] 表示組第1個(gè)到第24個(gè)成員,類似python中得切片
正則表達(dá)式匹配
~(web|db).*\.example\.com
在開頭的地方使用“~”,表示這是一個(gè)正則表達(dá)式
組合匹配
"webservers:dbservers:&staging:!phoenix"
在webservers 或者dbservers 組中,必須還存在于staging 組中,但是不在phoenix 組中
在ansible-palybook 命令中,你也可以使用變量來組成這樣的表達(dá)式,但是你必須使用“-e”的選項(xiàng)來指定這個(gè)表達(dá)式
webservers:!{{excluded}}:&{{required}}
排除條件
只執(zhí)行-l后的主機(jī)
ansible-playbook site.yml -l 192.168.77.129
ansible-playbook site.yml --l @retry_hosts.txt
更多文章請(qǐng)看 Ansible 專題文章總覽