ansible的配置文件講解:
ansible.cfg這個配置文件可以存放在當前目錄(/etc/ansible)、home目錄、工作目錄。
[defaults]
inventory = /etc/ansible/hosts #inventory配置目錄
library = /usr/share/my_modules/ #自定義模塊存放目錄
module_utils = /usr/share/my_module_utils/
remote_tmp = ~/.ansible/tmp
local_tmp = ~/.ansible/tmp
plugin_filters_cfg = /etc/ansible/plugin_filters.yml
forks = 5 #默認開啟的進程數量
poll_interval = 15
sudo_user = root
ask_sudo_pass = True
ask_pass = True
transport = smart
remote_port = 22
module_lang = C
module_set_locale = False
gathering = implicit
是否收集fact信息,在playbook中可以自定義設置:gather_facts=False/True
選項:
smart:默認收集,如果已經收集將不再收集
implicit:默認收集,使用gather_facts可以取消收集
explicit:默認情況不收集
gather_subset = all
這會影響指令的收集
選項:
all
network
hardware
virtual
facter
ohai
gather_timeout = 10
收集一些與硬件相關的信息,允許根據系統情況來設置超時時間。
inject_facts_as_vars = True
這個設置是為了維護2.5之前的默認行為。
設置為True是為了向后兼容。
roles_path = /etc/ansible/roles
搜索角色的其它路徑,冒號分隔。
host_key_checking = False
取消注釋以禁用主機的ssh的密鑰檢查。
stdout_callback = skippy
更改默認回調的類型
callback_whitelist = timer, mail
回調插件白名單,限制默認插件自動調用。如果是自定義插件則不需要。
task_includes_static = False
handler_includes_static = False
默認情況下,tasks和handlers是靜態。從2.0開始默認是動態。
error_on_missing_handler = True
如果處理程序丟失是錯誤還是警告。
sudo_flags = -H -S -n
傳遞給sudo的標志,這里如果省略默認值可能會報錯。
timeout = 10
SSH的超時時間
remote_user = root
/usr/bin/Ansible屬於哪個用戶,如果沒有給定,那么屬於playbook
log_path = /var/log/ansible.log
ansible自身日志的存儲路徑,設置路徑代表打開,這個日志與callback中的日志不一樣
module_name = command
/usr/bin/ansible默認的模塊名
executable = /bin/sh
將此shell用於在sudo下執行命令,極少情況下才需要修改為/bin/bash
hash_behaviour = replace
如果inventory變量重疊,優先級越高的會被使用。
或者hash值合並在一起,默認為replace
private_role_vars = yes
默認情況下,角色中的變量將在全局變量中可見。
為了防止這種情況,設置此變量,只有角色中的任務和處理程序才能看到那里的變量。
jinja2_extensions = jinja2.ext.do,jinja2.ext.i18n
Jinjia2所有可用的擴展名。
private_key_file = /path/to/file
使用私鑰文件進行身份驗證,私鑰的存儲位置。
vault_password_file = /path/to/vault_password_file
如果設置,則配置Vault密碼文件的路徑,以替代在命令行上指定--vault-password-file。
ansible_managed = Ansible managed
Jinja2模板中提供的字符串{{ansible_managed}}的格式表示用戶編輯模板文件將被替換。
display_skipped_hosts = True
默認情況下,如果確定不應該在主機上運行任務,則ansible-playbook將顯示Skipping [host]
如果你不想看到這條消息,將其設置為False。
display_args_to_stdout = False
默認情況下,如果playbook中的任務不包含name:field,則ansible-playbook將構造一個包含任務操作但不包含任務args的頭。
這是一個安全功能,因為ansible無法知道* module *在打印標題時是否將參數視為no_log。
如果您的環境沒有從ansible-playbook保護stdout的問題(或者您在所有具有秘密信息的任務中手動指定了playbook中的no_log),那么您可以安全地將其設置為True以獲取更多信息。
error_on_undefined_vars = False
默認情況下(從1.3開始),Ansible在嘗試取消引用未在模板或操作行中設置的Jinja2變量時會引發錯誤。
取消注釋此行以將行為還原為1.3之前的版本。
system_warnings = True
默認情況下(從1.6開始),Ansible可能會根據運行ansible本身的系統配置顯示警告。
這可能包括有關第三方軟件包的警告或應盡可能解決的其他條件。要禁用這些警告,請將值設置為False:
deprecation_warnings = True
默認情況下(從1.4開始),Ansible可能會顯示不再使用的語言功能的棄用警告,並且將在以后的版本中刪除。
要禁用這些警告,請將值設置為False:
command_warnings = False
(從1.8開始),Ansible可以選擇在使用默認的Ansible模塊時簡化shell和command的使用時發出警告。
通過調整以下內容可以使這些警告靜音在命令行的末尾設置或添加warn = yes或warn = no參數字符串。
例如,這將建議使用git模塊而不是外殼到git命令。
action_plugins = /usr/share/ansible/plugins/action
cache_plugins = /usr/share/ansible/plugins/cache
callback_plugins = /usr/share/ansible/plugins/callback
connection_plugins = /usr/share/ansible/plugins/connection
lookup_plugins = /usr/share/ansible/plugins/lookup
inventory_plugins = /usr/share/ansible/plugins/inventory
vars_plugins = /usr/share/ansible/plugins/vars
filter_plugins = /usr/share/ansible/plugins/filter
test_plugins = /usr/share/ansible/plugins/test
terminal_plugins = /usr/share/ansible/plugins/terminal
strategy_plugins = /usr/share/ansible/plugins/strategy
插件的存儲位置,ansible將會自動執行下面的插件。
strategy = free
默認情況下,ansible將使用“linear”策略,但您可能想嘗試另一種策略
bin_ansible_callbacks = False
#默認情況下沒有為/bin/ansible加載回調,如果你想要啟用它將其設置為True就行了。
nocows = 1
如果您不想要cowsay支持或導出ANSIBLE_NOCOWS = 1,則設置為1
cow_selection = default
cow_selection = random
設置默認情況下你想使用的cowsay模板。 設置為'隨機'時,將為每個任務選擇隨機模板。
選擇將被過濾反對下面的`cow_whitelist`選項。
nocolor = 1
當使用cowsay的'random'選項時,模板將被限制在此列表中。
它應格式化為逗號分隔列表,名稱之間不能有空格。注意:此處的行連續僅用於格式化,因為python中的INI解析器不支持它們。
fact_caching = memory
fact緩存的存儲類型。如果存儲在memory那么只是暫時的,你可以將其存儲在文件或者數據庫中。
fact_caching_connection=/tmp
fact緩存的存儲路徑,如果設置為文件存儲,這里應該設置為文件路徑。
如果是數據庫類型,應該是localhost:6379:0格式。
retry_files_enabled = False
retry_files_save_path = ~/.ansible-retry
默認情況下,當playbook執行失敗時,將在~/創建.retry文件。可以通過retry_files_enabled來禁用。
通過設置retry_files_save_path來更改文件的位置。
no_log = False
Ansible可以優化在循環時使用列表參數調用模塊的操作。
而不是每個with_item調用一次模塊,模塊一次調用所有項目一次。
目前只適用於有限的情況。
no_target_syslog = False
防止記錄任務,但僅在目標上,數據仍記錄在主/控制器上
allow_world_readable_tmpfiles = False
#控制Ansible是否會引發錯誤或警告,如果任務別無選擇,只能創建可讀的臨時文件來執行遠程計算機上的模塊。
對於安全性,默認情況下此選項為False。
var_compression_level = 9
控制發送到工作進程的變量的壓縮級別。 默認值為0時,不使用壓縮。 該值必須是0到9之間的整數。
module_compression = 'ZIP_DEFLATED'
控制將ansible模塊發送到遠程系統時使用的壓縮方法。 壓縮類型依賴於編譯到控制器的python和客戶端的python中的支持。 名稱應與python Zipfile壓縮類型匹配:
ZIP_STORED(無壓縮。無處不在)
ZIP_DEFLATED(使用zlib,默認值)
可以通過ansible_module_compression庫存變量為每個主機設置這些值。
max_diff_size = 1048576
這將控制文件的--diff的截止點(以字節為單位)
設置為0表示無限制(RAM可能會受損!)
merge_multiple_cli_flags = True
這將控制ansible如何在CLI上處理多個--tags和--skip-tags參數。 如果這是True,則將多個參數合並在一起。
如果為False,則使用最后指定的參數,並忽略其他參數。此選項將在2.8中刪除。
show_custom_stats = True
最后顯示自定義統計信息的控件,默認情況下已關閉
inventory_ignore_extensions = ~, .orig, .bak, .ini, .cfg, .retry, .pyc, .pyo
控制將目錄用作具有可能多個源(靜態和動態)的庫存時要忽略的文件
network_group_modules=eos, nxos, ios, iosxr, junos, vyos
此系列模塊使用針對網絡設備優化的替代執行路徑,只有在您了解其工作原理的情況下才更新此設置,否則會破壞模塊執行
allow_unsafe_lookups = False
啟用時,此選項允許查找(通過{{lookup('foo')}}之類的變量或當用作帶有“with_foo”的循環時)返回未標記為“不安全”的數據。
這意味着數據可能包含將通過模板引擎運行的jinja2模板語言。
ENABLING這可能是一種安全風險
any_errors_fatal = False
為所有的操作設置默認錯誤。
[inventory]
enable_plugins = host_list, virtualbox, yaml, constructed
默認啟動的插件。
ignore_extensions = .pyc, .pyo, .swp, .bak, ~, .rpm, .md, .txt, ~, .orig, .ini, .cfg, .retry
在將目錄解析為庫存源時忽略這些擴展
ignore_patterns=
在將目錄解析為庫存源時忽略與這些模式匹配的文件
unparsed_is_failed=False
如果'true'未解析的庫存來源成為致命錯誤,則會發出警告。
[privilege_escalation]
權限提升設置
become=True
become_method=sudo
become_user=root
become_ask_pass=False
[paramiko_connection]
record_host_keys=False
取消注釋此行以使paramiko連接插件不記錄遇到的新主機密鑰。 提高新主機添加的性能。 設置獨立於上面的主機密鑰檢查設置。
pty=False
默認情況下,Ansible請求在sudo下執行的命令的偽終端。 取消注釋此行以禁用此行為。
look_for_keys = False
在嘗試向遠程設備進行身份驗證時,paramiko將默認初始查找SSH密鑰。
對於在密鑰發生故障后關閉連接的某些網絡設備,這是一個問題。 取消注釋此行以禁用Paramiko查找鍵功能
host_key_auto_add = True
當與Paramiko使用持久連接時,連接在后台進程中運行。
如果主機尚未具有有效的SSH密鑰,則默認情況下Ansible將提示添加主機密鑰。
這將導致在后台進程中運行的連接失敗。 取消注釋此行以使Paramiko自動添加主機密鑰。
[ssh_connection]
ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s
要使用的ssh參數離開ControlPersist會導致性能不佳,所以在較舊的平台上使用paramiko而不是刪除它,-C控制壓縮使用
control_path_dir = /tmp/.ansible/cp
control_path_dir = ~/.ansible/cp
ControlPath套接字的基目錄。
control_path = %(directory)s/%%h-%%r
用於ControlPath套接字的路徑。 默認為主機名,端口和用戶名的散列字符串(配置中為空字符串)。
pipelining = False
啟用流水線操作可減少在遠程服務器上執行模塊所需的SSH操作數。
這可以在啟用時顯着提高性能,但是當使用“sudo:”時,必須先在/ etc / sudoers中禁用'requiretty'
默認情況下,禁用此選項以保持兼容性,sudoers配置requiretty(許多發行版的默認設置)。
scp_if_ssh = smart
控制傳輸文件的機制(舊)
smart:嘗試sftp然后嘗試scp [默認]
True:僅使用scp
False:僅使用sftp
transfer_method = smart
控制傳輸文件的機制(新)
如果設置,這將覆蓋scp_if_ssh選項:
sftp:使用sftp傳輸文件
scp:使用scp傳輸文件
piped:通過SSH使用'dd'來傳輸文件
smart:按順序嘗試sftp,scp和piped [默認]
sftp_batch_mode = False
如果為False,sftp將不使用批處理模式傳輸文件。
但是,這可能導致某些類型的文件傳輸失敗無法捕獲,並且只有在sftp版本的批處理模式出現問題時才應禁用
use_tty = True
未啟用管道傳輸時,-tt參數將傳遞給ssh,因為默認情況下sudo需要tty。
retries = 3
在UNREACHABLE的情況下,重試與主機的SSH連接的次數。
對於每次重試嘗試,都存在指數退避,因此在第一次嘗試之后有1s等待,然后是2s,4s等等,最多30s(最大)。
[persistent_connection]
connect_timeout = 30
以秒為單位配置持久連接超時值。 此值是持久連接在銷毀之前保持空閑的時間。
如果連接在超時值到期之前未收到請求,則連接將關閉。 默認值為30秒。
connect_retry_timeout = 15
配置持久連接重試超時。 此值配置ansible-connection將等待連接到本地域套接字的重試超時。
該值必須大於ssh timeout(超時)且小於持久連接空閑超時(connect_timeout)。默認值為15秒。
command_timeout = 10
命令超時值定義在超時之前等待命令或RPC調用的時間。 命令超時的值必須小於持久連接空閑超時(connect_timeout)的值
默認值為10秒。
[accelerate]
accelerate_port = 5099
accelerate_timeout = 30
accelerate_connect_timeout = 5.0
accelerate_daemon_timeout = 30
守護程序超時以分鍾為單位。 這個時間是衡量的從最后一個活動到加速守護進程。
accelerate_multi_key = yes
如果設置為yes,則accele_multi_key將允許將多個私鑰上傳到它,盡管每個用戶必須通過SSH訪問系統才能添加新密鑰。
默認值為“no”。
[selinux]
special_context_filesystems=nfs,vboxsf,fuse,ramfs,9p
處理安全上下文時需要特殊處理的文件系統復制現有上下文或使用用戶默認值的默認行為需要更改為使用依賴於文件系統的上下文。
libvirt_lxc_noseclabel = yes
將此設置為yes以允許libvirt_lxc連接在沒有SELinux的情況下工作。
[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
[diff]
always = no
在運行時始終打印diff(與始終使用-D / - diff運行相同)
context = 3
設置要在diff中顯示的上下文行數
