Ansible - 简介

Ansible 是一个简单的开源IT引擎,可以自动化应用程序部署,内部服务编排,云配置和许多其他IT工具.

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

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

Ansible专为多层设计部署. Ansible不管理一个系统,它通过描述所有系统相互关联来建模IT基础架构. Ansible是完全无代理的,这意味着Ansible通过ssh连接你的节点(默认情况下).但是如果你想要其他连接方法(如Kerberos),Ansible会为你提供该选项.

连接到你的节点后,Ansible推送名为"Ansible Modules"的小程序. Ansible在您的节点上运行该模块,并在完成后删除它们. Ansible以简单的文本文件管理您的库存(这些是hosts文件). Ansible使用hosts文件,其中可以对主机进行分组,并可以控制剧本中特定组的操作.

示例主机文件

这是hosts文件的内容 :

#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 playbooks和以最简单的方式编写的库存,在所有计算机上一次性安装WebLogic/WebSphere.您所要做的就是列出清单中节点的IP地址,并编写一个playbook来安装WebLogic/WebSphere.从您的控制机器上运行剧本&它将安装在你的所有节点上.

Ansible如何工作?

下图给出了Ansible的工作原理.

Ansible工作通过连接到您的节点并推出名为" Ansible 模块"的小程序. Ansible 然后执行这些模块(默认情况下通过SSH),并在完成后删除它们.您的模块库可以驻留在任何计算机上,并且不需要服务器,守护程序或数据库.

 Ansible Works

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

Ansible的Beauty 是它在安装模块后删除模块,因此它有效地连接到主机,执行指令,如果成功安装,则删除在执行的主机上复制的代码