ansible配置文件

       在Ansible中,它的配置文件是一个名为ansible.cfg的配置文件,ansible.cfg配置文件是以ini格式存储配置数据的。但是ansible.cfg配置文件可以存放在不同的目录,但只有一个可用,在运行Ansible命令时,Ansible将会按照预先设定的顺序查找配置文件,检查到哪个就用哪个。
Ansible预先设定的优先级顺序如下,优先级逐渐递减:

1. ANSIBLE_CFG:首先,Ansible命令会先检查环境变量,及这个环境变量将指向的配置文件;
2. ./ansible.cfg:其次,将会检查当前目录下的ansible.cfg配置文件;
3. ~/.ansible.cfg:再次,将会检查当前用户home目录下的.ansible.cfg配置文件;
4. /etc/ansible/ansible.cfg:最后,将会检查在安装Ansible时自动生产的配置文件。

几乎所有的配置项都可以通过Ansible的playbook或环境变量来重新赋值,所以当你怎么都不知道这个变量在哪里定义的时候,不妨去看看环境变量里看看。
建议: 使用~/.ansible.cfg作为配置文件使用,这样就可以实现每个用户都有自己独自的配置文件,不污染其它用户正常使用Ansible,同时也方便进行选项配置。

ansible主要配置分类:

# ansible.cfg的配置默认分为八段:

[defaults]:通用配置项
[inventory]:与主机清单相关的配置项
[privilege_escalation]:特权升级相关的配置项
[paramiko_connection]:使用paramiko连接的相关配置项,Paramiko在RHEL6以及更早的版本中默认使用的ssh连接方式
[ssh_connection]:使用OpenSSH连接的相关配置项,OpenSSH是Ansible在RHEL6之后默认使用的ssh连接方式
[persistent_connection]:持久连接的配置项
[accelerate]:加速模式配置项
[selinux]:selinux相关的配置项
[colors]:ansible命令输出的颜色相关的配置项
[diff]:定义是否在运行时打印diff(变更前与变更后的差异)

ansible配置文件示例:

# https://www.cnblogs.com/LuisYang/p/5960660.html
[defaults]
inventory     = /etc/ansible/hosts     # ansible inventory文件路径
library       = /usr/share/my_modules/ # ansible模块文件路径
module_utils  = /usr/share/my_module_utils/ #模块文件存放目录
remote_tmp    = ~/.ansible/tmp         # ansible远程主机脚本临时存放目录
local_tmp     = ~/.ansible/tmp         # ansible管理节点脚本临时存放目录
forks         = 5     # ansible执行并发数
poll_interval = 15    # ansible异步任务查询间隔
sudo_user     = root  # ansible sudo用户
ask_sudo_pass = True  # 运行ansible是否提示输入sudo密码
ask_pass      = True  # 运行ansible是否提示输入密码
transport     = smart # ansible远程传输模式,需要优化执行速度的时候可以修改这个参数
remote_port   = 22    # 远程主机SSH端口
module_lang   = C     # ansible模块运行默认语言环境
gathering     = smart # facts信息收集开关定义
timeout       = 10    # ansible SSH连接超时时间
remote_user   = root  # ansible远程认证用户
roles_path    = /etc/ansible/roles     # ansible role存放路径
log_path      = /var/log/ansible.log   # ansible日志记录文件
executable    = /bin/sh        # ansible命令执行shell
module_name   = command        # ansible默认执行模块
module_set_locale  = False     # 设置本地环境变量,默认false
host_key_checking  = False     # ansible第一次连接客户端是是否要检查ssh密钥
hash_behaviour     = replace   # ansible主机变量重复处理方式
fact_caching       = memory    # 定义ansible facts缓存方式
private_role_vars = yes    # 默认情况下,角色中的变量将在全局变量范围中可见, 为了防止这种情况,可以启用以下选项,只有tasks的任务和handlers得任务可以看到角色变量    yes

vault_password_file                 # 指定vault密码文件路径,默认无
ansible_managed = Ansible managed   # 定义的一个Jinja2变量,可以插入到Ansible配置模版系统生成的文件中    
display_skipped_hosts = True        # 开启显示跳过的主机
error_on_undefined_vars = False     # 开启错误,或者没有定义的变量
#action_plugins           # ansible action插件路径,默认无
#cache_plugins            # ansible cache插件路径,默认无
#callback_plugins         # ansible callback插件路径,默认无
#connection_plugins       # ansible connection插件路径,默认无
#lookup_plugins           # ansible lookup插件路径,默认无
#inventory_plugins        # ansible inventory插件路径,默认无
#vars_plugins             # ansible vars插件路径,默认无
#filter_plugins           # ansible filter插件路径,默认无
#terminal_plugins         # ansible terminal插件路径,默认无
#strategy_plugins         # ansible strategy插件路径,默认无
#fact_caching_connection  # 定义ansible facts缓存路径,默认无

## 特权升级相关的配置项
[privilege_escalation]
become          = True   # 是否开启become模式
become_method   = sudo   # 定义become方式
become_user     = root   # 定义become方式
become_ask_pass = False  # 是否定义become提示密码

## accelerate缓存加速
[accelerate]
accelerate_port            = 5099  # 加速连接端口5099
accelerate_timeout         = 30    # 命令执行超过时间,单位为s
accelerate_connect_timeout = 5.0   # 上一个活动连接的时间,单位为min
accelerate_daemon_timeout  = 30    # 允许多个私钥被加载到daemon
accelerate_multi_key       = yes   # 任何客户端想要连接daemon都要开启这个选项
原文地址:https://www.cnblogs.com/wangsl1204/p/13647000.html