Ansible - 简介



Ansible 是一款简单的开源 IT 引擎,可自动执行应用程序部署、服务间编排、云配置以及许多其他 IT 工具。

Ansible 易于部署,因为它不使用任何代理或自定义安全基础设施。

Ansible 使用剧本(playbook)来描述自动化作业,而剧本使用非常简单的语言,即 YAML(它是一种人类可读的数据序列化语言,通常用于配置文件,但也可以用于许多存储数据的应用程序),这对于人类来说非常容易理解、阅读和编写。因此,优势在于,即使是 IT 基础设施支持人员也可以阅读和理解剧本,并在需要时进行调试(YAML - 它以人类可读的形式存在)。

Ansible 旨在用于多层部署。Ansible 不会一次管理一个系统,而是通过描述所有系统之间的相互关系来建模 IT 基础设施。Ansible 完全无代理,这意味着 Ansible 通过 ssh(默认情况下)连接您的节点。但是,如果您希望使用其他连接方法,例如 Kerberos,Ansible 也为您提供了此选项。

连接到节点后,Ansible 会推送称为“Ansible 模块”的小程序。Ansible 在您的节点上运行这些模块,并在完成后将其删除。Ansible 在简单的文本文件中管理您的清单(这些是主机文件)。Ansible 使用主机文件,您可以在其中对主机进行分组,并可以在剧本中控制特定组的操作。

主机文件示例

这是主机文件的内容:

#File name: hosts
#Description: Inventory file for your application. Defines machine type abc
node to deploy specific artifacts
# Defines machine type def node to upload
metadata.

[abc-node]
#server1 ansible_host = <target machine for DU deployment> ansible_user = <Ansible
user> ansible_connection = ssh
server1 ansible_host = <your host name> ansible_user = <your unix user>
ansible_connection = ssh

[def-node]
#server2 ansible_host = <target machine for artifact upload>
ansible_user = <Ansible user> ansible_connection = ssh
server2 ansible_host = <host> ansible_user = <user> ansible_connection = ssh

什么是配置管理

就 Ansible 而言,配置管理意味着它通过记录和更新描述企业硬件和软件的详细信息来维护产品性能的配置。

此类信息通常包括已应用于已安装软件包的确切版本和更新,以及硬件设备的位置和网络地址。例如,如果您想在企业中的所有机器上安装新版本的 WebLogic/WebSphere 服务器,手动更新每台机器是不可行的。

您可以使用 Ansible 剧本和以最简单的方式编写的清单,一次性在所有机器上安装 WebLogic/WebSphere。您只需在清单中列出节点的 IP 地址,并编写一个剧本以安装 WebLogic/WebSphere。从您的控制机器运行剧本,它将在所有节点上安装。

Ansible 如何工作?

下图显示了 Ansible 的工作原理。

Ansible 的工作原理是连接到您的节点并向其推送称为“Ansible 模块”的小程序。Ansible 然后执行这些模块(默认情况下通过 SSH),并在完成后将其删除。您的模块库可以驻留在任何机器上,并且不需要任何服务器、守护程序或数据库。

Ansible Works

上图中的管理节点是控制节点(管理节点),它控制剧本的整个执行过程。它是您运行安装的节点。清单文件提供了需要在其中运行 Ansible 模块的主机列表,管理节点进行 SSH 连接并在主机机器上执行小型模块并安装产品/软件。

Ansible 的优势在于它在安装模块后将其删除,因此它有效地连接到主机,执行指令,如果成功安装,则删除复制到主机并执行的代码。

广告