1. 程式人生 > >Ansible 小手冊系列 六(Patterns 匹配模式)

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

play book option python pytho 執行 require light res

Patterns 是定義Ansible要管理的主機。但是在playbook中它指的是對應主機應用特定的配置或IT流程。

命令格式

命令行

ansible <host-pattern> [options]

playbook 中

- hosts: <host-pattern>

  

使用示例

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

  

Patterns 使用

匹配所有的主機

all
*     # 命令行中使用 \進行轉義
以上兩個Patterns 均表示匹配所有的主機

精確匹配

  

192.168.77.121
以上Patterns 表示只匹配192.168.77.121這一個主機

或匹配 

web:db
以上Patterns 表示匹配的主機在web組或db組中

非模式匹配

"web:\!db"
命令下需轉義特殊符號,以上Patterns 表示匹配的主機在web組,不在db組中,包含在web組,又在db中的用戶

交集匹配

"web:&db"
以上Patterns 表示匹配的主機同時在db組和dbservers組中

通配符匹配

web-*.com:dbserver
webserver[0]
webserver[0:25]
*表示所有字符,[0]表示組第一個成員,[0:25] 表示組第1個到第24個成員,類似python中得切片

正則表達式匹配

~(web|db).*\.example\.com
在開頭的地方使用“~”,表示這是一個正則表達式

組合匹配

"webservers:dbservers:&staging:!phoenix"
在webservers 或者dbservers 組中,必須還存在於staging 組中,但是不在phoenix 組中

在ansible-palybook 命令中,你也可以使用變量來組成這樣的表達式,但是你必須使用“-e”的選項來指定這個表達式

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

排除條件

只執行-l後的主機
ansible-playbook site.yml -l 192.168.77.129
ansible-playbook site.yml --l  @retry_hosts.txt

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