Ansible配置文件(ansible.cfg文件)

时间:2020-01-09 10:34:02  来源:igfitidea点击:

Ansible配置文件使用INI格式存储其配置数据。在Ansible中,我们可以通过Ansible playbook选项或者环境变量覆盖几乎所有的配置设置。

运行Ansible命令时,该命令将按"预定义顺序"查找其配置文件,如下所示:

  • ANSIBLE_CFG:如果设置了此环境变量,则使用它

  • ansible.cfg文件:This位于当前目录中

  • ~/.ansible.cfg文件:这位于用户的主目录中

  • /etc/ansible.cfg文件

默认的ansible配置文件在/etc/ansible

[ansible@controller ~]$ tree /etc/ansible/
/etc/ansible/
├── ansible.cfg
├── hosts
└── roles

在本节中,我们将介绍一些选项和参数,它们是ansible.cfg文件配置文件

[默认值]部分

Ansible的配置文件分为几个部分。我们将集中讨论的主要部分是[defaults]常规部分。

inventory

  • 这指向包含托管节点的主机名或者IP地址详细信息的列表文件的路径。

  • 在大多数系统上,它指向"/etc/ansible/hosts",如下所示:

inventory = /etc/ansible/hosts

角色\路径

这包含默认角色目录的路径,Ansible playbook应其中查找其他角色:

roles_path = /etc/ansible/roles

日志\路径

  • 这定义了Ansible应该存储其日志的日志文件。

  • 日志文件和路径必须具有足够的权限,运行Ansible的用户才能执行读写操作。

示例如下:

log_path = /var/log/ansible.log

重试文件已启用

  • 这是一个启用重试功能的参数,允许Ansible在playbook失败时创建.retry文件。

  • 除非你真的需要,否则最好保持这个功能不可用。

  • 这是因为它会创建多个文件并用Ansible日志和仪表板的playbook执行状态部分中已记录的旧失败任务阻塞playbook文件夹。

以下是禁用参数的示例:

retry_files_enabled = False

主机密钥检查

  • 为各个受管节点分配主机密钥。

  • 现在,客户机节点可能被多次重新安装,这会导致Ansible在启动连接时抛出警告。

  • 禁用此参数将使Ansible忽略与已知\ \u主机密钥相关的错误消息:

host_key_checking = False

forks

  • 这是一个参数,用于定义对客户端主机执行的并行任务数。

  • 默认数字为5,以节省资源和网络带宽。

  • 如果有足够的资源和较大的带宽为多个主机提供服务,则可以将其提升到最大主机数,如下所示:

forks = 5

sudo_user和ask_sudo_pass

  • 这两个都是遗留参数。

  • 在当前版本的Ansible中仍然可以使用它们,但它们并不可靠。

  • 建议在Ansible的库存中创建组时设置这些参数

sudo_user = install
ask_sudo_pass = True

远程端口

  • 这是一个参数,用于指示SSH将在客户端主机上使用哪个端口,在大多数情况下,默认情况下是22.

  • 它也是一个参数,最好在库存组中设置:

remote_port = 22

无颜色

  • 这是一个可选参数。

  • 它允许我们为Ansible任务和playbook显示不同的颜色,以指示错误和成功。

  • 如果不需要颜色,可以设置为1,或者导出"ANSIBLE_NOCOLOR=1"`

nocolor = 0

[ssh_connection]部分

以下参数与主机"[SSH_connection]"的SSH连接有关。

pipelining

  • 此参数启用了减少执行模块所需的SSH操作数的功能。

  • 这是通过在没有实际文件传输的情况下执行Ansible模块实现的,可以极大地提高Ansible的性能。

  • 它要求在所有托管主机的/etc/sudoers中禁用require tty。

其使用示例如下:

pipelining = True

scp\ if\ ssh和transfer\方法

  • "scp_if_ssh"和"transfer_method"参数都负责主节点和客户端主机之间的文件传输。

  • 选择smart值允许Ansible在SFTP和SCP之间进行选择,以便在传输文件时选择最合适的协议:

scp_if_ssh = smart
transfer_method = smart

[持久连接]部分

以下两个示例与SSH连接的持久性相关,[persistent_connection]。我们只讨论连接的超时和失败连接的重试。SSH超时可以通过编辑这两个参数的值来设置,首先:

connect_timeout = 30

其次:

connect_retry_timeout = 15

[颜色]部分

最后,让我们看看[colors]颜色选择。启用"[默认]"部分中的颜色功能时,此部分将被激活。它允许我们为各种输出状态选择不同的颜色。

[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