ansible是一款基于SSH协议的自动化运维工具,它能多线程工作,将命令推送至各个主机执行,在需要管理或部署大量服务器的时候,是不可或缺的神器。
ansible有很多的模块每个模块详细用法见官网:
我们来看看它的基本配置和用法:
先安装:yum install ansible -y
配置文件:/etc/ansible/ansible.cfg 这个默认配置不用动,就可以使用了。
我们来看看/etc/ansible/hosts文件
配置/etc/ansible/hosts文件,定义组,加入需要管理的主机
由于要基于ssh协议,所以要生成ssh密钥,把公钥拷贝到各个主机节点上去。
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.18.111
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.18.200
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.18.201
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'
给全部主机,添加一个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"'
查看是否添加成功。
ansible all -a 'crontab -l'
如果我们要批量安装软件,可以调用yum模块,如果不知道用法,可以man ansible.yum
给全部主机安装vsftpd。
ansible all -m yum -a'name=vsftpd state=present'
再来几个例子:
1、在每个节点上创建tuchao用户
ansible all -a 'useradd tuchao'
ansible all -a 'id tuchao'
2、在每个节点创建/tmp/tuchaodir/其属主属组都为tuchao用户。
ansible all -a 'mkdir /tmp/tuchao'
ansible all -a 'chown -R tuchao.tuchao /tmp/tuchao'
3、复制/etc/fstab到/tmp/tuchao.
基本用法差不多了,有问题欢迎与我交流QQ:1183710107