在以下教程中,我们将了解Ansible以及它的优势,以及如何在Python中使用Ansible。

介绍Ansible

Ansible是一种开源平台或自动化工具,用于执行IT任务,如部署应用程序、管理配置、编排内部服务和提供服务。随着时间的推移,自动化变得越来越重要,随着信息技术领域的复杂环境经常需要快速扩展,开发人员和系统管理员需要手动执行每个功能,自动化有助于简化复杂的任务,使开发人员的工作变得更加可管理。它还允许开发人员专注于为组织增加价值的其他活动。换句话说,自动化通过释放时间来增加效率。正如上面所述,Ansible是自动化时代迅速崛起的工具之一。

什么是Ansible?

  1. Ansible是一种基于推送的基础设施即代码(IaC),提供了一个用户友好的领域特定语言,以便我们可以以声明性方式根据需要定义体系结构。
  2. 推送式的术语意味着Ansible使用SSH在执行Ansible的机器和应用配置的机器之间进行通信。
  3. 使用Ansible配置的机器我们喜欢称之为受控节点Ansible主机。在Ansible术语中,主机列表称为清单
  4. 读取定义文件并执行Ansible以将配置推送到主机的机器称为控制节点
  5. Ansible是用Python编写的,学习曲线相对较小。设置Ansible的过程非常简单,不依赖于任何额外的应用程序、服务器或客户端守护程序。
  6. Ansible基于系统的相互关系和架构的原则。与用于管理配置的其他工具(如Puppet、ChefSalt)一样,它与两种类型的服务器一起工作:控制机器和节点。
  7. Ansible使用称为Ansible模块的小程序来编排节点。这些模块是通过SSH执行的所选系统状态的资源模型。我们不需要任何代理程序和额外的自定义安全基础设施来实现此目的。
  8. 模块库可以存在于任何机器上。模块使用JSON协议通过标准输出执行任务,并以任何编程语言编写方便的代码,包括Python。
  9. 该系统使用Ansible剧本格式中的YAML来描述自动化的工作。这样,它既适用于机器,也适用于人类。当节点未由Ansible管理时,它不会消耗资源,因为后台既不运行程序也不运行守护程序。

Ansible的一些优势

作为强大的自动化引擎,Ansible帮助开发人员更高效地部署软件。我们可以避免代理、自定义代码或自定义脚本,并主要关注安全性、易审计性、审查和内容的重写。Ansible在与用于软件自动化的类似平台相比有许多优势。以下是其中一些优势的描述:

  1. 简单性: Ansible提供了简单性,因为开发人员不需要编写脚本或自定义代码来部署应用程序和更新它们。它允许以接近普通英语的语言进行自动化。开发人员、系统管理员和IT经理可以轻松阅读、管理和加速他们的项目和程序。
  2. 完整性: Ansible还提供了完整性,因为它与不同复杂的工具结合在一起,用于管理配置、部署应用程序、编排工作流,甚至云提供。模块帮助自动化几乎一切,不需要额外的应用程序。
  3. 安全性: Ansible使用SSH,因此它不会向节点部署容易受攻击的代理程序,也不需要在根级或额外端口上运行守护程序。Ansible提供无代理环境,有助于提高安全性,并且可以用作非根用户。Ansible支持操作系统的内置身份验证,支持LDAP、SSSD和Kerberos。

了解Ansible目的的Python API

我们可以使用Ansible的应用程序编程接口(API)使用Python调用Ansible代码。Ansible已发布其API的2.0版本,允许更好地与不同的编程语言集成。需要注意的重要方面是,Ansible已扩展其功能以支持Python开发;但是,它的网站上也提到,它可能根据自己的决定(在当前API版本中创建或修复错误)停止支持API框架。

开发人员可以使用不同的方法从API角度利用Ansible。我们可以使用Python的Ansible API来控制节点。我们可以扩展Ansible以响应Python中的不同事件,编写插件以及来自外部数据源的插件库数据。

注意:这个API是为Ansible的内部使用而设想的。Ansible可以随时更改此API,可能会破坏与较旧版本API的向后兼容性。因此,Ansible不支持Python API的任何外部使用。如果我们只想使用Python API来执行模块或剧本,首先考虑使用ansible-runner。

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程