目录

 

 

配置类型

Ansible 支持以下配置类型,读取的顺序如下:

  1. 环境变量 ANSIBLE_CONFIG
  2. 当前目录下的 ansible.cfg
  3. 用户家目录下的 .ansible.cfg
  4. /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

注:Connection Plugin,Ansible 支持使用插件式的远程连接实现,通常情况下推荐使用 OpenSSH。

  • filter_plugins:指示 Filter 插件的位置,是一个面向开发者的配置。
filter_plugins = ~/.ansible/plugins/filter_plugins/:/usr/share/ansible_plugins/filter_plugins

注:Filter Plugin,指的是 Jinja2 Filter 的插件。

  • 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

注:Callback Plugin 是一些由用户编写的代码,可以从 Ansible 运行结果中获取数据,并做出一些处理。例如:自定义日志,发邮件,播放声音效果等。

  • 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。