Ansible基础入门
目录
Ansible是什么
Ansible是一种IT自动化工具。它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署或零停机滚动更新。
Ansible发展史
Ansible第一个版本是0.0.1,发布于2012年3月9日,创始人是Michael DeHaan。
为什么选择Ansible
- 完全基于Python开发,而DevOps在国内已然是一种趋势,Python被逐步普及,运维人员自己开发工具的门槛逐步降低,得益于此,方便对Ansible二次开发。
- Ansible丰富的内置模块,甚至还有专门为商业平台开发的功能模块。
- 在Ansible去中心化概念下,一个简单的复制操作即可完成管理配置中心的迁移。
- Agentless(无客户端),客户端无需任何配置,由管理端配置好后即可使用。
Ansible是如何工作的
Ansible没有客户端,因此底层通信依赖于系统软件,Linux系统下基于OpenSSH通信,Windows系统下基于PowerShell,管理端必须是Linux系统。使用者认证通过后,在管理节点通过Ansible工具调用各应用模块,将指令推送至被管理端执行,并在执行完毕后自动删除产生的临时文件。
按角色
根据Ansible使用过程的不同角色,将其分为:
- 使用者
- Ansible工具集
- 作用对象
使用者
Ansible使用者来源于多种维度,有4种方式。
- CMDB(Configuration Management Database,配置管理数据库)。CMDB存储和管理着企业IT架构中的各项配置信息,是构建ITIL(IT基础架构库)项目的核心工具。运维人员可以组合CMDB和Ansible,通过CMDB直接下发指令调用Ansible工具集完成操作者所希望达成的目标。
- PUBLIC/PRUVATE方式。Ansible除了丰富的内置模块外,同时提供丰富的API语言接口,如PHP、Python、PERL等语言,基于PUBLIC(公有云)/PRIVATE(私有云),Ansible以API调用的方式运行。
- USERS直接使用Ad-Hoc临时命令集调用Ansible工具集来完成任务。
- USERS预先编写好的ANSBILE PLAYBOOKS,通过执行playbooks中预先编排好的任务集按序完成任务。
Ansible工具集
ansible命令是Ansible的核心工具,ansible工具集包括,INVENTORY(命令执行的目标对象标配文件)、API(供第三方程序调用的应用程序编程接口)、MODULES(丰富的内置模块)、PLUGINS(内置和可自定义的插件)。
作用对象
Ansible的作用对象,不仅仅是Linux和非Linux操作系统的主机(HOSTS),同样可以作用域各类公有云/私有云,商业和非商业设备的网络设施。
按Ansible工具集组成
ANSIBLE PLAYBOOKS
任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansibke顺序依次执行,通常是JSON格式的YML文件。
INVENTORY
Ansible管理主机的清单。
MODULES
Ansible执行命令的功能模块,多数为内置核心模块,也可以自定义。
PLUGINS
模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等。
API
供第三方程序调用的应用程序编程接口
Ansible通信发展史
Ansible SSH工作机制
Ansible通信方式发展历程
Paramiko通信模块
OpenSSH
加速模式
Faster OpenSSH in Ansible 1.5+
Ansible应用场景
运维操作角度
文件传输
文件的本地传输和异地传输,所有文件的空间形态、时间形态变化均构成文件传输类操作。
命令执行
终端所有操作对系统来讲都是指令的组成,最终转换为基础硬件可接受的电信号完成任务集。对运维操作的用户行为来讲,除文件传输的其他操作均可以成为命令执行。
自动化工作类型角度
应用部署
配置管理
任务流编排
Ansible安装部署
PIP
安装python-pip及python-devel。
1
yum install python-pip python-devel -y
安装Ansible服务。
1
2
3yum install gcc glibc-devel zlib-devel rpm-build openssl-devel -y
pip install --upgrade pip
pip install ansible -upgrade