ansible 自动化运维工具,可以实现批量管理多台(成百上千)主机,应用级别的跨主机编排工具
特性: 无agent的存在,不要在被控制节点上安装客户端应用
通过ssh协议与被控制节点通信
基于模块工作的,通过模块可以实现在被控制节点上执行命令操作
很多模块具有幂等性,可实现多次操作的状态如果没有发生变化,则不会重复执行
(一)ansible 环境安装部署
先关闭防火墙
systemctl stop firewalld
setenforce 0
把本地源换成在线源
管理端 192.168.86.30 ansible
被管理端:192.168.86.40
被管理端:192.168.86.50
//管理端安装ansible
yum install -y epel-release //先安装 epel 源
yum -y install ansible
ansible --version 查看当前的版本号
rpm -qc ansible 查看他的目录在哪里
进行免密交互
ssh-keygen -t rsa 进行免密交互
vim /etc/ssh/ssh_config 在修改配置文件不需要密码
在安装个工具 yum -y install -y sshpass
sshpass -p '123' ssh-copy-id root@192.168.86.40
sshpass -p '123456' ssh-copy-id root@192.168.86.50
sshpass -p '123456' ssh-copy-id root@192.168.86.60
(二)ansible 命令行模块
命令格式:ansible <组名> -m <模块> -a <参数列表>
ansible-doc -l #列出所有已安装的模块,安q退出
ansible-doc -s 模块 显示模块可以支持的参数
vim hosts
这是分组的意思
也可以自定义组名
ansible all -m command -a 'hostnamectl' all 全部的意思
1. command 模块
ansible lcy -m command -a ' removes=/opt/lcy.txt rm -rf /opt/lcy.txt ' removes
2。shell 模块 可以支持管道符
3. cron 模块
ansible lcy -m cron -a 'minute="30" hour="0" weekday="2,5" job="usr/bin/cp -f /var/log/messages /opt" name="lcywoaini" '
添加
ansible lcy -m cron -a 'name="lcywoaini" state=absent ' 移除
4 .user 模块
ansible lcy -m user -a ' name="test01" ' 创建用户
ansible lcy -m user -a ' name="test01" state=absent' 删除用户
5.group 模块
6.copy 模块
ansible lcy -m copy -a 'src=/opt/456.txt dest=/opt/lili.txt mode=777'