Azure 管道到 Ansible AWX

Azure Pipeline to Ansible AWX

我们使用 Azure Pipeline 来实现我们的持续集成管道。该应用程序部署在我们需要供应和配置的虚拟机中。在将代码放入目标 VM 之前,我们需要在目标 VM 上部署各种库、补丁、配置和应用程序。

问题是供应和配置这些虚拟机的最佳工具是什么?我在考虑使用 Ansible AWX。基本上 Azure Pipeline 会调用 AWX API,然后它会从那里获取它并完成事情。

有一个 Azure Pipeline Extension 允许我执行剧本 https://github.com/microsoft/azure-pipelines-extensions/blob/master/Extensions/Ansible/Src/readme.md。但我想改用 AWX,以便我的 ansible/deployment 代码与我的管道分离。

有什么建议吗?

据我所知,Ansible 允许您在您的环境中自动部署和配置资源。它可以满足您的需求。

如您所说,Azure Pipeline 支持 运行 Ansible 任务中的剧本 (Ansible extension)。

所以我觉得你可以直接在azure管道中完成VM ConfigurationCode Deployment

如果要将这两个步骤分开,可以将它们拆分为两个管道(VM 配置和代码部署)。为避免混淆配置和部署代码,您还可以将它们拆分为两个存储库。

另一方面,如果你运行 azure pipeline中的playbook,azure pipeline也支持添加任务来更改playbook中的参数(例如Replace Token)。

这里是an operation guide about using Ansible in Azure Pipeline

顺便说一下,如果虚拟机是 Azure VM,您还可以使用 ARM template 更新 Azure VM 资源。

就我个人而言,我会放弃 AWX 要求。它是其他需要管理和维护的东西,也是一个完全独立的界面。相反,只需在一个地方完成整个管道...... azure devops。选择一个或另一个。 Tower 没有内置的源代码控制,所以我推荐 ADO 而不是它,但它们都是 运行 ansible,并且它们都将在您自己的控制节点上执行。没有理由使用其他工具采取额外的步骤。它增加了太多的复杂性。