ansible实验环境
ansible-001控制4台终端,后续会在终端上发布不同的服务。
ansible配置文件介绍
ansible –version 查看ansible版本信息
ansible 2.9.18 显示当前版本为2.9.18
config file 配置文件路径
configured module search path 插件模块路径
ansible python module location python模块路径
ansible.cfg优先级介绍
ansible.cfg这个配置文件是有优先级别的,在配置文件的大约1-8行说明了优先级别,这里概括如下。这里是以/data目录作为演示。
/data/ansible.cfg > ~/ansible.cfg > /etc/ansible/ansible.cfg
在当前目录建立的ansible.cfg优先级是最高的,其次是在家目录,如果前面两个目录都没有ansible.cfg文件的话,默认会读取/etc/ansible中的ansible.cfg文件。
ansible.cfg默认配置介绍
由于参数过多,这里一些常用的[defaults]参数。大约在10-28行
inventory 主机清单,定义了被控端的配置。
library 定义了模块文件里京
remote_tmp 远程主机脚本临时存放目录
local_tmp ansible控制端脚本临时存放目录
forks ansible执行命令并发数
poll_interval 异步任务查询间隔
sudo_user ansible sudo用户
ask_sudo_user 是否提示输入sudu密码
ask_pass 是否输入密码
remote_port 被控端SSH端口
module_lang ansible默认执行模块
ansible inventory
inventory是管理被控端主机信息的文件,默认路径在/etc/ansible/hosts。这个文件也可以单独被定义到某个路径,执行命令是只需要加-i来指定这个文件即可。
在inventory配置文件中已经阐述多种添加主机的方法,大约在1-43行。
这里推荐一个在大部分生产环境中使用的方法,也是我认为最简单的方法。
首先我们在hosts文件中定义好组和被控端
然后我们关闭第一次登录被控端的key验证。(只需要开启ansible.cfg配置文件中的host_key_checking = False)就可以关闭key验证了。
然后把控制端的公钥依次传到被控端的主机上
[root@ansible-01 .ssh]# ssh-keygen -N ""
[root@ansible-01 .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.50.71
[root@ansible-01 .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.50.72
[root@ansible-01 .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.50.73
[root@ansible-01 .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.50.74
然后我们用ansible的ping模块检查主机是否连通
[root@ansible-01 .ssh]# ansible test -m ping
192.168.50.71 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
192.168.50.74 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
192.168.50.72 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
192.168.50.73 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
-
相关连接
官方文档:https://docs.ansible.com/ansible介绍及架构原理:https://www.wenjiangun.com/blog/1156/