ansible自动化工具只需要在一台机器上安装,其他机器不需要安装任何东西,这就是ansible比puppet, saltstck方便的地方。ansible的特点有哪些呢?下面为你逐个介绍:
(1)、轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;
(2)、批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
(3)、使用python编写,维护更简单;
(4)、基于SSH工作;
(5)、支持文件同步并且对修改之前的文件进行备份,支持回滚;
官方原文档: https://docs.ansible.com/ansible/index.html
中文翻译版:http://www.ansible.com.cn/index.html
简单示例
1 | vi /etc/ansible/hosts |
主机或组规则
目录 /etc/ansible/hosts
1 | # Ex 1: 未分组的主机. |
分离主机与组的特定数据,Ansible支持将/etc/ansible/hosts定义的主机名与变量单独剥离出来放到指定存放文件中,以YAML格式保存
1 | /etc/ansible/group_vars/ |
模块应用
远程命令模块
1 | ansible dbserver -m command -a "ls /" |
复制模块
1 | ansible dbserver -m copy -a "src=/1.txt dest=/data/ owner=root group=root mode=777" |
查看文件状态模块
1 | ansible dbserver -m stat -a "path=/data/1.txt" |
URL下载模块
1 | ansible dbserver -m get_url -a "url=http://letong.me dest=/data/ mode=777 force=yes" |
yum模块
1 | ansible dbserver -m yum -a "name=git state=latest" |
service模块
1 | ansible dbserver -m service -a "name=httpd state=restarted" |
user模块
1 | ansible dbserver -m user -a "name=letong comment='Hello letong' " |
mount模块
1 | ansible dbserver -m mount -a "name=/data src=/dev/sdb1 fstype=ext4 opts=ro state=present" |
cron模块
1 | ansible ts -m cron -a "name='ls dir' hour='5,2' job='ls -l'" |