ansible简介&安装
# ansible简介&安装
# 1. ansible简介
Ansible是近年越来越火的一款运维自动化工具,其主要功能是帮忙运维实现IT工作的自动化、降低人为操作失误、提高业务自动化率、提升运维工作效率,常用于软件部署自动化、配置自动化、管理自动化、系统化系统任务、持续集成、零宕机平滑升级等。它丰富的内置模块(如acl、command、shell、cron、yum、copy、file、user等,多达7214个) 和开放的API接口 ,同时任何遵循GPL协议的企业或个人都可以随意修改和发布自己的版本。
# 1.1 优势
- Ansible完全基于Python开发,而DevOps在国内已然是一种趋势,Python被逐步普及,运维人员自己开发工具的门槛逐步降低,得益于此,方便对Ansible二次开发。
- Ansible丰富的内置模块,甚至还有专门为商业平台开发的功能模块,近600个模块完全可以满足日常功能所需。
- 在Ansible去中心化概念下,一个简单的复制操作即可完成管理配置中心的迁移。
- Agentless(无客户端),客户端无需任何配置,由管理端配置好后即可使用。
# 1.2. ansible的工作机制
# 1.2.1. ansible的使用方式
- 通过CMDB(Configuration Management Database,配置管理数据库)直接下发指令调用Ansible工具集完成操作者所希望达成的目标。
- Ansible以API调用的方式运行。
- USERS直接使用Ad-Hoc临时命令集调用Ansible工具集来完成任务执行。
- USERS预先编写好的Ansible Playbooks,通过执行Playbooks中预先编排好的任务集按序完成任务执行。
# 1.2.2. ansible的工具集
ansible命令是Ansible的核心工具,ansible命令并非自身完成所有的功能集,其只是Ansible执行任务的调用入口,大家可理解为“总指挥”,所有命令的执行通过其“调兵遣将”最终完成。
如果我们按Ansible工具集的组成来讲,由图可以看出Ansible主要由6部分组成:
- ANSIBLE PLAYBOOKS:任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是YML文件。
- INVENTORY:Ansible管理主机的清单。
- MODULES:Ansible执行命令的功能模块,多数为内置的核心模块,也可自定义。
- PLUGINS:模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等,该功能不常用。
- API:供第三方程序调用的应用程序编程接口。
- ANSIBLE:Ansible命令工具,其为核心执行工具。
# 1.3. ansible组件调用关系
使用者使用Ansible或Ansible-playbook(会额外读取Playbook文件)时,在服务器终端输入Ansible的Ad-Hoc命令集或Playbook后,Ansible会遵循预先编排的规则将Playbooks逐条拆解为Play,再将Play组织成Ansible可识别的任务(Task),随后调用任务涉及的所有模块(Module)和插件(Plugin),根据Inventory中定义的主机列表通过SSH(Linux默认)将任务集以临时文件或命令的形式传输到远程客户端执行并返回执行结果,如果是临时文件则执行完毕后自动删除。
# 2. ansible安装
# 2.1. PIP安装
# 2.1.1. 安装python-pip和python-devel
# 安装python-pip程序包及python-devel,
yum install python-pip python-devel -y
1
2
2
# 2.1.2. 安装Ansible
# 安装请前确保服务器的gcc、glibc开发环境均已安装,系统几乎所有的软件包编译环境均基于gcc,如不确认可先执行如下命令:
yum install gcc glibc-devel zlib-devel rpm-build openssl-devel -y
# 升级本地PIP至最新版本
pip install --upgrade pip
# 安装Ansible服务
pip install ansible -upgrade
1
2
3
4
5
6
2
3
4
5
6
# 2.2. YUM安装
# 需事先安装epel源后方可找到并安装Ansible
yum install epel-release -y
# 安装Ansible
yum install ansible -y
1
2
3
4
2
3
4
# 2.3. 源码安装
# 使用Git将拉取指定的Ansible版本至本地当前目录
git clone https://github.com/ansible/ansible.git
# 切换至程序包目录
cd ./ansible
# 执行env-setup脚本,安装Ansible软件包
source ./hacking/env-setup
1
2
3
4
5
6
2
3
4
5
6
上次更新: 2024/05/11, 03:55:33