一、ansible简介
Ansible:开源的运维自动化工具,可以提高运维工程师的效率,减少人为失误。操作简单,功能丰富。
二、ansible 的特点
1.基于python开发,易于二次开发
2.丰富的内置模块,基本可以满足一切要求
3.管理模式非常简单
4.无客户端模式,底层通过ssh通信,也不需要代理程序
5.可以应用在大公司环境下
6.部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作
三、ansible的架构:连接其他主机默认使用ssh协议
Ansible:Ansible核心程序。
Host Inventory:记录由Ansible管理的主机信息,包括端口、密码、ip等。
Playbooks:“剧本”YAML格式文件,多个任务定义在一个文件中,定义主机需要调用哪些模块来完成的功能。
CoreModules:核心模块,主要操作是通过调用核心模块来完成管理任务。
CustomModules:自定义模块,完成核心模块无法完成的功能,支持多种语言。
ConnectionPlugins:连接插件,Ansible和Host通信使用
ansible:大多数维护命令以ansible开头。执行结果有:红色表示执行过程异常、橘黄色代表目标有状态变化、绿色代表执行成功且没有对目标修改
四、ansible安装部署
1.环境准备
主机 | 操作系统 | ip地址 | 主要软件 |
ansible | centos7 | 192.168.10.10 | ansible |
客户机、web1 | centos7 | 192.168.10.3 | 无 |
客户机、web2 | centos7 | 192.168.10.4 | 无 |
2.服务器、客户机 修改主机名和关闭防火墙 挂载光盘
systemctl stop firewalld
setenforce 0
hostname ansible、hostname web1、hostname web2
这里的安装全都在ansible主机上操作
3. 下载ansible相关软件包 上传ansible文件到 /root目录下
ansiblerepo.rar - 蓝奏云文件大小:78.9 M|https://wwd.lanzouh.com/ifnDq0756v3i
4.配置本地yum仓库
vim /etc/yum.repos.d/benet.repo
5.使用yum安装ansible
yum -y install ansible
6.验证安装结果
ansible --version
7.创建ssh免交互登录 ansible 是基于 ssh 协议实现的,所以其配置公私钥的方式与 ssh 协议的方式相同
ssh-keygen -t rsa
8.将公钥分发给要管理的客户机
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.3
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.4
9.修改ansible的配置配置文件
vim /etc/ansible/hosts
10.ansible测试中web组中主机的联通性
ansible web -m ping
五、Ansible的主要模块
1、command模块:在远程主机执行命令,不支持管道、重定向特性
2、shell模块:与command命令相同,可以支持管道和重定向
3、copy模块:复制指定主机文件到远程主机的指定位置
4、hostname模块:管理远程主机的主机名
5、yum模块:基于yum对远程主机管理程序包
6、service模块:管理远程主机的服务
7、user模块:管理远程主机的用户账号
command模块 例如 (查看web组中客户机的root目录)
ansible web -m command -a "chdir=/root ls ./"
实现ansible免密码远程操控客户机