生活随笔
收集整理的這篇文章主要介紹了
《Ansible权威指南 》一第2章 Ansible基础元素介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本節書摘來自華章出版社《Ansible權威指南 》一書中的第2章,第2.1節,李松濤 魏 巍 甘 捷 著更多章節內容可以訪問云棲社區“華章計算機”公眾號查看。
第2章
Ansible基礎元素介紹
第1章介紹了Ansible的功能作用、通信發展史、基礎的安裝部署及處理Ansible安裝問題所需的Python多環境管理工具Pyenv和Virutalenv。在前期基本工作準備妥當的基礎上,本章進一步深入學習Ansible的基礎元素,會相繼接觸Ansible目錄結構簡介、Ansible系列命令、Ansible Inventory配置規范、Ansible模式匹配規則等,其中部分內容,諸如Inventory、Ansible-playbook等在后續涉及章節會更深入介紹。本章主要是為大家呈現Ansible及系列命令的基礎入門介紹,
所介紹的內容相互之間沒有緊密關系,可選擇性地閱讀感興趣章節。
2.1 Ansible目錄結構介紹
Ansible是開源工具,整個開發過程或二次開發均遵循GPL協議,所以所有源碼均可見。作為一款日常工作所需的核心軟件,我們有必要知道其目錄分布及各目錄功能。通過如下命令我們可以獲取Ansible所有文件存放目錄:
# rpm -ql ansible
該命令輸出內容較多,大致分為如下幾類:
配置文件目錄/etc/ansible/
執行文件目錄/usr/bin/
Lib庫依賴目錄/usr/lib/pythonX.X/site-packages/ansible/
Help文檔目錄/usr/share/doc/ansible-X.X.X/
Man文檔目錄/usr/share/man/man1/
整體的目錄概要可參考如圖2-1所示的Ansible目錄樹結構。
其中,如下目錄運維常要配置,需熟練掌握。
1)配置文件目錄/etc/ansible/,主要功能為:Inventory主機信息配置、Ansible工具功能配置等。所有Ansible的配置均存放在該目錄下,運維日常的所有配置類操作也均基于此目錄進行。
2)執行文件目錄/usr/bin/,主要功能為:Ansible系列命令默認存放目錄。Ansible所有的可執行文件均存放在該目錄下。
在/usr/lib/pythonXXX/site-packages/下,該目錄是系統當前默認的Python路徑,因為Ansible是基于Python編寫的,所以Ansible的所有lib庫文件和模塊文件也均存放于該目錄下。希望了解Ansible源碼的話可至該目錄下查看其工作原理,當然也可至GitHub上下載歷史或最新Ansible版本。
2.2 Ansible配置文件解析
Inventory用于定義Ansible的主機列表配置,Ansible的自身配置文件只有一個,即ansible.cfg,Ansible安裝好后它默認存放于/etc/ansible/目錄下。ansible.cfg配置文件可以存在于多個地方,Ansible讀取配置文件的順序依次是當前命令執行目錄→用戶家目錄下的.ansible.cfg→/etc/ansible.cfg,先找到哪個就使用哪個的配置。其ansible.cfg配置的所有內容均可在命令行通過參數的形式傳遞或定義在Playbooks中。
配置文件ansible.cfg約有350行語句,大多數為注釋行默認配置項。該文件遵循INI格式,分為如下幾類配置。(1)[defaults]
該類配置下定義常規的連接類配置,如inventory、library、remote_tmp、local_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 # 默認超時時間
# timeout = 10 # 如沒有指定用戶,默認使用的遠程連接用戶
# 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緩存的主機信息存放方式
# retry_files_enabled = False
# 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)[paramiko_connection]
定義paramiko_connection配置,該部分功能不常用,了解即可。
[paramiko_connection] # 該配置不常用到
# record_host_keys=False # 不記錄新主機的key以提升效率
# pty=False # 禁用sudo功能
(4)[ssh_connection]
Ansible默認使用SSH協議連接對端主機,該部署是主要是SSH連接的一些配置,但配置項較少,多數默認即可。
[ssh_connection]
# pipelining = False # 管道加速功能,需配合requiretty使用方可生效
(5)[accelerate]
Ansible連接加速相關配置。因為有部分使用者不滿意Ansible的執行速度,所以Ansible在連接和執行速度方面也在不斷地進行優化,該配置項在提升Ansibile連接速度時會涉及,多數保持默認即可。
[accelerate]
# accelerate_port = 5099 # 加速連接端口
# accelerate_timeout = 30 # 命令執行超時時間,單位秒
# accelerate_connect_timeout = 5.0 # 連接超時時間,單位秒
# accelerate_daemon_timeout = 30 # 上一個活動連接的時間,單位分鐘
# accelerate_multi_key = yes
(6)[selinux]
關于selinux的相關配置幾乎不會涉及,保持默認配置即可。
[selinux]
# libvirt_lxc_noseclabel = yes
# libvirt_lxc_noseclabel = yes
(7)[colors]
Ansible對于輸出結果的顏色也進行了詳盡的定義且可配置,該選項對日常功能應用影響不大,幾乎不用修改,保持默認即可。
[colors]
# highlight = white
# verbose = blue
# warn = bright purple
# error = red
# debug = dark gray
# deprecate = purple
# skip = cyan
# unreachable = red
# ok = green
# changed = yellow
# diff_add = green
# diff_remove = red
# diff_lines = cyan
上面盡可能全地介紹了運維工作中可能需要修改的配置選項,除了在關閉首次連接提示(host_key_checking = False)或提速調整([accelerate]區域塊配置調整)時可能會稍做調整,其中絕大多數選項默認即可,Ansible安裝好后無需任何改動即可使用。
總結
以上是生活随笔為你收集整理的《Ansible权威指南 》一第2章 Ansible基础元素介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。