Ansible 自动化平台简介

您是 Ansible 的初学者吗? 本指南将简要介绍 Ansible,以及 Ansible 自动化平台的其他重要因素,包括 Ansible 架构、清单、模块和剧本。

如果您正在尝试了解 ansible 是什么以及它的核心功能是什么,那么本文适合您。

内容

  1. 介绍
  2. 什么是 Ansible?
  3. Ansible 架构
  4. Ansible 清单
  5. Ansible 模块
  6. Ansible 剧本
    1. 结论

介绍

您是否曾经在您的专业/个人环境中手动部署多个资源?

当我说“资源”时,它可以是从服务器、数据库、网络设备、Web 服务器等开始的任何东西。您知道手动为多个资源做所有事情的痛苦。

作为系统管理员,您可以高兴地说那些日子已经一去不复返了。 自动化工具的发明使所有系统管理员的生活变得轻松。

不仅系统管理,而且开发人员也使用自动化工具来自动化他们的部署管道。 一种这样的自动化工具是 能干!

今天,我将带您了解ansible 和ansible 中涉及的核心组件。

什么是 Ansible?

Ansible 是一种自动化工具,可用于技术堆栈的任何领域,如网络、数据库、服务器、应用程序部署、容器、安全性、云等。

它在配置管理、基础设施即代码、编排等领域发挥着重要作用。

Ansible 写在 Python,因此如果您是 Python 开发人员,那么在 Ansible 中创建自定义模块很容易。

Ansible 最初是由 迈克尔·德哈恩 后来在 2015 年被 Redhat 收购。 Ansible 是开源的,Redhat 也提供 ansible 的商业版本。

Ansible 架构

学习 ansible 的第一步是了解 Ansible 架构。

Ansible 引擎、库存、Playbooks 等组件的组合形成了 ansible 架构。

这是 Ansible 工作原理的图形说明:

Ansible 架构图

Ansible 跟随 无代理架构. 没有特殊的软件或客户端进程需要安装在所有客户端机器上才能进行通信和工作。

Ansible 用途 ssh 与所有客户端节点通信并使用任何端口的协议 ssh 正在侦听客户端节点。 这也是可定制的。 这样你就不需要打开任何专用于 ansible 的特殊端口。

ansible 中有两种类型的节点。 如果你想知道这个词是什么 "node" 指的是? 这只是一个 服务器 或者 工作站.

  • 主/控制器节点 – 您将安装 ansible 软件的节点。
  • 托管节点 – 将由 Ansible 管理的节点。

您可以将节点称为主节点和从节点,但坚持使用 ansible 行话,这是最佳实践。

从这一点上,我将提到 主节点 作为 控制器节点从节点 作为 受管节点 贯穿整篇文章。

Ansible 清单

Inventory 是您将托管节点主机/IP 信息提供给 ansible 的地方。 库存文件默认为 INI 格式,它还支持 YAML 格式。

当您提交 ansible-playbook 或 Adhoc 命令时,ansible 引擎将解析此清单文件并获取它想要使用的主机列表。

Ansible 模块

模块是用 python 编写的用于特定任务的程序。 当您运行 playbook 或 Adhoc 命令时,ansible 会将这个程序发送到所有托管节点。

让我们把 apt 例如模块。 这 apt 模块用于在基于 Debian 和 Ubuntu 的系统中管理软件包。

如果您提交剧本以在五个受管节点中安装软件包,则 apt 模块将被复制到所有受管节点和 apt 程序将被执行。

您也可以创建自己的模块,但大多数情况下会有可用的模块来满足您的需求。

Ansible 剧本

Ansible playbook 是您任务的蓝图。 剧本是写在 YAML 格式。 您将创建不同的任务,Ansible 将在托管节点中执行这些任务。

结论

这只是一篇简短的介绍性文章,可让您一瞥 Ansible 是什么及其架构。 有关更多详细信息,我建议您阅读最后给出的官方文档。

在我们即将发布的文章中,我们将深入探讨如何在 Linux 中设置和使用 Ansible。

接下来阅读:

  • 在 Linux 中安装和配置 Ansible

资源:

  • https://www.ansible.com/use-cases
  • https://www.ansible.com/overview/it-automation

AnsibleAnsible ArchitectureAnsible InventoryAnsible ModulesAnsible PlaybooksAutomationDevOpsAnsibleLinuxPythonRedhat简介