Ansible 是什么?
Ansible 是一个开放源代码的 DevOps 工具,可以帮助企业进行配置管理,部署,配置等。它利用 SSH 在服务器之间进行通信。它使用playbook描述自动化作业,并且 playbook 使用非常简单的语言YAML。
Ansible 为您的 IT 基础架构提供可靠性,一致性和可伸缩性。您可以使用 Ansible 自动执行数据库,存储,网络,防火墙的配置。它确保服务器上所有必需的程序包和所有其他软件都一致,以运行该应用程序。
Ansible 特点
- Agentless:这意味着没有像其他解决方案(如 pubpet 和 chef)那样管理节点的软件或代理。
- Python:建立在python之上,它是当今世界上功能强大的快速编程语言之一。
- SSH:非常简单的无密码网络身份验证协议,很安全。因此,您的责任是将此密钥复制到客户端
- Push architecture:将必要的配置推送给它们(客户端)。您所要做的就是写下这些配置(playbook),然后将它们一次推送到各个节点。您将看到在几分钟之内将更改推送到数千台服务器的强大功能。
- Setup:使它正常工作所需的最低要求和配置。
Ansible 架构
- Ansible:Ansible 核心程序;
- Host Inventory:记录由 Ansible 管理的主机信息,包括端口、密码、ip等;
- Playbooks:“剧本” YAML 格式文件,多个任务定义在一个文件中,定义主机需要调用哪些模块来完成的功能;
- Core Modules:核心模块,主要操作实通过调用核心模块来完成管理任务;
- Custom Modules:自定义模块,完成核心模块无法完成的功能,支持多种语言;
- Connection Plugins:连接插件,Ansible 和 Host 通信使用。
Ansible 如何工作?
Ansible 通过连接到节点并推出称为 ansible 模块的小程序来工作。 然后,Ansible 默认通过 SSH 执行这些模块,然后在完成后将其删除。
Ansible 管理节点是控制节点,它控制 Playbook 的整个执行。 它是您要从中运行安装的节点,清单文件提供了需要在其中运行模块的主机的列表。 管理节点建立 ssh 连接,然后在主机上执行模块并安装产品。 一旦安装了模块,它将删除这些模块。 这就是 ansible 的运作方式。