1、介绍:
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible架构相对比较简单,仅需通过SSH连接客户机执行任务即可。
2、安装:
# 依赖于epel仓库
yum install -y epel-release
# 安装ansible
yum install -y ansible
# 查看是否已经安装ansible
rpm -qa | grep ansible
# 查看ansible版本信息
ansible --version
3、相关概念:
任务模块:如template模块、file模块、user模块、shell模块、copy模块等等;
task:任务,ansible play中的工作单元,一个task指定一个任务模块和其相关参数;
host inventory:主机清单,指定操作的主机,是一个配置文件里面定义控制的节点信息;
play:将一系列主机与需要在主机上运行的任务列表相关联;
playbook:剧本,指定一系列的play;
4、常用模块:
a、shell模块
在远程机器上执行复杂的命令
b、template模块
参数 | 解释 |
backup | 拷贝的同时也创建一个包含时间戳信息的备份文件 |
dest | 目标路径 |
force | 设置为yes时,将覆盖远程同名文件;设置为no时,忽略同名文件的拷贝 |
group | 设置远程文件的所属组 |
owner | 设置远程文件的所有者 |
mode | 设置远程文件的权限,如0644、0755 |
src | 控制节点上的jinja2格式的模板所在的位置 |
validate | 复制到目标节点后但放到目标位置之前,执行此选项指定的命令,一般是用于检查配置文件的语法,语法正确才保存到目标位置 |