1 ansible优点

Ansible优点:
1)轻量级,不需要去客户端安装agent,更新时,只需要在操作机上进行一次更新即可,采用SSH协议。        
2)批量任务执行可以写成脚本,而且不用分发到远程就可以执行。       
3)使用python编写的,维护更简单。       
4)支持sudo普通用户命令。

2 ansible工作结构图

ansible_第1张图片

3 安装(系统:centos7.2)

CentOS直接使用yum安装即可,安装之前先安装epel源码
[root@57135test .ssh]# rpm -Uvh http://mirrors.ustc.edu.cn/epel/epel-release-latest-7.noarch.rpm
然后yum安装即可
[root@57135test .ssh]# yum -y install ansible 
遇到的问题:开始yum安装ansible失败,貌似是python原因,后重装python,yum clean all 后安装成功

安装完后正式来使用,ansible默认配置文件路径为:

/etc/ansible

[root@57135test ansible]# pwd
/etc/ansible
[root@57135test ansible]# ls
ansible.cfg  hosts  roles

4 使用

a 查询
[root@57135test ansible]# ansible -i /etc/ansible/hosts all -a "date"
192.168.57.131 | SUCCESS | rc=0 >>
2017年 02月 18日 星期六 12:41:27 EST

192.168.57.132 | SUCCESS | rc=0 >>
2017年 02月 18日 星期六 12:41:27 EST
ansible主要参数如下:
-u username          指定ssh连接的用户名,即执行后面命令的用户
-i inventory_file    指定所使用的inventory文件的位置,默认为/etc/ansible/hosts
-m module     指定使用的模块,默认为command,常见模块有command、shell、script、yum、copy等等
-f 10               指定并发数,并发量大的时候,提高该值
--sudo [-k]       当需要root权限执行的化,-k参数用来输入root密码。
-a            指定模块的参数,可以是命令等等。
b 查询
[root@57135test ansible]# ansible 192.168.57.* -m command -a "df -h"
192.168.57.131 | SUCCESS | rc=0 >>
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   18G  3.3G   15G   19% /
devtmpfs                 479M     0  479M    0% /dev
tmpfs                    489M     0  489M    0% /dev/shm
tmpfs                    489M  6.8M  483M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/sda1                497M  125M  373M   25% /boot
tmpfs                     98M     0   98M    0% /run/user/0

192.168.57.132 | SUCCESS | rc=0 >>
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   18G  4.0G   14G   23% /
devtmpfs                 479M     0  479M    0% /dev
tmpfs                    489M     0  489M    0% /dev/shm
tmpfs                    489M  6.7M  483M    2% /run
tmpfs                    489M     0  489M    0% /sys/fs/cgroup
/dev/sda1                497M  125M  373M   25% /boot
tmpfs                     98M     0   98M    0% /run/user/0
c 远程批量拷贝文件或者目录
[root@57135test ansible]# ansible all -m copy -a 'src=/etc/ansible/hosts dest=/root mode=755 owner=root'
192.168.57.131 | SUCCESS => {
    "changed": true, 
    "checksum": "f1da8e42d7ead3a118d6a98bd71b3281e9b00b16", 
    "dest": "/root/hosts", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "80e9491b34936cb2931a9edd94249561", 
    "mode": "0755", 
    "owner": "root", 
    "secontext": "system_u:object_r:admin_home_t:s0", 
    "size": 30, 
    "src": "/root/.ansible/tmp/ansible-tmp-1486590352.88-86119644734743/source", 
    "state": "file", 
    "uid": 0
}
192.168.57.132 | SUCCESS => {
    "changed": true, 
    "checksum": "f1da8e42d7ead3a118d6a98bd71b3281e9b00b16", 
    "dest": "/root/hosts", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "80e9491b34936cb2931a9edd94249561", 
    "mode": "0755", 
    "owner": "root", 
    "secontext": "system_u:object_r:admin_home_t:s0", 
    "size": 30, 
    "src": "/root/.ansible/tmp/ansible-tmp-1486590352.91-35991786700841/source", 
    "state": "file", 
    "uid": 0
}
d  yum远程安装
[root@57135test yum.repos.d]# ansible  192.168.*  -m  yum -a  "name=sysstat,screen,ntpdate   state=installed"