mage Ansible学习3 ansible role实例
一、ansible配置文件解析
1、/etc/ansible/ansible.cfg配置文件详解
[root@node3 ~]# cat /etc/ansible/ansible.cfg |grep -Ev "^#|^$" [defaults] #默认配置,对所有应用程序都生效 roles_path = /etc/ansible/roles:/usr/share/ansible/roles [inventory] [privilege_escalation] #默认登陆时使用的普通用户,当需要做一些管理配置时就需要将其转换成另外一个拥有特权的管理用户 [paramiko_connection] #python应用程序使用指定库连接各目标主机时使用的选项 [ssh_connection] [persistent_connection] [accelerate] [selinux] [colors] #显示的颜色 [diff]
2、那么ansible所用的操作什么时候才会被执行呢?在ansible主机上由管理员手动执行ansible playbook,这样所有的被管控的主机才能测试其是否处于目标状态,如果没有处于目标状态则强制其处于目标状态,如果说我们的目标主机不幸被别人手动修改了怎么办呢?比如有人一不小心给其程序包卸载了,服务停止了,配置文件删除了等,此时我们就只有重新执行一遍我们的playbook才能确保其生效,那么什么时候重新执行呢?
a、如果有必要的话可以把ansible的 playbook定义成计划任务,每隔半小时执行一次,所以目标主机即便是不行的被别人有意或无意的修改了 ansible的playbook的自动执行都能确保他们处于目标状态。
b、但是如果我们客户端主机之上期望自己来检查ansible playbook中所定义的角色和自己相关的配置是否匹配又该怎么办呢?在我们ansible2.0后的功能是支持刚刚所说的功能的。在每一个被管控主机端只需要安装上ansible,有一个命令叫ansible-pull,他能够连接至ansible服务器获取与自己相关的配置内容并应用于本地。
c、ansible-vcs:我们使用ansible-vcs的方式可以实现ansible的pull机制,那么他是什么呢?你可以理解为他就是ansible对应的各playbook通过某个套接字提供服务的某个配置。对应文件为https://github.com/andrewrothstein/ansible-vcs/blob/master/tasks/main.yml,如果真的用到这个模型的时候应该是用salt或puppet好。