Ansible配置檔案

2022-09-06 07:51:12 字數 3325 閱讀 2223

ansible的配置檔案位於/etc/ansible目錄下,主要有ansible.cfg、hosts檔案。本節重點介紹主機與組定義檔案/etc/ansible/hosts.

/etc/ansible/hosts最簡單的格式如下:

www.ixdba.net

[webservers]

ixdba1.net

ixdba2.net

[dbservers]

db.ixdba1.net

db.ixdba2.net

中括號中的名字代表組名,可以根據需求將龐大的主機分成具有標識的組,如上面分了兩個組webservers和dbservers組;

主機(hosts)部分可以使用網域名稱、主機名、ip位址表示;當然使用前兩者時,也需要主機能反解析到相應的ip位址,一般此類配置中多使用ip位址;

未分組的機器需保留在hosts的頂部。

可在/etc/ansible/hosts檔案中,指定主機的範圍,示例如下:

[web]

www[01:50].ixdba.net

[db]

db[a:f].ixdba.ent

以下是hosts部分中經常用到的變數部分:

ansible_ssh_host#用於指定被管理的主機的真實ip

ansible_ssh_port#用於指定連線到被管理主機的ssh埠號,預設是22

ansible_ssh_user#ssh連線時預設使用的使用者名稱

ansible_ssh_pass#ssh連線時的密碼

ansible_sudo_pass#使用sudo連線使用者時的密碼

ansible_sudo_exec#如果sudo命令不在預設路徑,需要指定sudo命令路徑

ansible_ssh_private_key_file#秘鑰檔案路徑,秘鑰檔案如果不想使用ssh-agent管理時可以使用此選項

ansible_shell_type#目標系統的shell的型別,預設sh

ansible_connection#ssh 連線的型別:local , ssh , paramiko,在ansible1.2之前預設是paramiko ,後來智慧型選擇,優先使用基於controlpersist 的ssh

ansible_python_interpreter#用來指定python直譯器的路徑,預設為/usr/bin/python 同樣可以指定ruby 、perl的路徑

ansible_*_interpreter#其他直譯器路徑,用法與ansible_python_interpreter類似,這裡"*"可以是ruby或perl等其它語言

示例:

還可以改成這樣:

主機組可以包含主機組,主機的變數可以通過繼承關係,繼承到最高等級的組的變數。定義主機組之間的繼承關係我們使用":children"來表示

/etc/ansible/ansible.cfg檔案中定義了ansible的主機的預設配置部分,如預設是否需要輸入密碼、是否開啟sudo認證、action_plugins外掛程式的位置、hosts主機組的位置、是否開啟log功能、預設埠、key檔案位置等等。

#inventory = /etc/ansible/hosts該引數表示資源清單inventory檔案的位置,資源清單就是一些ansible需要連線管理的主機列表

#library = /usr/share/my_modules/ansible的操作動作,無論是本地或遠端,都使用一小段**來執行,這小段**稱為模組,這個library引數就是指向存放ansible模組的目錄

#module_utils= /usr/share/my_module_utils/

#remote_tmp= ~/.ansible/tmp指定遠端執行的路徑

#local_tmp= ~/.ansible/tmpansible管理節點的執行路徑

#forks = 5forks 設定預設情況下ansible最多能有多少個程序同時工作,預設設定最多5個程序並行處理。具體需要設定多少個,可以根據控制主機的效能和被管理節點的數量來確定。

#poll_interval= 15輪詢間隔

#sudo_user= rootsudo使用的預設使用者,預設是root

#ask_sudo_pass= true是否需要使用者輸入sudo密碼

#ask_pass= true是否需要使用者輸入連線密碼

#remote_port= 22這是指定連線對端節點的管理埠,預設是22,除非設定了特殊的ssh埠,不然這個引數一般是不需要修改的

#module_lang= c這是預設模組和系統之間通訊的計算機語言,預設為'c'語言.

host_key_checking= false跳過ssh首次連線提示驗證部分,false表示跳過。

#timeout = 10連線超時時間

#module_name= command指定ansible預設的執行模組

#nocolor= 1預設ansible會為輸出結果加上顏色,用來更好的區分狀態資訊和失敗資訊.如果你想關閉這一功能,可以把'nocolor'設定為'1':

#private_key_file=/path/to/file.pem在使用ssh公鑰私鑰登入系統時候,使用的金鑰路徑。

ansible配置檔案詳解(2)

action plugins 行為 是 ansible中的一段 用來啟用一些事件,例如執行乙個模組,乙個模版,等等 這是乙個以開發者為中心的特性,使得一些底層模組可以從外部不同地方載入 action plugins ansible plugins action plugins usr share a...

ansible 配置檔案優先順序

優先順序如下 1.首先找執行ansible命令的當前目錄中,是否有 ansible.cfg檔案 ansible.cfg 2.如果找不到,再 找 當前使用者的家目錄下是否有 ansible.cfg ansible.cfg 3.如果還找不到,就找 etc ansible ansible.cfg etc ...

Ansible配置檔案優先順序

root m01 vim etc ansible ansible.cfg nearly all parameters can be overridden in ansible playbook or with command line flags.ansible will read ansible ...