1、ansible的配置文件
/etc/ansible/ansible.cfg:这是ansible程序的核心配置文件
/etc/ansible/host:这是被管理主机的主机信息文件
/etc/ansible/roles:这是ansible的角色目录
/usr/bin/ansible:这是ansible程序的主程序
/usr/bin/ansible-doc:这是ansible的帮助文档命令
/usr/bin/ansible-playbook:这是运行ansible剧本程序

我们首先来看一下ansible的主配置文件里面都写了些什么内容
#通用默认基础配置
[defaults]
#通信主机信息目录位置
inventory = /etc/ansible/hosts
#ansible依赖库目录位置
library = /usr/share/my_modules/
#远程临时文件存储目录位置
remote_tmp = ~/.ansible/tmp
#本地临时文件存储目录位置
local_tmp = ~/.ansible/tmp
#同时与主机通信的进程数
forks = 5
#定时poll的时间
poll_interval = 15
#sudo使用的用户,默认是root
sudo_user = root
#实行sudo指令时是否需要密码
ask_sudo_pass = True
#控制Ansible playbook是否会自动默认弹出密码
ask_pass = True
#指定通信机制
remote_port = 22
module_lang = C
module_set_locale = False
2、Ansbile的相关命令语法
1)ansible
这是Ansible框架中的主程序,是使用率较高的命令之一
2)ansible-doc
这是Ansible模块的文档说明,针对每个模块都有详细的用法说明以及应用案例介绍
3)ansible-galaxy
这个命令的功能可以简单的理解成一个生态社区信息的命令,通过这个命令,我们可以了解到某个Roles的*载下**量以及关注量等信息
4)ansible-playbook
这是Ansible中使用频率最高的命令,也是Ansible成熟的核心命令,其工作机制是通过预先编写好的剧本——playbook文件,实现批量管理,要实现的功能和命令ansible是一样的,可以理解为按一定的条件组成的ansible任务集
5)ansible-pull
ansible有两种工作模式,push和pull,默认使用push工作模式,pull模式使用较少,比如管理机器没有网络,又或者想临时解决高并发的情况,但是这种模式不太友好,不过可以结合crontab定时任务配合使用
6)ansible-vault
这条命令主要用于配置文件的加密和解密
3、Ansible模块
1)shell模块
顾名思义,shell模块的作用就是在被管理的主机上执行shell解释器解析的shell脚本,几乎支持所有原生shell的各种功能,支持各种特殊符号以及管道符。
2)command模块
command模块的作用与shell类似,都是在被管主机上面执行命令。在ansible中使用shell是不安全的做法,这可能导致shell injection安全问题,但是由于command模块是不支持特殊符号和管道符的,因此有时我们不得不使用shell模块
3)copy模块
copy模块基本是对文件的操作,比如复制文件,用于复制Ansible管理端的文件到远程主机的指定位置
4)script模块
script模块用于本地脚本在被管理的远程服务器主机上面执行,大概流程是这样的,Ansible会将脚本复制到被管理主机,一般情况下是复制到远程主机的/root/.ansbible/tmp目录下,然后自动赋予可执行的权限,执行完毕后会自动将脚本删除
4、playbook
简单来说,playbook是一种简单的配置管理系统与多机器部署系统的基础,与现有的其他系统有不同之处,且非常适合复杂应用的部署。
playbook可用于声明配置,更强大的地方是在playbook中可以编排有序的执行过程,甚至能够做到在多组机器之间,来回有序的执行特别指定的步骤,并且可以同步或异步的发起任务。同时,playbook具有很多特性,它允许你将某个命令的状态传输到后面的命令中,比如你可以从一台机器的文件中抓取内容并设为变量,然后再另一台机器中使用。