一、Ansible的简介
什么是Ansible?
1.Ansible是近年越来越火的一款运维自动化工具,其主要功能是帮助运维实现IT工作的自动化、降低人为操作失误、提高业务自动化率、提升运维工作效率。
2.常用于软件部署自动化、配置自动化、管理自动化、系统化系统任务、持续集成、零宕机平滑升级等。
3.常见的部署管理工具有Chef、Puppet、Ansible、SaltStack、Fabric.
4.Ansible发布于2012年,其作者兼创始人是Michael DeHaan。
5.红帽2015收购了Ansible母公司。为什么选择Ansible?
1.Ansible完全基于Python开发,而DevOps在国内已然是一种趋势,Python被逐步普及,运维人员自己开发工具的门槛逐步降低,得益于此,方便对Ansible二次开发。 2.Ansible丰富的内置模块,甚至还有专门为商业平台开发的功能模块,完全可以满足日常功能所需。 3.在Ansible去中心化概念下,一个简单的复制操作即可完成管理配置中心的迁移。 4.Agentless(无客户端),客户端无需任何配置,由管理端配置好后即可使用,这点非常诱人。
Ansible是如何工作的
1. Ansible没有客户端,因此底层通信依赖于系统软件,Linux系统下基于OpenSSH通信,Windows系统下基于PowerShell,管理端必须是Linux系统。 2.根据Ansible使用过程中的不同角色,将其分为: 使用者 Ansible工具集 作用对象 3.Ansible使用者来源于多种维度,分为以下几种方式: <1>CMDB存储和管理着企业IT架构中的各项配置信息,运维人员可以组合CMDB和Ansible,通过CMDB直接下发指令调用Ansible工具集完成操作者所希望达成的目标。 <2>基于PUBLIC(公有云)/PRIVATE(私有云),Ansible以API调用的方式运行,Ansible提供了丰富的API语言接口:PHP、Python等。 <3>直接使用Ad-Hoc临时命令集调用Ansible工具集来完成任务执行。 <4>通过执行Playbooks中预先编排好的任务集按序完成任务执行。 4. Ansible工具集(ansible命令是Ansible的核心工具,总指挥) INVENTORY:命令执行的目标对象配置文件 API:供第三方程序调用的应用程序编程接口 MODULES:丰富的内置模块 PLUGINS:内置和可自定义的插件 5. 作用对象 Ansible的作用对象,不仅仅是Linux和非Linux操作系统的主机,同样也可以作用于各类公有云/私有云,商业和非商业设备的网络设施。
Ansible应用场景
1.应用部署 Ansible内置网络、应用、系统、第三方云平台扩展等完善的功能模块,协助运维快速完成应用的安装、卸载、升级、启停、配置等部署类工作,即使对跨平台或知名的商业硬件也同样支持。 2.配置管理 Ansible内置File、Template,结合Jinja、Lineinfile等内置模块,同时无缝结合GitHub、GitLab、Git、SVN、Jenkins等主流版本控制和CI持续集成工具,助力配置管理自动化。 3.任务流编排 有效保证Tasks任务流按既定规则和顺序完成事先制订的目标和计划,同时Roles编排方式又能在一定程度上从书写习惯和代码层编排上保证整体项目的可架构性和规范性,协助控制项目维护成本不致过高。 4.适用于网络管理员、系统运维、应用运维、桌面运维、DevOps、基础架构运维等多领域运维行业,上手快,效率高。
二、ansible安装与配置
实验主机
server12: 172.25.7.12
server13: 172.25.7.13
server14: 172.25.7.14
1. 三台主机上配置yum源并安装
[