Ansible 小手冊(cè)系列 六(Patterns 匹配模式)

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 專題文章總覽

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容