使用 Jenkins 进行 Azure 配置

Azure provisioning with Jenkins

作为 QA 管道的一部分(在 Jenkins 中),目标是自动为 运行 QA 测试提供和配置 VM。

Jenkins 管道可以触发 Terraform 代码来自动配置 VM 和 ansible 代码来配置 VM,但是,回滚错误处理 并不容易,除非我们使用一些特定于供应商的模板,例如 AzureResourceManager 模板。

那么,对于 Jenkins 管道,在 Azure 云中供应和配置 VM 的最佳方法应该是什么?我们为 jenkins 管道编写管道脚本...

由于目标是了解自动配置和配置 VM 以进行 运行 QA 测试的最佳方法,因此我将通过在其中利用 Azure CLI 命令来使用简单的 jenkins 管道脚本。 准确地说,我只是将 Azure 服务主体添加到 Jenkins 凭证。然后通过使用 'withCredentials([azureServicePrincipal('SERVICEPRINCIPALCREDENTIALID')])' 然后使用 'sh 编写简单的 Jenkins 管道脚本' 部分以使用 Azure CLI 命令来预配和配置 VM。与此相关的说明可以参考https://docs.microsoft.com/en-us/azure/jenkins/execute-cli-jenkins-pipeline#add-azure-service-principal-to-jenkins-credential.

关于使用 Jenkins 管道触发 Ansible 代码(使用或不使用 ARM 模板)的方法时的回滚和错误处理等问题,该方法可以自动将 VM 供应和配置到 运行 QA 测试,(您可能已经意识到这一点,但想让您知道)对于某些类型的任务,您可以编写可以利用错误处理功能的自定义模块,并且在少数情况下您可以利用 'failed_when' 选项。您还可以利用 'blocks' 功能,通过它您可以定义一组要在 rescue: 部分中执行的任务。这个 'blocks' 功能应该特别有助于使我们能够回滚事情。

希望对您有所帮助!! :)