登录 / 注册 Account

自动化

Ansible 基础知识入门

Jump to section

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

通过运用 Ansible 自动化,您的 IT 团队可以在整个企业范围中更高效地安装软件、自动执行日常任务、置备基础架构、提高安全性和合规性、修补系统并共享自动化。

 

Ansible 是如何发挥作用的?

Ansible 会连接到您的节点,并向节点推送一种称为“模块”的小程序。这些模块就是用来完成 Ansible 中的自动化任务。

这些程序会被编写成系统理想状态的资源模型。然后 Ansible 会执行这些模块,并在完成后将其移除。

如果没有这些模块,您就必须靠临时命令和脚本来完成任务。 

阅读 Ansible 安装指南

Ansible 采用无代理模式,这意味着它所管理的节点不需要安装任何软件。

Ansible 会从清单中读取要管理的机器的有关信息。Ansible 有默认的清单文件,但您也可以创建自己的清单文件,并定义希望 Ansible 管理的服务器。 

Ansible 使用 SSH 协议连接至服务器并运行任务。Ansible 默认使用 

ssh-agent 的 SSH 密钥,并用您当前的用户名连接到远程机器。无需使用根用户名登录。您能以任何用户的身份登录,然后对任何用户使用 su 或 sudo 命令。

了解 SSH 如何建立安全通信

Ansible 一旦连接,就会将您的命令或 playbook 所需的模块传输到远程机器上执行。

Ansible 使用人类可读的 YAML 模板,因此用户无需学习高级编程语言就可以对重复性任务进行编程以使其自动运行。

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

 

使用 Ansible 运行临时命令

您可以用 Ansible 来运行临时命令。为此,您只需运行一个命令或直接从命令行调用一个模块。无需使用 playbook。 

这比较适合一次性任务,而其他更复杂的任务则要用到 Ansible playbook。

Ansible playbook

Ansible playbook 主要用来编排 IT 流程。Playbook 是一个 YAML 文件中,其中包含 1 个或多个 play,用于定义系统的理想状态。这不同于 Ansible 模块,Ansible 模块是一个独立的脚本,可以在 Ansible playbook 中使用。 

理解 Ansible 的 YAML

Play 由一组有序任务组成,这些任务根据您的 Ansible 清单文件中的主机选择依次执行。 

任务是构成每个 play 的组件,可以调用 Ansible 模块。在一个 play 中,任务按照其编写顺序依次执行。  

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

Ansible 有一个“检查模式”,可以让您在更改系统状态之前验证 playbook 和临时命令。您可以在实际做出更改之前,先预览 Ansible 将要执行的任务。 

Ansible 中的处理程序只在系统发生变化后才用于运行特定任务。处理程序是由任务触发,并作为 playbook 中的最后一个 play 只运行一次。 

变量是 Ansible 中的一个概念,可以让您改变 playbook 的运行方式。变量是用来处理不同系统之间的差异,如软件包版本或文件路径。借助 Ansible,您可以在不同的系统中执行 playbook。 

Ansible 变量应该根据您 playbook 的实际工作来定义。 

变量遵循变量优先权,其定义了变量之间相互覆盖的顺序。理解这一点对您在 playbook 中加入变量非常重要。

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

Ansible 角色是一种特殊的 playbook,它完全独立、可以移植,包含完成一个复杂编排所需的任务、变量、配置模板和其他支持文件。 

一个集合内可以存在多个角色,能够通过自动化中心Ansible Galaxy 轻松共享内容。 

 

用 Ansible 进行配置管理

配置管理是指将计算机系统、服务器和软件维持在理想、一致状态的过程。通过这种方式,可以确保系统在以后发生变化时能够保持正常运行。 

这传统上是由系统管理员手动处理或使用自定义脚本来完成的。 

用 Ansible 对新系统进行强化的 5 种方法

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

配置管理工具可以加快更改和部署速度,消除潜在的人为错误,同时也让系统管理变得可预测和可扩展。

此外,它们还可以帮助您跟踪资源状态并避免重复执行任务(例如两次安装同一软件包)。 

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

 

用 Ansible 进行置备

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

如果只是对每个部署的置备手动单独进行管理,就会难以跟踪更改和控制版本,也难免会出现错误和不一致。

自动化基础架构置备是整个应用运维生命周期自动化的第一步。 

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

您可以使用 Ansible playbook 来描述基础架构的理想状态,然后让 Ansible 进行置备。使用 playbook 编写基础架构,可确保您每次都能置备相同的环境。 

 

部署自动化

通过部署自动化,您能够使用自动化流程在测试环境和生产环境之间移动软件。这样就可以在整个软件交付周期实现可重复的可靠部署。

部署自动化是支持 DevOps 实践和管理 CI/CD 管道的重要环节。

如果开发团队以一种方式部署应用或配置环境,而运维团队以另一种方式部署和配置,则部署自动化就不能发挥作用。 

环境要实现自动化,需要保持一致。每种环境(包括生产环境)都应使用相同的部署过程。 

部署管道通常包含 3 个主要步骤(虽然可能还有更多步骤):构建、测试、部署。这个管道能够支持您实现部署流程自动化,并确保代码快速从提交移至部署。

Ansible 允许您从一个通用框架可靠一致地部署多层应用。您可以配置所需的服务,并使用 playbook 推送应用工件。

 

使用 Ansible 进行编排

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

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

Ansible 之类的工具可以帮助您编排服务器配置、管理以及应用部署。 

了解如何通俗易懂地解释编排

通过应用部署,您的每一个前端和后端服务、数据库、监控、网络和存储服务就能各就各位,发挥各自的作用,并有自己的配置和部署。而编排可确保其中每一步都能按照您的需要进行。

Ansible 会按照 playbook 中的编写顺序依次执行任务,从而实现编排,这样您就能确信应用部署过程会按照正确的顺序执行。 

 

网络自动化

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

即使基础技术已经突飞猛进,但网络管理几十年来仍然基本保持不变。网络通常都是手动构建、操作和维护。 

然而,传统手动网络配置和更新方法过于缓慢且容易出错,无法有效支持快速转换工作负载要求的需求。 

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

 

安全防护自动化 

安全防护自动化会运用自动化技术,在减少人工辅助的情况下执行各项任务,以集成安全流程、应用和基础架构。

自动化可以帮助您简化日常运维,并从一开始就将安全防护集成到流程、应用和基础架构中。通过全面部署安全防护自动化,甚至可以让因泄露而造成的平均损失降低 95%

而在安全防护流程中应用自动化,可以帮助您更快地识别、验证和上报威胁,而无需人工干预。 

如果安全事故发生,安全团队可以利用 Ansible 来快速、并行地修复整个环境中受影响的系统,并更快地对事件做出响应。

迈向 IT 安全防护自动化的 3 种方法

安全团队可以利用 Ansible 来配置一系列能够共享清单、playbook 或权限的作业,以实现检查或修复任务的完全自动化。

红帽 Ansible 自动化平台与第三方外部日志汇集服务集成,可以帮助安全团队发现趋势、分析基础架构事件、监控异常情况并将不相干事件关联起来。

 

参加 Ansible 培训

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

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

 

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

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

 

Ansible 入门基础:让所有任务都实现自动化

本网络研讨会重点介绍使用 Ansible 在红帽企业 Linux、Windows、云和网络设备等各种平台上自动执行任务的好处。内容涵盖如何自动执行管理任务,以及如何使用红帽 Ansible 自动化平台的高级功能来执行更复杂的任务。 

 

案例研究:微软如何建立 IT 自动化文化

在自动化技术的支持下,微软成功树立了一种跨团队协作的企业文化。

借助红帽 Ansible 自动化平台并与红帽咨询团队紧密合作,Microsoft 打造了一个标准化、集中式网络自动化环境,从而减少了重复性的常规工作,并大大降低了复杂性,同时也使得生产代码得以验证和重用。 

通过建立开发运维文化,Microsoft 团队现在可以专注于分享知识、建立技能和设计创新技术解决方案。

阅读完整的案例研究,详细了解 Microsoft 的成功故事。

 

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

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

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

红帽 Ansible 自动化平台还包括自动化分析,使运维团队成员能够分析运行 Ansible 自动化平台的不同团队的使用情况、正常运行时间和执行模式。

Ansible 自动化中枢是一个集中的存储库,专供用户发现和了解红帽支持的预置 Ansible 内容及 Ansible 认证合作伙伴内容,从而帮助用户更快上手。

此外,红帽 Ansible 自动化平台在 2020 年第 3 季度的“Forrester Wave™:基础架构自动化平台”中还被 Forrester Research 评为“领导者”

企业不仅需要具备轻松创建自动化的能力,而且需要能在项目和团队之间以适当的监管和控制水平来共享和重新使用自动化。 

有了适合的自动化解决方案,您就可以更快速地部署新的应用和服务,更有效地管理 IT 基础架构,同时还可以提高应用开发效率。

您需要的自动化利器

Red Hat Ansible Automation Platform

简单、无代理的平台,可用于大规模构建 IT 自动化。通过可视化控制面板、基于职能角色的访问控制等功能,集中并控制您的 IT 基础架构。

Ansible - 自出心裁,释放创新动力