ansible概述及各模块应用
ansible概述
ansible特点
Ansible 与 Saltstack 均是基于 Python 语言开发,Ansible 只需要在一台普通的服务器上运行即可,不需要在客户端服务器上安装客户端。因为 Ansible 是基于 SSH 远程管理,而Linux服务器大都离不开SSH,所以Ansible不需要为配置工作添加额外的支持。
Ansible 安装使用非常简单,而且基于上千个插件和模块实现各种软件、平台、版本的管理,支持虚拟容器多层级的部署。很多读者在使用 Ansible 工具时,认为 Ansible比 Saltstatck 执行效率慢,其实不是软件本身慢,是由于 SSH 服务慢,可以优化 SSH 连接速度及使用 Ansible 加速模块,满足企业上万台服务器的维护和管理
ansible工作原理
Ansible分为控制端和被控端,主要是基于SSH协议去管理客户端,被控端是无需安装Agent插件的,Ansible会读取控制端hosts文件,根据文件中定义IP列表信息,调取本地的各个模块对被控端机器实现批量、并发的配置管理和维护,如果任务比较复杂可以写成PlayBook剧本进行分发管理
ansible工具优点
- 轻量级,更新时,只需要在操作机上进行一次更新即可
- 采用 SSH 协议
- 不需要去客户端安装 agent
- 批量任务执行可以写成脚本,而且不用分发到远程就可以执行
- 使用 python 编写的,维护更简单
- 支持 sudo 普通用户命令
- 去中心化管理
ansible环境部署
管理端:192.168.1.11
被管理端:192.168.1.22
被管理端:192.168.1.33
- 在管理端(192.168.1.11)安装ansible
关闭防火墙
systemctl stop firewalld
setenforce 0
------------------------------
安装epel扩展源
yum -y install epel-release //安装epel源
yum -y install ansible
#树型查询工具
yum -y install tree
tree /etc/ansible
- 配置主机清单
vim /etc/ansible/hosts
#配置主机清单
[webservers]
192.168.1.22
[dbservers]
192.168.1.33
- 配置密钥对
ssh-keygen -t rsa #一路回车,使用免密登录
sshpass -p '000000' ssh-copy-id root@192.168.1.22
sshpass -p '000000' ssh-copy-id root@192.168.1.33
ansible命令模块
command模块
命令格式:ansible