一、简介
Ansible的默认配置文件是/etc/ansible/ansible.cfg,如果ansible的工作目录里没有ansible.cfg那么默认使用全局的配置文件,如果有的话使用工作目录里的配置文件,这一点和inventory类似。
如果存在多个配置文件,那么可能会搞错,不知道用的是哪个怎么办,ansible为我们提供了一个查询命令:
|
[root@master ~]# ansible --version |
|
ansible 2.9.18 |
|
config file = /etc/ansible/ansible.cfg |
|
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] |
|
ansible python module location = /usr/lib/python2.7/site-packages/ansible |
|
executable location = /usr/bin/ansible |
|
python version = 2.7.5 (default, Jun 20 2019, 20:27:34) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] |
上面的输出使用的是全局的默认配置文件,因为当前目录不包含ansible.cfg文件,如果有这个文件输出内容就会是下面这个样子:
|
[root@master ~]# cd ansible/ |
|
[root@master ansible]# ls |
|
ansible.cfg copy_repo.yml inventory pushsshkey.yaml remove_k8s.yaml update_kernel.yml update_vim8.yml yum_install_etcd_3.yml |
|
[root@master ansible]# ansible --version |
|
ansible 2.9.18 |
|
config file = /root/ansible/ansible.cfg |
|
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] |
|
ansible python module location = /usr/lib/python2.7/site-packages/ansible |
|
executable location = /usr/bin/ansible |
|
python version = 2.7.5 (default, Jun 20 2019, 20:27:34) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] |
除了ansible --version还有一个命令可以显示配置文件的信息,在执行命令的的时候加上 -v选项,如下:
|
[root@master ansible]# ansible k8s_nodes --list-hosts -v |
|
Using /root/ansible/ansible.cfg as config file |
|
hosts (3): |
|
node1 |
|
node2 |
|
node3 |
二、管理ansible.cfg配置文件的设置
Ansible的配置文件由几个部分组成,每一个部分包含以键值对形式定义的设置,标题以方括号括起。看一下默认配置文件的几个部分:
1. defaults
|
[defaults] |
|
|
|
#inventory = /etc/ansible/hosts //定义Inventory |
|
#library = /usr/share/my_modules/ //自定义lib库存放目录 |
|
#remote_tmp = ~/.ansible/tmp //零时文件远程主机存放目录 |
|
#local_tmp = ~/.ansible/tmp //零时文件本地存放目录 |
|
#forks = 5 //默认开启的并发数 |
|
#poll_interval = 15 //默认轮询时间间隔 |
|
#sudo_user = root //默认sudo用户 |
|
#ask_sudo_pass = True //是否需要sudo密码 |
|
#ask_pass = True //是否需要密码 |
|
#host_key_checking = False //首次连接是否检查key认证 |
|
#roles_path = /etc/ansible/roles //默认下载的Roles存放的目录 |
|
#log_path = /var/log/ansible.log //执行日志存放目录 |
|
#module_name = command //默认执行的模块 |
|
#action_plugins = /usr/share/ansible/plugins/action //action插件存放目录 |
|
#callback_plugins = /usr/share/ansible/plugins/callback //callback插件存放目录 |
|
#connection_plugins = /usr/share/ansible/plugins/connection //connection插件存放目录 |
|
#lookup_plugins = /usr/share/ansible/plugins/lookup //lookup插件存放目录 |
|
#vars_plugins = /usr/share/ansible/plugins/vars //vars插件存放目录 |
|
#filter_plugins = /usr/share/ansible/plugins/filter //filter插件存放目录 |
|
#test_plugins = /usr/share/ansible/plugins/test //test插件存放目录 |
|
#strategy_plugins = /usr/share/ansible/plugins/strategy //strategy插件存放目录 |
|
#fact_caching = memory //getfact缓存的主机信息存放方式 |
|
#retry_files_enabled = False |
|
#retry_files_save_path = ~/.ansible-retry //错误重启文件存放目录 |
2. privilege_escalation
|
[privilege_escalation] |
|
|
|
#become_method=sudo //sudo方式 |
|
#become_user=root //sudo后变为root用户 |
|
#become_ask_pass=False //sudo后是否验证密码 |
3. paramiko_connection
|
[paramiko_connection] |
|
#record_host_keys=False //不记录新主机的key以提升效率 |
|
|
4. ssh_connection
|
[ssh_connection] |
|
|
5. selinux
|
[ ] |
|
|
6. colors
|
[ ] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
三、ansible工作目录里常用的配置文件
这里简单说一下2个部分的配置,[defaults]和[privilege_escalation],示例如下:
|
[defaults] |
|
inventory = ./inventory |
|
remote_user = root |
|
ask_pass = false |
|
[privilege_escalation] |
|
become=True |
|
become_method=sudo |
|
become_user=root |
|
become_ask_pass=False |
inventory
指定清单文件的路径
remote_user
要在受管主机上登录的用户名,如果未指定使用当前用户
ask_pass
是否提示输入SSH密码,如果使用ssh公钥身份验证,则可以是false
become
表示连接后是否在受管主机上切换用户(通常切换为root)
become_method
如何切换用户,sudo 或者 su
become_user
要在受管主机上要切换成为的用户,通常是root,也是默认值
become_ask_pass
是否需要为become_method提示输入密码,默认false
出处:https://www.cnblogs.com/mfyang/p/15137991.html