在本章中,我将为您解释 Ansible 是什么,以及它为何对您的 IT 部门如此强大。

Ansible 于 2012 年 2 月启动,其创始人 Michael DeHaan 从他之前编写的一些工具以及当时配置管理的现状中汲取灵感。Ansible 的一些独特属性,例如其基于模块的架构和无代理方法,迅速在开源界引起了关注。

Ansible

  • 基础设施自动化工具
  • 开源的基础设施即代码

首先,让我们从探索名为 Ansible 的奇妙开源技术开始。Ansible 被归类为一种基础设施自动化工具,因此您可以非常轻松地自动化系统管理员的任务。基础设施即代码是通过机器可读的定义文件管理计算机数据中心的过程,而不是通过物理硬件配置或交互式配置工具。Ansible 遵循 DevOps 原则,您可以使用 Ansible 在本地和最知名的公有云提供商上部署基础设施即代码。

Ansible 的三大主要用例

  • 配置
  • 配置管理
  • 应用程序部署

Ansible 的三大主要用例是配置、配置管理和应用部署。但在接触这项技术后,我相信您一定能想出更多使用它的方法!

配置

  • 设置 IT 基础设施的过程

让我们先来谈谈配置:所有系统管理员都知道管理一个统一的机器集群是多么重要。有些人仍然依赖软件来创建工作站镜像。但这种方法有一个缺点,使用镜像技术时,您只是对机器进行了时间点的快照。因此,每次您需要重新安装软件,因为现代的密钥激活系统,或者手动更新到最新的安全补丁。Ansible 在自动化这一过程方面非常强大,能够创建一个更顺畅的流程。

配置管理

  • 维护系统和软件处于期望且一致状态的过程

第二个关键用例是“配置管理”:以最新且一致的方式维护您的整个集群,协调滚动更新并安排停机时间。使用 Ansible,您可以检查受管主机的状态,并对其中的一小部分采取行动。Ansible 提供了大量模块,用于最常见的用例。更不用说常见的用例是检查您的集群是否符合某些国际标准,并应用解决计划。

应用程序部署

  • 在测试、预生产和生产环境之间发布软件的过程

Ansible 在第三个关键用例中也非常有用,即应用程序部署。它可以自动化您的 Web 应用程序的持续集成/持续交付工作流管道。您的 DevOps 团队一定会为此感到欣喜!

Ansible 与 DevOps

Ansible 用于在全球组织中应用 DevOps 原则。让我快速总结一下。 DevOps 是一种将软件开发(Dev)和 IT 运营(Ops)相结合的实践方法。由于 DevOps 旨在成为一种跨职能的工作模式,因此实践该方法论的人使用的是被称为“工具链”的不同工具集,而不是单一工具。这些工具链被期望归入以下一个或多个类别,以反映开发和交付过程的关键方面。 这七个类别包括:

  • 代码:代码开发和审查、源代码管理工具、代码合并。
  • 构建:持续集成工具、构建状态。
  • 测试:提供快速及时反馈业务风险的持续测试工具。
  • 发布:构件仓库、应用预部署阶段。
  • 部署:变更管理、发布审批、发布自动化。
  • 运维:基础设施配置和管理、基础设施即代码工具。
  • 监控:应用性能监控、最终用户体验。

Ansible 的四大核心原则

  1. 声明式 您声明您想要的结果,而不是实现它的方法。
  2. 无代理 您无需安装代理。它利用了 OpenSSH。
  3. 幂等性 一个操作可以多次运行,而不会在初始操作之外产生任何变化。
  4. 社区驱动 以集合和角色的形式发布在 Ansible Galaxy 上。

Ansible 的四大核心原则是:声明式、无代理、幂等性和社区驱动。

  • 声明式:您可以像使用编程语言一样,以类似的方式应用顺序、选择和迭代到代码流程中。
  • 无代理:您无需在目标机器上安装和更新任何代理,它使用 SSH 连接和 Python 解释器。
  • 幂等性:代码本身是幂等的,这意味着代码会在受管机器上检查一个精确的状态。例如,第一次运行时,代码会进行更改,后续运行时,它只会验证是否没有更改并继续执行。
  • 社区驱动:存在一个名为“Ansible Galaxy”的公共代码库,您可以从中下载其他开源贡献者编写的代码。这些代码以角色和集合的形式组织,我们稍后会详细介绍。

Ansible 的六大价值

  • 简单:使用 YAML 编写的可读自动化脚本
  • 强大:配置管理、工作流编排、应用程序部署
  • 跨平台:支持所有主要操作系统、物理、虚拟、云和网络,无需代理
  • 与现有工具集成:使现有环境更加统一
  • 开箱即用:包含 750 多个模块
  • 社区驱动:每月下载量达 25 万次,拥有 3500 名贡献者,IRC 上有 1200 名用户

现在让我们来谈谈 Ansible 的六大价值。

  • 第一是简单:代码使用 YAML 语言编写,这是一种人类可读的数据序列化语言。它广为人知且易于学习,常用于配置文件以及数据存储或传输的应用程序中。
  • Ansible 强大,作为配置管理、工作流编排和应用程序部署的工具,经过了实战检验。
  • 第三是跨平台,Ansible 本质上支持所有主要操作系统、物理、虚拟、云和网络提供商,无需代理。
  • Ansible 的另一个价值是它能够与现有工具集成,使现有环境更加统一。
  • 开箱即用意味着 Ansible 自带了 750 多个模块,用于自动化最常见的任务。
  • 最后一个价值是 Ansible 是社区驱动的,每月有超过 25 万次下载,平均有 3500 名贡献者,IRC 上有超过 1200 名用户。

Ansible 的发展历程

  • 2012 年:由 Michael DeHaan 开发
  • 2015 年:被 Red Hat 收购
  • 2016 年:AnsibleFest 活动
  • 2020 年:Red Hat Ansible 自动化平台 1.0
  • 2021 年:Red Hat Ansible 自动化平台 2.1
  • 2022 年:Red Hat Ansible 自动化平台 2.2 和 2.3,AnsibleFest 回归线下
  • 2023 年:Red Hat Ansible 自动化平台 2.4,Event-Driven Ansible 正式发布,Ansible Lightspeed 问世
  • 2024 年:Red Hat Ansible 自动化平台 2.5,Ansible Lightspeed 集成生成式 AI
  • 2025 年:Red Hat Ansible 自动化平台 2.6,AI 助手与自助服务门户
  • 2026 年:ansible-core 2.21 发布,平台持续演进

Ansible 的主要发展历程如下:

  • 2012 年:Ansible 诞生,Michael DeHaan 发布首个版本
  • 2015 年:Red Hat 收购 Ansible,纳入企业级自动化版图
  • 2016 年:首届 AnsibleFest 举办,社区生态正式形成
  • 2020 年:Red Hat Ansible 自动化平台 1.0 发布,完成产品化转型
  • 2023 年:Event-Driven Ansible 正式发布,实现从"按需执行"到"事件驱动"的架构升级;Ansible Lightspeed 问世,开启 AI 赋能自动化时代
  • 2025 年:Ansible 自动化平台 2.6 发布,内置智能助手与自助服务门户,平台全面向 AI 原生演进

Ansible、Ansible Tower 和 Ansible 自动化平台

  • Ansible 社区驱动项目,快速创新,开源但仅提供命令行工具。
  • Red Hat Ansible Tower / Ansible 自动化平台 由 Red Hat 设计的框架,提供用于管理基础设施的 Web UI。

Ansible 是一个社区驱动的项目,具有快速创新的特点,开源但仅提供命令行工具。 企业需要更多的服务和一些稳定的版本。例如,他们需要支持的服务等级协议(SLA)。 Red Hat 为公司提供这项服务,即 Ansible Tower,现在更名为 Ansible 自动化平台。Ansible Tower 是一个 REST API、Web 服务和基于 Web 的控制台,旨在使 Ansible 对于不同技术水平和技能组合的 IT 团队成员更加易于使用。 Ansible Tower 是一个自动化任务的中心,它是一个由 Red Hat 公司支持的商业产品,但源自 AWX 上游项目,该项目自 2017 年 9 月起开源。Red Hat 还维护 Ansible Core(以前称为 Ansible Engine)。 通过 Ansible Core,组织可以以一种强化的、企业级的方式访问底层 Ansible 技术提供的工具和创新。Ansible Engine 由 Red Hat 开发,明确旨在作为企业 IT 平台使用。