Jump to section

Ansible 基础知识入门

复制 URL

Ansible® 是一款开源 IT 自动化引擎,能够自动执行置备配置管理、应用部署、编排等 IT 流程。

借助 Ansible 自动化在整个企业范围中更高效地安装软件、自动执行日常任务、置备基础架构、提高安全性和合规性、修补系统并共享自动化。

Ansible 和红帽 Ansible 自动化平台有什么区别?

Ansible 基础知识:自动化技术概述

本系列在线点播视频重点介绍如何使用 Ansible 在云环境、虚拟环境和物理环境中实现 Ansible 自动化和配置管理,以及置备、部署和管理计算基础架构。

利用 Ansible 实现红帽企业 Linux 自动化

本课程将讲授如何用最新版本的红帽® Ansible 自动化平台实现 Linux® 系统管理任务的自动化。您将学习必备的关键技术,从而能使用 Ansible 自动化平台实现置备、配置、应用部署和编排的自动化。

模块
Ansible 会连接到您的节点,并向节点推送这种称为“模块”的小程序。这些模块可用于完成 Ansible 中的自动化任务。这些程序被编写成系统理想状态的资源模型。然后 Ansible 会执行这些模块,并在完成后将其移除。

如果没有这些模块,您就必须靠临时命令和脚本来完成任务。Ansible 可以安装到红帽® 企业 Linux®CentOSFedora、Ubuntu、Debian 和许多其他操作系统。

Ansible 本身就有多个内置模块,您可以使用那些模块自动执行任务,也可以编写自己的模块。Ansible 模块可用任何能返回 JSON 的语言编写,如 Ruby、Python 或 bash。Windows 自动化模块甚至可用系统自带的 Powershell 编写。

无代理自动化
Ansible 采用无代理设计,这意味着其所管理的节点不需要安装任何软件。Ansible 会从清单中读取要管理的机器的有关信息。Ansible 有默认的清单文件,但您也可以自己创建清单文件,并定义想要管理的服务器。 

Ansible 使用 SSH 协议连接至服务器并运行任务。Ansible 默认会使用 ssh-agent 的 SSH 密钥,并用您当前的用户名连接到远程机器。无需使用 root 用户名登录。您能以任何用户的身份登录,然后对任何用户使用 su 或 sudo 命令。

Ansible 一旦连接,就会将您的命令或 Playbook 所需的模块传输到远程机器上执行。Ansible 使用人类可读的 YAML 语言模板,因此用户无需学习高级编程语言就可以对重复性任务进行编程以使其自动运行。

您也可用 Ansible 来运行临时命令。为此,您只需运行一个命令或直接从命令行调用一个模块。无需使用 Playbook。这比较适合一次性任务,而其他更复杂的任务则要用到 Ansible Playbook。

Ansible Playbook 主要用来编排 IT 流程。Playbook 是一种 YAML 文件,扩展名为 .yml 或 .yaml,其中包含一个或多个 play,用来定义系统所需达到的状态。这不同于 Ansible 模块,Ansible 模块是一个独立的脚本,可以在 Ansible Playbook 中使用。 

Play 由一组有序任务组成,这些任务会针对 Ansible 清单文件中选择的特定主机来执行。任务是构成每个 Play 的组成部分,它们会调用 Ansible 模块。在一个 Play 中,任务会按照其编写顺序依次执行。

Ansible Lightspeed 与 IBM Watson Code Assistant 的引入可以让您更加轻松高效地构建 Ansible Playbook。您可以通过使用简单的英语输入任务请求,Ansible Lightspeed 将与 IBM watsonx 基础模型交互生成代码建议,然后用于创建 Ansible Playbook。

当 Ansible 运行时,它可以跟踪系统的状态。如果 Ansible 扫描系统后发现系统的 Playbook 描述和实际系统状态不一致,那么 Ansible 就会对系统进行必要的更改,以匹配 Playbook。 

Ansible 有一个“检查模式”,可以让您在更改系统状态之前验证 Playbook 和临时命令。您可以在实际做出更改之前,先预览 Ansible 将要执行的任务。Ansible 中的处理程序则是一种特殊的机制,当某个任务执行完成,并且这个任务引起了系统状态的变化,相关的处理程序就会被触发执行,并作为 Playbook 中的最后一个 Play 只运行一次。

变量是 Ansible 中可以让您改变 Playbook 运行方式的概念。变量是用来处理不同系统之间的差异,如软件包版本或文件路径。借助 Ansible,您可以在不同的系统中执行 Playbook。Ansible 变量应该根据您 Playbook 的实际工作来定义。您可以设定变量的优先级,自定义变量之间相互覆盖的顺序。理解这一点对您在 Playbook 中加入变量非常重要。

Ansible 角色是一种特殊的 Playbook,它完全独立、可以移植,包含完成一个复杂编排所需的任务、变量、配置模板和其他支持文件。一个集合内可以存在多个角色,能够通过自动化中心Ansible Galaxy 轻松共享内容。

使用 Ansible 时,您还需要了解集合。集合是 Ansible 内容的一种分布格式,可以包括 Playbook、角色、模块和插件。

配置管理是指将计算机系统、服务器和软件维持在所需的一致状态的过程。通过这种方式,可以确保系统在以后发生变化时能够保持正常运行。这传统上是由系统管理员手动处理或使用自定义脚本来完成的。

在用作配置管理工具时,红帽 Ansible® 自动化平台可以存储系统的当前状态并帮助您维持该状态。 

配置管理工具可以加快更改和部署速度,消除潜在的人为错误,并且让系统管理变得可预测和可扩展。此外,它们还可以帮助您跟踪资源状态并避免重复执行任务(例如两次安装同一软件包)。 

通过 Ansible 自动管理配置,可帮助您提高重大事件发生后的系统恢复能力。如果服务器由于未知原因而停机,您可以快速部署一台新服务器并掌握所发生的任何更改或更新的记录,从而找出问题的根源。 

如今的基础架构常常是在软件中定义的,而且虚拟化容器技术加快了置备过程,同时不再需要频繁地置备硬件和管理。

如果手动对每个部署的置备单独进行管理,就会难以跟踪变更和控制版本,也难免会出现错误和不一致。自动化基础架构置备可以极大简化这一过程,应当是整个应用运维生命周期自动化的第一步。 

Ansible 可以用来置备环境的底层基础架构、虚拟化主机和虚拟机监控程序、网络设备及裸机服务器。它还可以安装服务、添加计算主机,并在云内配置资源、服务和应用。

您可以使用 Ansible Playbook 来描述基础架构的预期状态,然后让 Ansible 进行置备。使用 Playbook 编写基础架构,可确保您每次都能置备一致的环境。 

通过部署自动化,您能够使用自动化流程在测试环境和生产环境之间移动软件。这样就可以在整个软件交付周期实现可重复的可靠部署。部署自动化是支持 DevOps 实践和管理 CI/CD 管道的重要环节。

如果开发团队以一种方式部署应用或配置环境,而运维团队以另一种方式部署和配置,那么部署自动化就不能发挥作用。整个环境需要保持一致,才能实现自动化。每种环境(包括生产环境)都应使用相同的部署过程。 

部署管道通常包含 3 个主要步骤(但您可以添加更多步骤):构建、测试和部署。这个管道能够支持您实现部署流程自动化,并确保代码快速从提交移至部署。Ansible 允许您从一个通用框架可靠、一致地部署多层应用。您可以配置所需的服务,并使用 Playbook 推送应用工件。

通常,自动化是指自动执行单个任务。而编排则不同,它是指自动执行不同系统中多个步骤的流程或工作流。 

云编排可用于置备或部署服务器、分配存储容量、创建虚拟机,以及管理网络和其他诸多任务。许多编排工具都可以帮您进行云编排。Ansible 就是其中之一。Ansible 之类的工具可以帮助您编排服务器配置、管理以及应用部署。

应用部署可以包括前端和后端服务、数据库、监控、网络和存储服务,它们各司其职,而且有自己的配置和部署。而编排可确保其中每一步都能按照您的需要进行。Ansible 会按照 Playbook 中的编写顺序依次执行任务,从而实现编排,这样您就能确信应用部署过程会按照正确的顺序执行。 

网络自动化使用可编程逻辑来管理网络资源和服务。相比用户手动操作,网络自动化可以让网络运维(NetOps)团队更快地配置、扩展、保护和集成网络基础架构与应用服务。

即使底层技术早已今非昔比,但网络管理几十年来仍然基本保持不变。网络通常都是由人工构建、运行和维护。然而,传统手动网络配置和更新方法过于缓慢且容易出错,无法有效支持快速转换工作负载要求的需求。 

通过实现网络资源和服务管理自动化,网络运维团队可以提高敏捷性和灵活性,高效地支援现代企业需求。

安全防护自动化会运用自动化技术,在减少人工辅助的情况下执行各项任务,以集成安全流程、应用和基础架构。自动化可以帮助您简化日常运维,并从一开始就将安全防护集成到流程、应用和基础架构中。通过全面部署安全防护自动化,甚至可以让因泄露而造成的平均损失降低 95%。

而在安全防护流程中应用自动化,可以帮助您更快地识别、验证和上报威胁,而无需人工干预。如果安全事件发生,安全团队可以利用 Ansible 来快速、并行地修复整个环境中受影响的系统,并更快地对事件做出响应。

安全团队可以利用 Ansible 来配置一系列能够共享清单、Playbook 或权限的作业,以实现检查或修复任务的完全自动化。红帽 Ansible 自动化平台与第三方外部日志聚合服务集成,可以帮助安全团队发现趋势、分析基础架构事件、监控异常情况并将不相干事件关联起来。

红帽一直致力于与广大开源社区共同推进自动化技术的发展。我们的工程师可以助您改进功能、可靠性和安全性,确保您的业务和 IT 安全稳定地运行。 

红帽 Ansible 自动化平台中包含了实现企业级自动化所需的各种工具,包括 Playbook 和分析功能。它允许用户通过可视化控制面板、基于职能角色的访问控制等功能来集中管理和控制自己的 IT 基础架构,从而降低运维的复杂性。

借助红帽订阅,您可以获得经认证的内容、可靠的合作伙伴生态系统、托管管理服务的访问权限,以及生命周期技术支持,让您的团队能够在整个企业中创建、管理和扩展自动化。红帽已成功服务数千客户,积累了能提供专业洞察和指导的宝贵经验。

企业不仅需要具备轻松创建自动化的能力,而且需要能在项目和团队之间以适当的监管和控制水平来共享和重用自动化。有了适合的自动化解决方案,您就可以更快速地部署新的应用和服务,更有效地管理 IT 基础架构,同时还可以提高应用开发效率。

扩展阅读

文章

Ansible 基础知识入门

Ansible 是一种对 IT 流程自动化的工具,如置备和配置管理等流程。希望能通过这篇 Ansible 关键概念的介绍,帮助您了解 Ansible 的基础知识。

文章

什么是业务流程管理?

业务流程管理(BPM)是指对端到端业务流程进行建模、分析和优化,以实现战略业务目标。

文章

为什么选择红帽实现自动化?

红帽 Ansible 自动化平台中包含了在团队间分享自动化以及实现企业级自动化所需的各种工具。

详细了解自动化

产品

红帽的战略顾问将从大局出发,以战略性视角审视企业发展,分析您当前面临的业务挑战,并提供全面、低成本、高效益的解决方案,帮助您轻松应对各项挑战。

无论您处于自动化之旅的哪个阶段,这个实施企业级自动化的平台都能助您一臂之力

相关资源

电子书

自动化企业:实现人员和流程的统一

电子书

自动化基础架构工作流

摘要

红帽认证工程师技能路径

 

电子书

数字化转型,开源之路

电子书

实战经验谈:系统管理员 IT 自动化指南

产品规格表

红帽企业 Linux 自动化和管理

检查清单

自动修复性能问题的三大好处

电子书

自动化架构师手册

培训

免费培训课程

Ansible 必备:轻松实现自动化之技术概览

免费培训课程

针对 SAP 的红帽 Ansible 自动化