ansible是一款基于SSH协议的自动化运维工具,它能多线程工作,将命令推送至各个主机执行,在需要管理或部署大量服务器的时候,是不可或缺的神器。
我们来看看它的基本配置和用法:
先安装:yum install ansible -y
配置文件:/etc/ansible/ansible.cfg 这个默认配置不用动,就可以使用了。
我们来看看/etc/ansible/hosts文件
<a href="http://s3.51cto.com/wyfs02/M00/3B/A2/wKioL1O-mxKgC5VLAAMzwFu8q_A660.jpg" target="_blank"></a>
配置/etc/ansible/hosts文件,定义组,加入需要管理的主机
<a href="http://s3.51cto.com/wyfs02/M01/3B/A2/wKioL1O-ngSQgNJPAACk2M1g7jk950.jpg" target="_blank"></a>
由于要基于ssh协议,所以要生成ssh密钥,把公钥拷贝到各个主机节点上去。
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ansible命令基本用法:
ansible <host-pattern> [-f forks] [-m module_name] [-a args]
<host-pattern>:主机模式,可以用组名
[-f forks]: 指定启用的线程数,默认5个。
[-m module_name]:模块名称,默认为(command)。
-a:参数
比如我们要显示这三个主机的时间。
ansible all -a 'date'
<a href="http://s3.51cto.com/wyfs02/M02/3B/A2/wKioL1O-oMHR_K5uAAEQY9fNoKw013.jpg" target="_blank"></a>
给全部主机,添加一个cron任务,这里可以调用cron模块来实现。
ansible all -m cron -a 'name="sync time from 192.168.1.1"minute="*/3"job="/usr/sbin/ntpdate 192.168.1.1 &>/dev/null"'
<a href="http://s3.51cto.com/wyfs02/M02/3B/A3/wKiom1O-pRvTGpapAAGXpog08n0500.jpg" target="_blank"></a>
查看是否添加成功。
ansible all -a 'crontab -l'
<a href="http://s3.51cto.com/wyfs02/M00/3B/A3/wKiom1O-pbejNwS4AAIIHbF8BPk348.jpg" target="_blank"></a>
如果我们要批量安装软件,可以调用yum模块,如果不知道用法,可以man ansible.yum
给全部主机安装vsftpd。
ansible all -m yum -a'name=vsftpd state=present'
<a href="http://s3.51cto.com/wyfs02/M01/3B/A3/wKiom1O-qB3DTGI0AAKXTNIno5s451.jpg" target="_blank"></a>
再来几个例子:
1、在每个节点上创建tuchao用户
ansible all -a 'useradd tuchao'
ansible all -a 'id tuchao'
<a href="http://s3.51cto.com/wyfs02/M01/3B/A3/wKiom1O-q9jyi9y1AAJMSWw6qnY136.jpg" target="_blank"></a>
2、在每个节点创建/tmp/tuchaodir/其属主属组都为tuchao用户。
ansible all -a 'mkdir /tmp/tuchao'
ansible all -a 'chown -R tuchao.tuchao /tmp/tuchao'
<a href="http://s3.51cto.com/wyfs02/M00/3B/A4/wKiom1O_PIzB3T7WAAGX1NoaicA938.jpg" target="_blank"></a>
3、复制/etc/fstab到/tmp/tuchao.
<a href="http://s3.51cto.com/wyfs02/M00/3B/A3/wKioL1O_PN3DFQyHAAGGkb1c4EE177.jpg" target="_blank"></a>
基本用法差不多了,有问题欢迎与我交流QQ:1183710107
本文转自qw87112 51CTO博客,原文链接:http://blog.51cto.com/tchuairen/1436935