Ansible 简介
Ansible 是一个简单的开源IT引擎,可以自动化应用部署、内部服务编配、云端供应等许多其他IT工具。
Ansible易于部署,因为它不使用任何代理或定制的安全基础设施。
Ansible使用playbook描述自动化作业,playbook使用非常简单的语言,即 YAML (它是一种可读性强的数据序列化语言,并且通常用于配置文件,但也可以用于许多存储数据的应用程序中),这非常容易让人理解、读写。因此,优势是即使是IT基础设施支持人员也可以阅读和理解playbook,并在需要时进行调试(YAML – 它以人类可读的形式存在)。
Ansible专为多层部署而设计。Ansible不是逐个管理系统,而是通过描述所有系统的相关性来建模IT基础设施。Ansible是完全无需代理的,这意味着Ansible通过ssh(默认情况下)连接您的节点来工作。但是,如果您想使用其他连接方法(如Kerberos),Ansible也提供了这个选项。
连接到您的节点后,Ansible会推送名为“Ansible模块”的小程序。Ansible在节点上运行这些模块,并在完成后将其删除。Ansible使用简单的文本文件(这些是主机文件)来管理您的存货清单。Ansible使用主机文件来对主机进行分组,并在playbooks中控制特定组上的操作。
示例主机文件
这是主机文件的内容 –
#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。从控制机上运行playbook,它会在所有节点上安装。
Ansible的工作原理
下图显示了Ansible的工作原理。
Ansible通过连接到您的节点并将称为”Ansible模块”的小程序推送给它们来工作。然后,Ansible执行这些模块(默认情况下通过SSH),并在完成后将它们移除。您的模块库可以驻留在任何机器上,不需要服务器、守护进程或数据库。
在上面的图片中,管理节点是控制节点(管理节点),它控制着整个剧本的执行。它是您运行安装的节点。清单文件提供了需要运行Ansible模块的主机列表,管理节点通过SSH连接在主机机器上执行小模块并安装产品/软件。
Ansible的优点是一旦这些模块安装完成,就会将其删除,因此它有效地连接到主机机器,执行指令,如果成功安装则删除在主机机器上复制的代码。