Ansible — ansible.cfg 配置文件解析
Posted 范桂飓
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ansible — ansible.cfg 配置文件解析相关的知识,希望对你有一定的参考价值。
目录
配置类型
Ansible 支持以下配置类型,读取的顺序如下:
- 环境变量 ANSIBLE_CONFIG
- 当前目录下的 ansible.cfg
- 用户家目录下的 .ansible.cfg
- /etc/ansible/ansible.cfg
ansible.cfg 配置文件
[defaults] Section
-
timeout:支持 SSH 建立连接的超时时间。
-
forks:只是管理阶段的 Ansible 子进程并发数,默认为 5。
-
inventory:指定 Inventory 清单文件的路径。
inventory = /etc/ansible/hosts
- log_path:只是 Log file 的储存路径。
log_path=/var/log/ansible.log
- action_plugins:插件,是一个面向开发者的配置。指示了加载插件的位置。
action_plugins = ~/.ansible/plugins/action_plugins/:/usr/share/ansible_plugins/action_plugins
- connection_plugins:指示 Connection 插件的位置。是一个面向开发者的配置。
connection_plugins = ~/.ansible/plugins/connection_plugins/:/usr/share/ansible_plugins/connection_plugins
- filter_plugins:指示 Filter 插件的位置,是一个面向开发者的配置。
filter_plugins = ~/.ansible/plugins/filter_plugins/:/usr/share/ansible_plugins/filter_plugins
- ansible_managed:是一个会被插入到 Ansible Configuration Template Jinja2 中的字符串变量。
ansible_managed = Ansible managed: {file} modified on %Y-%m-%d %H:%M:%S by {uid} on {host}
-
ask_pass:指示 Ansible Playbook 进行 SSH 远程连接时,是否等待账户密码输入。若使用 Public Key 免密登陆,则无需开启。
-
ask_sudo_pass:指示 Ansible Playbook 进行 sudo 时,是否等待账户密码输入。
-
callback_plugins:指示 Callbacks 插件的位置。Callbacks 在 Ansible 中体现为一段代码,在特殊事件发生时将被调用,并且允许出发通知。是一个面向开发者的配置。
callback_plugins = ~/.ansible/plugins/callback_plugins/:/usr/share/ansible_plugins/callback_plugins
-
bin_ansible_callbacks(New in version 1.8):指示 callback 插件是否在运行 ansible CLI 的时被加载。callback 插件如果存在,ansible-playbook CLI 会强制加载。
-
command_warnings(New in version 1.8):是否开启 commands 警告,警告不规范的 commands 使用,建议开启。
-
deprecation_warnings(New in version 1.3):是否开启 deprecation(弃用)警告,建议开启。
-
system_warnings:指示是否开启系统允许 Ansible 的潜在问题的警告,建议开启。
-
display_skipped_hosts:指示是否显示被 Skip(跳过)的 Task title。
-
error_on_undefined_vars:如果所引用的变量名称错误的话,指示执行步骤是否失败终止。
-
force_handlers:指示当 Host 崩溃时,是否仍继续对该 Host 执行任务。
-
force_color:强制地指示终端颜色模式。
force_color = 1
-
gathering(New in version 1.6):指示 Facts 的收集方式。
- implicit(默认)表示每一次 Play 都会收集 Facts;
- explicit 正相反,如果 Play 不需要,则 Facts 不会被收集。
- smart 表示没有 New Facts 的 Hosts 将不会被扫描。
-
jinja2_extensions:指示开启的 Jinja2 拓展模块。是一个面向开发者的配置。
jinja2_extensions = jinja2.ext.do,jinja2.ext.i18n
-
module_name:支持 ansible CLI 使用的默认模块(不需要 -m 显式指定)。
-
roles_path:指示 ansible-playbook 扩展搜索 Roles 的路径。
roles_path = /opt/mysite/roles
# 多个路径使用 : 隔开。
roles_path = /opt/mysite/roles:/opt/othersite/roles
[ssh_connection] Section
- ssh_args:指示 SSH 参数。
ssh_args = -o ControlMaster=auto -o ControlPersist=1800s
- control_path:指示保存 ControlPath 套接字的位置。
control_path=%(directory)s/ansible-ssh-%%h-%%p-%%r
- scp_if_ssh:指示是否在没有 SFTP 的场景中回退使用 SCP。
以上是关于Ansible — ansible.cfg 配置文件解析的主要内容,如果未能解决你的问题,请参考以下文章