Inventory管理
Ansible讀取遠程服務器列表配置共有三種方式
- 默認讀取/etc/ansible/hosts文件
- 命令行參數-i指定hosts文件
- ansible.cfg配置文件中通過iventory選項指定hosts文件(實際工作最常用)
hosts文件內容靈活定義
- 可以按照特定的類型鼎天,將某些特定的服務器分到一個配置節(jié)點(組)中扰路,同時也可以不分任何組(雖然沒什么好處)
- 還可以定義組[<組名>:children]來講已分組的主機合并到一個大的組里
- 甚至可以使用web[1:3]來匹配web1、web2酵镜、web3
hosts文件內容靈活匹配
在執(zhí)行ansible命令靶病,包括執(zhí)行playbook時次泽,對于需要匹配的主機列表配置可以使用通配符杜耙、正則表達式等更加靈活的方式启摄。
動態(tài)inventory獲取
除了靜態(tài)讀取hosts配置獲取主機列表,還可以通過讀取CMDB或者云計算服務平臺的方式動態(tài)獲取主機列表(前提是服務器都上了云)敌呈,這樣就不用每次服務器有變動就來手工修改hosts文件贸宏,減少維護成本。
iventory行為參數
類似hosts文件中配置的ansible_user磕洪、ansible_port這樣的參數被稱為行為參數用來控制遠程訪問服務器時使用的參數或行為
定義服務器變量
行為參數時ansible預設的參數變量吭练,有特定的含義。用戶也可以在hosts文件中定義自己的變量析显。比如所有的mysql數據庫服務器的訪問端口可以定義為mysql_port=3306鲫咽,這個mysql_port就是用戶自定義變量,為了減少配置的維護成本谷异,ansible支持講自定義變量保存到/etc/ansible/host_vars文件中以"var:value"的格式定義分尸,然后在Playbook中通過{{var}}來訪問。