Ansible是一個系列文章,我會盡可能以通俗易懂、詼諧幽默的總結方式給你們呈現這些枯燥的知識點,讓學習變的有趣一些。
此時外面小雨淅淅瀝瀝的下着,週末,慵懶的週末,無聊到極點纔打開電腦,回頭一看,都有小半個月沒有看技術書籍了,頹廢就像洪水同樣,氾濫到無可收拾。技術人,一天不看技術,都會感到空虛,可是最近生活的打擊一個接一個,讓人措手不及,防不勝防;工做中的忙碌,讓本身就像無頭蒼蠅同樣,處處亂撞。shell
繼續本身的博客之路,近期準備將Ansible相關的內容整理一下,和你們分享。編程
熟悉Linux運維的同窗,對於這個就很是有經驗了。在Linux中,基本上99%的軟件都有一個配置文件,而這些配置文件中配置了這些軟件的運行方式等一些屬性。同時,根據存放位置的不一樣,同一個軟件,一樣的配置文件的使用優先級也是不同的。在Ansible中,它的配置文件是一個名爲ansible.cfg
的配置文件,ansible.cfg配置文件是以ini格式存儲配置數據的。可是ansible.cfg配置文件能夠存放在不一樣的目錄,但只有一個可用,在運行Ansible命令時,Ansible將會按照預先設定的順序查找配置文件,檢查到哪一個就用哪一個。Ansible預先設定的優先級順序以下:緩存
ANSIBLE_CFG
:首先,Ansible命令會先檢查環境變量,及這個環境變量將指向的配置文件;./ansible.cfg
:其次,將會檢查當前目錄下的ansible.cfg配置文件;~/.ansible.cfg
:再次,將會檢查當前用戶home目錄下的.ansible.cfg
配置文件;/etc/ansible/ansible.cfg
:最後,將會檢查在安裝Ansible時自動生成的配置文件。幾乎全部的配置項均可以經過Ansible的playbook或環境變量來從新賦值,因此當你怎麼都不知道這個變量在哪裏定義的時候,不妨去看看環境變量裏看看。根據我這麼多年的運維經驗來講,我建議使用~/.ansible.cfg
做爲配置文件使用,這樣就能夠實現每一個用戶都有本身獨自的配置文件,不污染其它用戶正常使用Ansible,同時也方便進行選項配置。併發
因爲Ansible自己沒有服務的概念,因此只要配置修改後配置將立刻生效。
到目前爲止,我尚未見到一個配置項超級少,配置超級簡單的配置文件;一樣的,Ansible的配置文件也不簡單,配置項超級多;可是,二八法則一樣也適用於這些配置文件,20%的配置項決定了80%的功能,只有那20%的配置項是咱們須要去關心的。因此,你們不要懼怕,下面咱們就將這20%經常使用的選項進行一一說明和總結。運維
defaults配置異步
配置項 | 說明 | 默認值 |
---|---|---|
inventory | ansible inventory文件路徑 | /etc/ansible/hosts |
library | ansible模塊文件路徑 | /usr/share/my_modules/ |
remote_tmp | ansible遠程主機腳本臨時存放目錄 | ~/.ansible/tmp |
local_tmp | ansible管理節點腳本臨時存放目錄 | ~/.ansible/tmp |
forks | ansible執行併發數 | 5 |
poll_interval | ansible異步任務查詢間隔 | 15 |
sudo_user | ansible sudo用戶 | root |
ask_sudo_pass | 運行ansible是否提示輸入sudo密碼 | True |
ask_pass | 運行ansible是否提示輸入密碼 | True |
transport | ansible遠程傳輸模式 | smart |
remote_port | 遠程主機SSH端口 | 22 |
module_lang | ansible模塊運行默認語言環境 | C |
gathering | facts信息收集開關定義 | smart |
roles_path | ansible role存放路徑 | /etc/ansible/roles |
timeout | ansible SSH鏈接超時時間 | 10 |
remote_user | ansible遠程認證用戶 | root |
log_path | ansible日誌記錄文件 | /var/log/ansible.log |
module_name | ansible默認執行模塊 | command |
executable | ansible命令執行shell | /bin/sh |
hash_behaviour | ansible主機變量重複處理方式 | replace |
private_role_vars | 默認狀況下,角色中的變量將在全局變量範圍中可見。 爲了防止這種狀況,能夠啓用如下選項,只有tasks的任務和handlers得任務能夠看到角色變量 | yes |
vault_password_file | 指定vault密碼文件路徑 | 無 |
ansible_managed | 定義的一個Jinja2變量,能夠插入到Ansible配置模版系統生成的文件中 | Ansible managed |
display_skipped_hosts | 開啓顯示跳過的主機 | True |
error_on_undefined_vars | 開啓錯誤,或者沒有定義的變量 | False |
action_plugins | ansible action插件路徑 | 無 |
cache_plugins | ansible cache插件路徑 | 無 |
callback_plugins | ansible callback插件路徑 | 無 |
connection_plugins | ansible connection插件路徑 | 無 |
lookup_plugins | ansible lookup插件路徑 | 無 |
inventory_plugins | ansible inventory插件路徑 | 無 |
vars_plugins | ansible vars插件路徑 | 無 |
filter_plugins | ansible filter插件路徑 | 無 |
terminal_plugins | ansible terminal插件路徑 | 無 |
strategy_plugins | ansible strategy插件路徑 | 無 |
fact_caching | 定義ansible facts緩存方式 | memory |
fact_caching_connection | 定義ansible facts緩存路徑 | 無 |
privilege_escalation配置學習
配置項 | 說明 | 默認值 |
---|---|---|
become | 是否開啓become模式 | True |
become_method | 定義become方式 | sudo |
become_user | 定義become方式 | root |
become_ask_pass | 是否認義become提示密碼 | False |
經過一個軟件的配置文件,咱們大致能知道這個軟件支持的功能,就像咱們在閱讀源碼同樣,熟悉了目錄結構後,就是開始閱讀配置文件。這篇文章對Ansible的功能配置文件ansible.cfg
進行了一個總體的總結,同時也對一些經常使用的配置選項進行了重點說明。這裏說的配置項雖然都是一些簡單的內容點,可是倒是後續學習的基礎和根本,但願你們對這裏的配置選項有一個總體的記憶和印象,在後續的學習中,能夠快速的回憶起這些內容。最後,若是覺的還不錯,能夠點擊下方的「打賞」哦。職業規劃
2019年6月15日,於內蒙古呼和浩特。spa
從最基礎的編程語法,到高深的編程技巧;從最簡單的學習計劃,到長遠的職業規劃;果凍想分享的不只僅是一篇文章,更多的是對編程的摯愛和執着,對人生的享受和理解;無論你是IT菜鳥,仍是編程老手,「果凍想」都值得你關注。插件