Ansible 小手冊系列 六(Patterns 匹配模式)
阿新 • • 發佈:2018-03-08
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 匹配模式)