以下是开始使用 IT 自动化工具 Ansible 所需了解的内容。

Opensource.com
Ansible 是一款软件工具,可为跨平台计算机支持提供简单而强大的自动化功能。它主要面向 IT 专业人员,他们使用它进行应用程序部署、工作站和服务器更新、云配置、配置管理、服务内部编排以及系统管理员每周或每天执行的几乎任何操作。Ansible 不依赖于代理软件,也没有额外的安全基础设施,因此易于部署。
由于 Ansible 完全关于自动化,因此它需要指令来完成每项工作。 由于所有内容都以简单的脚本形式编写,因此易于进行版本控制。这在实践中的结果是对 IT 领域“基础设施即代码”运动的重大贡献:即服务器和客户端基础设施的维护可以并且应该与软件开发同等对待,使用自文档化、经过验证且可执行的解决方案存储库,无论员工如何变动,都能够运行组织。
虽然 Ansible 可能处于自动化、系统管理和 DevOps 的前沿,但它对日常用户也很有用。Ansible 允许您一次配置不仅一台计算机,而且可能配置整个计算机网络,并且使用它不需要任何编程技能。为 Ansible 编写的指令是人类可读的。无论您是计算机新手还是专家,Ansible 文件都易于理解。
Ansible 的工作原理
在 Ansible 中,计算机分为两类:控制节点和被管理节点。控制节点是运行 Ansible 的计算机。必须至少有一个控制节点,尽管也可能存在备份控制节点。被管理节点是由控制节点管理的任何设备。
Ansible 的工作原理是连接到网络上的节点(客户端、服务器或您正在配置的任何内容),然后向该节点发送一个名为 Ansible 模块的小程序。Ansible 通过 SSH 执行这些模块并在完成后将其删除。此交互的唯一要求是您的 Ansible 控制节点具有对被管理节点的登录访问权限。SSH 密钥是提供访问权限的最常用方法,但也支持其他形式的身份验证。
Ansible 的作用
Ansible 模块这个术语听起来很复杂,但大部分复杂性都由 Ansible 处理,而不是用户处理。Ansible 模块被编写为系统所需状态的模型,这意味着每个模块都定义了在任何给定的被管理节点上应该为真的内容。例如,如果系统管理员决定组织中的所有工作站都应安装 LibreOffice X.Z 版本,那么 Ansible 的 软件包模块将确定每个节点上是否安装了 LibreOffice X.Z。如果 Ansible 发现某个被管理节点安装了 LibreOffice X.Y,则它会检测操作系统并运行必要的例程以将其更新到 LibreOffice X.Z。这样,组织中的每个工作站都可以在一夜之间更新为 IT 部门支持的软件。
[下载指南:面向系统管理员的 Ansible 自动化]
维护基础设施不仅仅是检查软件版本。当人们谈论使用 Ansible 时,他们真正指的是使用 Ansible 模块,因为这些模块是 Ansible 中执行特定任务的部分。如果您需要在多台计算机上自动化某些操作,请查看 Ansible 模块以找到处理您需要执行的任务的模块,然后安装 Ansible,以便您可以配置和调用该模块。如果您是程序员,您还可以编写自己的自定义模块来执行专门的任务。如果您的模块通常很有用,您也可以将其提交给 Ansible 项目以供包含,以便其他人可以从您的工作中受益。
Ansible Playbook
虽然模块提供了完成任务的手段,但您使用它们的方式是通过 Ansible Playbook。Playbook 是一个以 YAML 编写的配置文件,它 提供了将受管节点置于所需状态所需执行的操作的指令。 Playbook 旨在简单、人类可读且自文档化。它们也是幂等的,这意味着 Playbook 可以随时在系统上运行,而不会对其产生负面影响。如果 Playbook 在已正确配置且处于所需状态的系统上运行,则该系统在 Playbook 运行后仍应正确配置。
Playbook 可以非常简单,例如这个 Playbook,它以特权用户身份在 IT 部门 webservers 组中的任何节点上安装 Apache HTTP 服务器
---
- name: Apache server installed
hosts: webservers
become: yes
Playbook 也可以非常复杂,包含条件和变量。但是,由于大部分实际工作由 Ansible 模块完成,因此 Playbook 仍然简洁、可读且清晰,即使它们可以编排整个受管节点网络。
学习 Ansible
您可以通过在家中使用或在工作中使用来学习 Ansible。如果您是 YAML 新手,请花时间学习它,然后编写您的第一个 Playbook。如果您喜欢从小处着手,则可以在您的个人计算机上安装 Ansible,并使用它来管理自身或家庭网络上的几台计算机。最重要的是,尝试不同的模块,以便您可以轻松使用和配置新模块。它们是使您的节点符合您的基础设施设计的门户,而 Ansible 是使之成为可能的引擎。
[ 提升您的自动化专业知识。获取 Ansible 清单: 迁移到 Red Hat Ansible Automation Platform 2 的 5 个理由 ]