一、ansible——自动化运维工具
1、Ansible 自动运维工具特点
Ansible 与 Saltstack 均是基于 Python 语言开发,Ansible 只需要在一台普通的服务器上运行即可,不需要在客户端服务器上安装客户端。因为 Ansible 是基于 SSH 远程管理,而Linux服务器大都离不开SSH,所以Ansible不需要为配置工作添加额外的支持。
Ansible 安装使用非常简单,而且基于上千个插件和模块实现各种软件、平台、版本的管理,支持虚拟容器多层级的部署。很多读者在使用 Ansible 工具时,认为 Ansible比 Saltstatck 执行效率慢,其实不是软件本身慢,是由于 SSH 服务慢,可以优化 SSH 连接速度及使用 Ansible 加速模块,满足企业上万台服务器的维护和管理。
2、Ansible 运维工具原理
Ansible分为控制端和被控端,主要是基于SSH协议去管理客户端,被控端是无需安装Agent插件的,Ansible会读取控制端hosts文件,根据文件中定义IP列表信息,调取本地的各个模块对被控端机器实现批量、并发的配置管理和维护,如果任务比较复杂可以写成PlayBook剧本进行分发管理;
Ansible 自动运维管理工具优点:
❑ 轻量级,更新时,只需要在操作机上进行一次更新即可;
❑ 采用 SSH 协议;
❑ 不需要去客户端安装 agent;
❑ 批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
❑ 使用 python 编写的,维护更简单;
❑ 支持 sudo 普通用户命令;
❑ 去中心化管理。
注意事项:
- 执行ansible的主机一般称为主控端,中控,master或堡垒机
- 主控端Python版本需要2.6或以上
- 被控端Python版本小于2.4,需要安装python-simplejson
- 被控端如开启SELinux需要安装libselinux-python
- windows 不能做为主控端
二、安装ansible
1、先安装epel源
#192.168.184.10
hostname ansible
su -
#192.168.184.20
hostname webserver
su -
#192.168.184.30
hostname mysql
su -
systemctl stop firewalld
setenforce 0
三、ansible命令模块
1、command模块
2、cron模块
3、user模块
4、group模块
5、copy模块
6、file模块
7、ping模块
8、service模块
9、shell模块
10、script模块
11、yum模块
12、setup模块