并行触发多个 Azure DevOps 管道,以使用相同的 Terraform 模块在 Azure 上创建 VM



例如,我有terraform模块来在Azure上创建虚拟机,当我触发管道时,它就可以工作。

但是当我两次触发Pipeline时,它无法创建两个VM。如何操作地形状态文件?我能想到的唯一方法是在不同的代理中运行两个多管道,这可行吗?

我们所做的是创建地形"普通的";模块(基本上是一个包含tf文件的子目录(,我们用不同的参数多次将其源到地形环境中。

我们通常把这些放在一个有循环的列表中。

在您的环境中地形:

locals {
azure_vms = [
{ name = "vm1", size = "Standard_B2s" },
{ name = "vm2", size = "Standard_B4s" }
]
}
module "my_azure_vm" {
source   = "./common/my_azure_vm"
for_each = { for vm in local.azure_vms : vm.name => vm }
size = each.value.size
name = each.value.name
}

在常见的my_azure_vm中,您可以定义大小和名称的输入,然后使用这些输入创建带有标准参数的vm。

最新更新