在下面的教程中,我们将了解 Ansible 及其优点,以及如何在 Python 中使用 Ansible。
Ansible 简介
Ansible 是一个开源平台或自动化工具,用于执行信息技术任务,如部署应用、管理配置、协调服务内和资源调配。自动化是久而久之的关键所在,信息技术的环境非常复杂,如果开发人员和系统管理员必须手动执行每一项功能,他们往往需要过快地扩展,以便协同工作。自动化有助于简化复杂的任务,并使开发人员的工作更易于管理。它还允许开发人员将注意力集中在包含组织价值的其他活动上。换句话说,自动化通过释放时间来提高效率。如上所述,Ansible 是自动化时代迅速崛起的工具之一。
什么是 Ansible?
- Ansible 是一种基于推送的基础设施即代码(IaC) ,它提供了一种用户友好的特定于领域的语言,因此我们可以根据需要以声明的方式定义架构。
- 术语“基于推送”表示 Ansible 利用 SSH 在执行 Ansible 的机器和应用配置的机器之间进行通信。
- 我们喜欢配置的使用 Ansible 的机器被称为受管节点或 Ansible 主机。就 Ansible 而言,主机列表被称为清单。
- 读取定义文件并执行 Ansible 以将配置推送到主机的机器称为控制节点。
- Ansible 是用 Python 编程语言编写的,学习曲线非常小。设置 Ansible 的过程非常简单,不依赖任何额外的应用、服务器或客户端守护程序。
- Ansible 基于包含系统的相互关系和体系结构的原则。像其他用于管理配置的工具(如木偶、厨师或盐)一样,它与两种类型的服务器一起工作:控制机器和节点。
- Ansible 使用称为 Ansible 模块的小程序来编排节点。这些模块是通过 SSH 执行的所选系统状态的资源模型。为此,我们不需要任何代理和额外的定制安全基础设施。
- 模块库可以存在于任何机器中。这些模块在标准输出上使用 JSON 协议执行任务,并用任何编程语言(包括 Python)编写方便的代码。
- 该系统利用 Ansible 剧本格式的 YAML 来描述自动化工作。这样,它对机器和人类都很友好。当节点不是由 Ansible 管理时,它不会消耗资源,因为程序和守护进程都没有在后台运行。
Ansible 的一些好处
作为一个强大的自动化引擎,Ansible 帮助开发人员更高效地部署软件。我们可以避免代理、自定义代码或自定义脚本,主要关注内容的安全性、易用性、审查和重写。与用于软件自动化的类似平台相比,Ansible 有许多优势。下面描述了其中的一些优点:
- 简单性: Ansible 提供了简单性,因为开发人员不需要为应用的部署和更新编写脚本或定制代码。它允许以接近简单英语的语言实现自动化。开发人员、系统管理员和信息技术经理很容易阅读、管理和加快他们的项目和程序。
- 完整性: Ansible 还提供了完整性,因为它与不同的复杂工具相结合,用于在单个系统中管理配置、部署应用、编排工作流,甚至云资源调配。模块有助于自动化几乎所有现成的东西,并且不需要额外的应用。
- 安全性: Ansible 利用 SSH,因此它不会将易受攻击的代理部署到节点,也不需要根级或额外端口上的守护程序。ans sibs 提供了一个无代理环境,有助于提高安全性,并且可以作为非根用户使用。可扩展功能内置操作系统身份验证,支持 LDAP、SSSD 和 Kerberos。
理解 Python API 的潜在用途
我们可以使用 Ansible 的 API(API)使用 Python 调用 Ansible 代码。Ansible 发布了其 API 的 2.0 版本,允许与不同编程语言更好地集成。值得注意的是,Ansible 已经扩展了它的功能,以便在 Python 的帮助下支持开发;但是,其网站上也提到,也可以根据自己的判断停止支持 API 框架(创建甚至修复当前版本 API 中的一个 bug)。
从 API 的角度来看,开发人员可以使用不同的方法来利用 Ansible。我们可以利用 Python 编程语言的 Ansible API 来控制节点。我们可以在 Python 中扩展 Ansible 来响应不同的事件,编写插件和来自外部数据源的插件清单数据。