Ansible 小手冊系列 四(詳解配置文件)
[root@host-172-20-6-120 ansible]# ansible --version ansible 2.2.0.0 config file = /etc/ansible/ansible.cfg configured module search path = Default w/o overrides
配置文件存在不同的位置,但只有一個可用。在下列列表中,ansible從上往下依次檢查,檢查到哪個可用就用哪個。
- ANSIBLE_CFG 環境變量,可以定義配置文件的位置
- ansible.cfg 存在於當前工作目錄
- ansible.cfg 存在與當前用戶家目錄
- /etc/ansible/ansible.cfg
ansible 配置文件默認存使用 /etc/ansible/ansible.cfg
hosts文件默認存使用 /etc/ansible/hosts
ansible.cfg 配置項說明
[defaults]
配置 | 說明 |
---|---|
#inventory = /etc/ansible/hosts | 指定主機清單文件 |
#library = /usr/share/my_modules/ | 指定模塊地址 |
#remote_tmp = $HOME/.ansible/tmp | 指定遠程執行的路徑 |
#local_tmp = $HOME/.ansible/tmp | ansible 管理節點得執行路徑 |
#forks = 5 | 置默認情況下Ansible最多能有多少個進程同時工作,默認設置最多5個進程並行處理 |
#poll_interval = 15 | 輪詢間隔 |
#sudo_user = root | sudo默認用戶 |
#ask_sudo_pass = True | 是否需要用戶輸入sudo密碼 |
#ask_pass = True | 是否需要用戶輸入連接密碼 |
#transport = smart | |
#remote_port = 22 | 遠程鏈接的端口 |
#module_lang = C | 這是默認模塊和系統之間通信的計算機語言,默認為’C’語言. |
#module_set_locale = True | |
#gathering = implicit | |
#gather_subset = all | 定義獲取fact的子集,默認全部 |
#roles_path = /etc/ansible/roles | 角色存儲路徑 |
#host_key_checking = False | 跳過ssh 首次連接提示驗證部分,False表示跳過。 |
#stdout_callback = skippy | |
#callback_whitelist = timer, mail | |
#task_includes_static = True | |
#handler_includes_static = True | |
#sudo_exe = sudo | sudo的執行文件名 |
#sudo_flags = -H -S -n | sudo的參數 |
#timeout = 10 | 連接超時時間 |
#remote_user = root | 指定默認的遠程連接用戶 |
#log_path = /var/log/ansible.log | 指定日誌文件 |
#module_name = command | 指定ansible默認的執行模塊 |
#executable = /bin/sh | 用於執行腳本得解釋器 |
#hash_behaviour = replace | 如果變量重疊,優先級更高的一個是替換優先級低得還是合並在一起,默認為替換 |
#private_role_vars = yes | 默認情況下,角色中的變量將在全局變量範圍中可見。 為了防止這種情況,可以啟用以下選項,只有tasks的任務和handlers得任務可以看到角色變量。 |
#jinja2_extensions = jinja2.ext.do,jinja2.ext.i18n | jinja2的擴展應用 |
#private_key_file = /path/to/file | 指定私鑰文件路徑 |
#vault_password_file = /path/to/vault_password_file | 指定vault密碼文件路徑 |
#ansible_managed = Ansible managed: {file} modified on %Y-%m-%d %H:%M:%S by {uid} on {host} | 定義一個Jinja2變量,可以插入到Ansible配置模版系統生成的文件中 |
#display_skipped_hosts = True | 如果設置為False,ansible 將不會顯示任何跳過任務的狀態.默認選項是顯示跳過任務的狀態 |
#display_args_to_stdout = False | |
#error_on_undefined_vars = False | 如果所引用的變量名稱錯誤的話, 是否讓ansible在執行步驟上失敗 |
#system_warnings = True | |
#deprecation_warnings = True | |
#command_warnings = False | |
#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模塊的存放路徑 |
#test_plugins = /usr/share/ansible/plugins/test | test模塊的存放路徑 |
#strategy_plugins = /usr/share/ansible/plugins/strategy | strategy模塊的存放路徑 |
#bin_ansible_callbacks = False | |
#nocows = 1 | |
#cow_selection = default | |
#cow_selection = random | |
#cow_whitelist=bud-frogs,bunny,cheese,daemon,default,dragon,elephant-in-snake,elephant,eyes, | |
#nocolor = 1 | 默認ansible會為輸出結果加上顏色,用來更好的區分狀態信息和失敗信息.如果你想關閉這一功能,可以把’nocolor’設置為‘1’: |
#fact_caching = memory | fact值默認存儲在內存中,可以設置存儲在redis中,用於持久化存儲 |
#retry_files_enabled = False | 當playbook失敗得情況下,一個重試文件將會創建,默認為開啟此功能 |
#retry_files_save_path = ~/.ansible-retry | 重試文件的路徑,默認為當前目錄下.ansible-retry |
#squash_actions = apk,apt,dnf,package,pacman,pkgng,yum,zypper | Ansible可以優化在循環時使用列表參數調用模塊的操作。 而不是每個with_項調用模塊一次,該模塊會一次調用所有項目一次。該參數記錄哪些action是這樣操作得。 |
#no_log = False | 任務數據的日誌記錄,默認情況下關閉 |
#no_target_syslog = False | 防止任務的日誌記錄,但只在目標上,數據仍然記錄在主/控制器上 |
#allow_world_readable_tmpfiles = False | |
#var_compression_level = 9 | 控制發送到工作進程的變量的壓縮級別。 默認值為0,不使用壓縮。 此值必須是從0到9的整數。 |
#module_compression = ‘ZIP_DEFLATED‘ | 指定壓縮方法,默認使用zlib壓縮,可以通過ansible_module_compression來為每個主機設置 |
#max_diff_size = 1048576 | 控制--diff文件上的截止點(以字節為單位),設置0則為無限制(可能對內存有影響) |
[privilege_escalation]
#become=True
#become_method=sudo
#become_user=root
#become_ask_pass=False
[paramiko_connection]
#record_host_keys=False
#pty=False
[ssh_connection]
配置 | 說明 |
---|---|
#ssh_args = -o ControlMaster=auto -o ControlPersist=60s | ssh連接時得參數 |
#control_path = %(directory)s/ansible-ssh-%%h-%%p-%%r | 保存ControlPath套接字的位置 |
#pipelining = False | SSH pipelining 是一個加速 Ansible 執行速度的簡單方法。ssh pipelining 默認是關閉,之所以默認關閉是為了兼容不同的 sudo 配置,主要是 requiretty 選項。如果不使用 sudo,建議開啟。打開此選項可以減少 ansible 執行沒有傳輸時 ssh 在被控機器上執行任務的連接數。不過,如果使用 sudo,必須關閉 requiretty 選項。 |
#scp_if_ssh = True | 該項為True時,如果連接類型是ssh,使ansible使用scp,為False是,ansible使用sftp。默認為sftp |
#sftp_batch_mode = False | 該項為False時,sftp不會使用批處理模式傳輸文件。 這可能導致一些類型的文件傳輸失敗而不可捕獲,但應該只有在您的sftp版本在批處理模式上有問題時才應禁用 |
[accelerate]
加速配置
#accelerate_port = 5099
#accelerate_timeout = 30
#accelerate_connect_timeout = 5.0
#accelerate_daemon_timeout = 30
#accelerate_multi_key = yes
[selinux]
配置 | 說明 |
---|---|
#special_context_filesystems=nfs,vboxsf,fuse,ramfs | 文件系統在處理安全上下文時需要特殊處理,定義復制現有上下文的文件系統 |
#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
Ansible 小手冊系列 四(詳解配置文件)