环境介绍
当前所有执行权限我是在root下执行的,如果提示权限之类的,可以在每句命令前 加上 sudo
ansible主服务器 192.168.0.194
另外两个客户端分别为 192.168.0.193 192.168.0.192
软件只需要在主服务器上安装,客户端不需要去安装软件,因为他们相互使用的是ssh
只需要在主服务器上安装好软件,然后生成一个密钥发送至客户端,实现,主服务器免密ssh连接客户机即可
安装ansible
在主服务器上进行软件安装
rm -rf /etc/yum.repos.d/*
删除所有yum仓库(如果你原来有重要yum仓库记得备份)
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
安装阿里云yum仓库镜像
yum clean all && yum makecache
清除以前缓存 &&更 新缓存
yum -y install epel-release
yum -y install ansible
主服务器生成密钥ssh免密登录客户机
在主服务器上
ssh-keygen -t rsa
输入完命令一直回车即可
ssh-copy-id 用户@ip地址
传输密钥,传输完以后可以进行免密ssh连接
ssh-copy-id root@192.168.0.193
输入完命令以后,yes,输入密码就可以了
如果有另外的客户端,也执行同样操作,全测试可以免密ssh登录即可
ssh-copy-id root@192.168.0.192
只要ssh登录时候不用密码就是成功了
主机列表 /etc/ansible/hosts
主机列表可以写一个组,组名下面写ip或者主机名,就是这个组的成员,控制这个组,或控制单个都是可以的
vim /etc/ansible/hosts
进去以后可以单起一行,前面没有的#才行
格式为
[组名]
主机ip或主机名
……
web就是组名
下面的就是ip,当我们对web进行操作,两个主机就会回馈
此外还可以这样写……
[web] ## 主机组
192.168.10.2
192.168.10.3[test01]
www.bdqn.cn:222 ##通过端口222管理设备[mail]
ly01.mail.cn[ly]
ly[2:5].test.com ##正则表达式:表示4台主机ly2,ly3,ly4,ly5..
基础操作
ansible web -m command -a "firewall-cmd --state"
查看web组的主机有没有开防火墙
ansible web -m command -a "systemctl stop firewalld" --limit "192.168.0.193"
对web组的192.168.0.193执行关闭防火墙操作
可以指定ip去执行
ansible 192.168.0.192 -m command -a "ip a"
通过通配符来指定多个主机远程操作(可以理解为一个网段)
ansible 192.168.0.* -m command -a "firewall-cmd --state"