Ansible - 简介


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

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

Ansible 使用 playbook 来描述自动化作业,而 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 playbook 和以最简单的方式编写的清单,在所有计算机上一次性安装 WebLogic/WebSphere。您所要做的就是在清单中列出节点的 IP 地址并编写剧本来安装 WebLogic/WebSphere。从您的控制机运行剧本,它将安装在您的所有节点上。

Ansible 是如何工作的?

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

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

Ansible 作品

上图中的管理节点是控制节点(管理节点),控制着playbook的整个执行。这是您运行安装的节点。库存文件提供需要运行 Ansible 模块的主机列表,管理节点进行 SSH 连接并在主机上执行小模块并安装产品/软件。

Ansible 的优点在于,一旦模块安装成功,它就会删除模块,它会连接到主机,执行指令,如果安装成功,则会删除在执行的主机上复制的代码。