Ansible(自动化运维)基本架构简介

怎甘沉沦 提交于 2019-11-27 02:37:21

  • ansible 自动化运维工具 被红帽收购 阿里巴巴在用saltstack python开发
  • ansible puppet saltstack 主流的三种
  • docker和ansible的区别:ansible 侧重部署过程,docker 侧重于交付的形式,呈现给客户的形式(物理机 容器 虚拟机)
  • 在生产环境中,不允许用root远程连接
  • inventory文件:执行的对象
  • 工作机制:把代码复制到远程主机。所以远程主机一定要装python模块,才能进行操作。
  • ansible-tower-setup-bundle-3.4.2-1.el7.tar.gz 不能装 支持集群 业界唯一 ansible的集群化 3个节点完成高可用 红帽开发 命令已经转换为图形了 还是要写playbook 有点贵
  • 节点一般指的是:物理机/ 虚拟机/ 容器
  • [ ] 分组 更好管理 否则都放到默认组
  • all 所有组 -m 匹配什么模块
  • 是用普通用户操作 所以三个节点都要有devops这个普通用户

Ansible是什么?

  • Ansible是近年越来越火的一款运维自动化工具,其主要功能是帮助运维实现IT工作的自动化、降低人为操作失误、提高业务自动化率、提升运维工作效率
  • 常用于软件部署自动化配置自动化管理自动化系统化系统任务持续集成零宕机平滑升级等。
  • 常见的部署管理工具有Chef、Puppet、Ansible、SaltStack、Fabric
  • Ansible发布于2012年,其作者兼创始人是Michael DeHaan。
  • 红帽2015收购了Ansible母公司。

为什么选择Ansible?

  • Ansible完全基于Python开发,而DevOps在国内已然是一种趋势,Python被逐步普及,运维人员自己开发工具的门槛逐步降低,得益于此,方便对Ansible二次开发。
  • Ansible丰富的内置模块,甚至还有专门为商业平台开发的功能模块,完全可以满足日常功能所需。
  • 在Ansible去中心化概念下,一个简单的复制操作即可完成管理配置中心的迁移。
  • Agentless(无agent客户端),客户端无需任何配置,由管理端配置好后即可使用,这点非常诱人。

常用的自动化运维工具技术特性比较

在这里插入图片描述

Ansible是如何工作的?

在这里插入图片描述

  • Ansible没有客户端,因此底层通信依赖于系统软件,Linux系统下基于OpenSSH通信,Windows系统下基于PowerShell,管理端必须是Linux系统
  • 根据Ansible使用过程中的不同角色,将其分为:
  • 使用者
  • Ansible工具集
  • 作用对象
  • Ansible使用者来源于多种维度,分为以下几种方式:
  • CMDB存储和管理着企业IT架构中的各项配置信息,运维人员可以组合CMDB和Ansible,通过CMDB直接下发指令调用Ansible工具集完成操作者所希望达成的目标。
  • 基于PUBLIC(公有云)/PRIVATE(私有云),Ansible以API调用的方式运行,Ansible提供了丰富的API语言接口:PHP、Python等。
  • 直接使用Ad-Hoc临时命令集调用Ansible工具集来完成任务执行。
  • 通过执行Playbooks中预先编排好的任务集按序完成任务执行。
  • Ansible工具集(ansible命令是Ansible的核心工具,总指挥)
  • INVENTORY:命令执行的目标对象配置文件
  • API:供第三方程序调用的应用程序编程接口
  • MODULES:丰富的内置模块
  • PLUGINS:内置和可自定义的插件

作用对象

  • Ansible的作用对象,不仅仅是Linux和非Linux操作系统的主机,同样也可以作用于各类公有云/私有云,商业和非商业设备的网络设施。

在这里插入图片描述

Ansible执行流程

在这里插入图片描述
在这里插入图片描述

ansible任务执行模式

Ansible任务执行模式分为以下两种:

  • ad-hoc模式(点对点模块)
    使用单个模块,支持批量执行单条命令,相当与在bash中执行一句shell命令

  • playbook模式(剧本模式)
    ansible主要的管理方式,通过多个task的集合完成一类功能,可以理解为多个ad-hoc的配置文件

Ansible通信机制

  • Ansible主推的卖点是其无需任何Daemon维护进程即可实现相互间的通信,且通信方式是基于业内统一标准的安全可靠的SSH安全连接。
  • 无客户端,只需安装SSH、Python即可。
  • 基于OpenSSH通信,底层基于SSH协议(Windows基于PowerShell)
  • 支持密码和SSH认证,建议使用公私钥方式认证,因为密码认证方式的密码需明文写配置文件,虽然配置文件可加密,但会增加Ansible使用的复杂度。
  • 支持Windows,但仅支持客户端,服务端必须是Linux系统。

Ansible应用场景

应用部署

  • Ansible内置网络、应用、系统、第三方云平台扩展等完善的功能模块,协助运维快速完成应用的安装、卸载、升级、启停、配置等部署类工作,即使对跨平台或知名的商业硬件也同样支持。

配置管理

  • Ansible内置File、Template,结合Jinja、Lineinfile等内置模块,同时无缝结合GitHub、GitLab、Git、SVN、Jenkins等主流版本控制和CI持续集成工具,助力配置管理自动化。

任务流编排

  • 有效保证Tasks任务流按既定规则和顺序完成事先制订的目标和计划,同时Roles编排方式又能在一定程度上从书写习惯和代码层编排上保证整体项目的可架构性和规范性,协助控制项目维护成本不致过高。
  • 适用于网络管理员、系统运维、应用运维、桌面运维、DevOps、基础架构运维等多领域运维行业,上手快,效率高。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!