ansible -m -a
該功能主要針對inventory的主機列表,案例如下:
1、all(全量匹配)
說明:匹配所有主機,all或者*號,兩個功能相同,只是*號需要使用雙引號引起來。
// 匹配所有主機ansible all -m ping
ansible "*" -m ping// 匹配某個網段
ansible 192.168.4.* -m ping
2、邏輯或(or)匹配
如希望對多個主機或者多個組進行執行,相互之間用冒號分割。
ansible 192.168.4.46:192.168.4.50 -m ping
3、邏輯非(!)匹配
主要針對多重條件的匹配規則。
//所有在zookeeper裡面的機器,但不在hadoop裡面的機器被匹配到。需要使用單引號。[root@manager1 data 10:51:57]#ansible 'zookeeper:!hadoop' -m pingansible '
zookeeper:!hadoop
' -m ping
不使用引號或者使用單引號會報錯。
192.168.4.46 | success => ,
"changed": false,
"ping": "pong"
}[root@manager1 data 10:52:41]#ansible "zookeeper:!hadoop" -m ping
-bash: !hadoop": event not found
[root@manager1 data 10:53:45]#ansible zookeeper:!hadoop -m ping
-bash: !hadoop: event not found
4、邏輯與(&)匹配
針對多重條件的匹配。
//zookeeper組和hadoop組中同時存在的機器。需要引號(單引號,雙引號都行。)ansible "
zookeeper:&hadoop
" -m ping
5、多條件組合
//webservers和dbservers兩個組中的所有機器在staging組中存在,但不存在與phoenix。ansible 'webservers:dbservers:&staging:!phoenix' -m ping
6、模糊匹配
*萬用字元表示0個或者多個任意字元,主要用於一些模糊匹配。
//所有以192.168開頭的主機
ansible 192.168.* -m ping
7、域切割或者索引
ansible底層基於python,因此也支援域切割,eg:
//主機清單配置如下:[webservers]
cobweb
webbing
weber
通過擷取陣列下標可以獲得對應的變數值
webservers[0] # ==cobwb
webservers[-1] #==weber
8、正則匹配
//~開始表示正則匹配。~(web|db).*\.example\.com
檢測以192.168開頭的主機
ansible ~192\.168\.[0-9]\.[0-9]\ -m ping
主機清單,ansible模組
1 基於密碼的方式 root localhost vim etc ansible hosts web01 192.168.13.20 ansible ssh user root ansible ssh port 22 ansible ssh pass 1 web02 192.168.15.100 a...
Ansible2 主機清單
ansible 通過讀取預設的主機清單配置 etc ansible hosts,可以同時連線到多個遠端主機上執行任務,預設路徑可以通過修改 ansible.cfg 的 hostfile 引數指定路徑。對於 etc ansible hosts最簡單的定義格式像下面 1 簡單的主機和組 mail yan...
利用ansible進行主機管理
安裝好了 ansible 之後後就可以開始一些簡單的任務了 ansible配置檔案查詢順序 首先檢測 ansible config 變數定義的配置檔案 其次檢查當前目錄下的 ansible.cfg 檔案 再次檢查當前使用者家目錄下 ansible.cfg 檔案 最後檢查 etc ansible an...