Ansible安裝有3種方式,PIP安裝、yum安裝、編譯安裝
- 最簡單的yum方式:
yum install ansible -y
驗證安裝是否成功:
[root@VM_89_124_centos test]# ansible --version
ansible 2.3.1.0
config file = /etc/ansible/ansible.cfg
configured module search path = Default w/o overrides
python version = 2.7.5 (default, Nov 6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]
ansible目錄結構:
通過如下命令我們可以獲取ansible所有文件存放目錄:
# rpm -ql ansible
該命令輸出內容較多,大致分為如下幾類:
- 配置文件目錄:/etc/ansible(ansible.cfg、hosts、roles(自定義或下載的role))
- 執行文件目錄:/usr/bin
- Lib庫依賴目錄:/usr/lib/python2.7/site-packages/ansible
- Help文檔目錄: /usr/share/doc/ansible-2.3.1.0
- Man文檔目錄:/usr/share/man/man1
其中,如下目錄運維需要常配置,需要我們熟練掌握。
- 配置文件目錄/etc/ansible/,主要功能為:Inventory主機信息配置、ansible工具功能配置等。所有ansible的配置均存放在該目錄下,運維日常的所有配置類操作也均基于此目錄進行。
- 執行文件目錄/usr/bin/,主要功能為:ansible系列命令默認存放目錄。ansible所有可執行文件均存放在該目錄下。
在/usr/lib/python2.7/site-packages/下,該目錄是系統當前默認的python路徑,因為ansible是基于python編寫的,所以ansible的所有lib庫文件可模塊文件也均存放于該目錄下。
ansible配置文件解析:
Inventory用于定義ansible的主機列表配置,ansible的自身配置只有一個,即ansible.cnf,ansible安裝好后它默認存放于/etc/ansible目錄下。ansible.cfg配置文件可以存在于多個地方,ansible讀取配置文件的順序依次是當前命令執行目錄——>用戶家目錄下的ansible.cfg——>/etc/ansible/ansible.cfg,先找到哪個就使用哪個的配置。其中ansible.cfg配置的所有內容均可在命令行通過參數的形式傳遞或定義在playbooks中。
配置文件ansible.cfg約有350行語句,大多數為注釋行默認配置項。該文件遵循INI格式,分為如下幾類配置。
1. [defaults]
該類配置下定義常規的連接類配置類型,如inventory、library、remote_tmp、locla_tmp、forks、poll_interval、sudo_user、ask_sudo_pass、ask_pass、transport、remote_port等。
[defaults]
# inventory = /etc/ansible/hosts #定義Inventory
# library = /usr/share/my_modules #自定義lib庫存放目錄
# remote_tmp = $HOME/.ansible/tmp #臨時文件遠程主機存放目錄
# local_tmp = $HOME/.ansible/tmp #臨時文件本地存放目錄
# forks = 5 #默認開啟的并發數
# poll_interval = 15 #默認輪詢時間間隔
# sudo_user = root #默認sudo用戶
# ask_sudo_pass = True #是否需要sudo密碼
# ask_pass = True #是否需要密碼
# roles_path = /etc/ansible/roles #默認下載的roles存放的目錄
#host_key_checking = False #首次連接是否需要檢查Key認證,建議設為False
#timeout = 10 #默認超時時間
#remote_user = root #如沒有指定用戶,默認使用的遠程連接用戶
#log_path = /var/log/ansible.log #執行日志存放目錄
#module_name = command #默認執行的模塊
#action_plugins = /usr/share/ansible/plugins/action #action插件的存放目錄
#callback_plugins = /usr/share/ansible/plugins/callback #callback插件的存放目錄
#connection_plugins = /usr/share/ansible/plugins/connection #connection插件的存放目錄
#lookup_plugins = /usr/share/ansible/plugins/lookup #lookup插件的存放目錄
#vars_plugins = /usr/share/ansible/plugins/vars #vars插件的存放目錄
#filter_plugins = /usr/share/ansible/plugins/filter #filter插件的存放目錄
#test_plugins = /usr/share/ansible/plugins/test #test插件的存放目錄
#strategy_plugins = /usr/share/ansible/plugins/strategy #strategy插件的存放目錄
#fact_caching = memory #getfact緩存的主機信息存放目錄,也可以設置存儲在redis中,用于持久化存儲
#retry_files_enabled = False #當playbook失敗的情況下,一個重試文件將會創建,默認為開啟此功能
#retry_files_save_path = ~/.ansible-retry #錯誤重啟文件的存放目錄
...
上述是日常可能用到的配置,這些多數保持默認即可。
2.[privilege_escalation]
處于安全角度考慮,部分公司不希望直接以root的高級管理員權限直接部署應用,往往會開放普通用戶權限并給予sudo權限,該部分配置主要針對sudo用戶提權的配置。
[privilege_escalation]
#become = True #是否sudo
#become_method = sudo #sudo方式
#become_user = root #sudo后變為root用戶
#become_ask_pass = False #sudo后是否驗證密碼
3.[accelerate]
Ansible連接加速相關配置。該配置項旨在提升ansible連接速度時會涉及,多數保持默認即可。
[accelerate]
#accelerate_port = 5099 #加速連接端口
#accelerate_timeout = 30 #命令執行超時時間,單位秒
#accelerate_connect_timeout = 5.0 #連接超時時間,單位秒
#accelerate_daemon_timeout = 30 #上一個活動連接的時間,單位分鐘
#accelerate_multi_key = yes
上面盡可能全地介紹了運維工作中可能需要修改的配置選項,除了在關閉首次連接提示(host_key_checking = Flase)或是提速調整([accelerate]區域塊配置調整)時可能會稍作調整,其中絕大部分選項默認即可,Ansible安裝好后無需任何改動即可使用。