Ansible配置文件ansible.cfg詳解

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菜鳥,仍是編程老手,「果凍想」都值得你關注。
圖片描述插件

相關文章
相關標籤/搜索