Ansible配置文件讲解
前言
Ansible有很多重要相关文件,如主机与组的列表文件、主配置文件、变量文件、分类目录等等。这章中主要介绍Ansible的主配置文件(ansible.cfg)。ansible.cfg文件默认在/etc/ansible目录下,但是这并不是唯一解析路径;ansible有默认解析顺序,跟linux的加载环境变量文件类似,下面介绍一下ansible配置文件加载顺序(这个是官方定义好的,不需要想着怎么去改这个顺序,才开始学习的时候我还考虑过这个问题)。
加载顺序
Ansible读取配置文件的顺序如下:
- 当前执行的上下文目录($PWD)
- 用户家目录($HOME)下的".ansible.cfg"
- /etc/ansible/ansible.cfg
从上至下,先找到哪个文件就用哪个文件。
内容讲解
ansible.cfg中的内容大部分均可通过命令行参数或者Playbook文件中进行定义。配置的内容大概490行(仅针对2.9.3版本,其他版本别来比较。。。杠精),该文件遵循INI格式,内容基本配置如下:
sh-4.2# awk '$0 ~ /^\[/{print $0}' ansible.cfg [defaults] [inventory] [privilege_escalation] [paramiko_connection] [ssh_connection] [persistent_connection] [accelerate] [selinux] [colors] [diff]
配置讲解:
- [defaults]:定义常规默认的配置,如:定义文件路径、设置并发连接数、设置sudo用户、是否开启sudo功能等等
- [inventory]:设置插件及可忽略的文件格式(没几个参数,个人感觉用的地方不多)
- [privilege_escalation]:用户权限类的设定,如:sudo、是否启用sudo密码
- [paramiko_connection]:不记录遇到的新主机密钥、增加新主机的性能。(用的地方不多)
- [ssh_connection]:对SSH连接的一些配置,配置项比较少
- [persistent_connection]:主要就两个选项,连接超时、命令超时
- [accelerate]:连接加速的相关配置
- [selinux]:selinux相关配置,基本不会涉及
- [colors]:设置输出颜色,最好默认
- [diff]:输出打印是是否打印diff
心若向阳,无谓悲伤!