配置Ansible
通过修改Ansible配置文件中的设置来自定义Ansible安装的行为
Ansible会从控制节点上多个可能的位置选择配置文件
默认位置 /etc/ansible/ansible/cfg
位于/etc/ansible/ansible.cfg
如果没有配置其他的会默认使用这个位置的文件
备用位置 ~/.ansible.cfg
位于主目录中 查找.ansible.cfg文件,在当前目录没有ansible.cfg文件并且存在该配合着文件时生效,该文件会取代默认位置的配置文件
当前目录位置 ./ansible.cfg
如果在执行ansible命令的目录中存在ansible.cfg文件,则会使用当前目录中的配置文件
推荐使用第三种方式
配置文件的优先级
当前目录>备用位置>默认位置
查看正在使用的配置文件
1.可以使用 ansible --version来查看ansible的版本并且查看正在使用中的配置文件
![](https://i-blog.csdnimg.cn/blog_migrate/9b3abcb58904e5dae004552ceca4539d.png)
2.在使用ansible命令的时候 加上 -v
ansible servers --list-hosts-v
![](https://i-blog.csdnimg.cn/blog_migrate/8834e1c8896924a2fd0b3b5e5fea084e.png)
管理配置文件中的设置
在配置文件的过程中的指令
可以创建[defaults]来设置ansible操作的默认值
可以在[privilege_escalation]中配置ansible如何在主机上执行特权升级
等等例子
![](https://i-blog.csdnimg.cn/blog_migrate/f20e789d98b6fc3bf9b1dd05db5daf3b.png)
写一个简单的例子
vim ansible.cfg
[defaults]
inventory= ./inventory
remote_user=user
ask_pass=false
[privilege_escalation]
become=true
become_method=sudo
become_ask_pass=false
注释
在配置文件中可以使用#或者 ;来进行注释
位于开头的注释符号会注释整行,不能和指令位于同一行中
;字符可以注释掉所在行中其右侧的所有内容,若指令在其左边则可位于同一行
实验:管理Ansible配置文件
![](https://i-blog.csdnimg.cn/blog_migrate/1805105a29c73d4174e28ff80425db47.png)
开始 lab deploy-manage start
1.创建目录
mkdir ~/deploy-manage
cd ~/deploy-manage
2.编写配置文件
vim ansible.cfg
[defaults]
inventory= ./inventory
3.继续编辑其他的组
[myself]
localhost
[intranetweb]
[intranetweb]
[web:children]#代表是一个包含其他组的组
intranetweb
intranetweb
4.查看主机配置
ansible 各位主机组 --list-hosts
5.特权升级部分
[privilege_escalation]
become=true | #进行特权升级 |
become_method=sudo | 特权升级指令为sudo |
become_user=root | 特权升级用户至root |
become_ask_pass=true | 特权升级时需要输入密码 |
6.再次运行ansible --list-hosts命令看看是否需要密码
ansible intranetweb --list-hosts
输入密码
完成实验 lab deploy-manage finish