如何通过 Terraform 创建多个 VM?

joe*_*ang 0 azure terraform

我请求为不同的服务器创建多个 VM,例如:

{
  "type"   = "ansibleserver"
  "size"   = "Standard_DC2s"
  "count" = 2
},
{
  "type"   = "frontendserver"
  "size"   = "Standard_DC2s"
  "count" = 2
},
{
  "type"   = "backendserver"
  "size"   = "Standard_L8s_v2"
  "count" = 3
}
Run Code Online (Sandbox Code Playgroud)

对于所有 3 种服务器,我必须以不同的大小和数量创建它们,现在我只能以一种非常糟糕的方式来做到这一点:

resource "azurerm_virtual_machine" "ansibleserver" {
  count = "${lookup(var.ansibleserver, "count")}"

  name  = 
  ......
}

resource "azurerm_virtual_machine" "frontendserver" {
  count = "${lookup(var.frontendserver, "count")}"

  name  = 
  ......
}
Run Code Online (Sandbox Code Playgroud)

然后如果有新的需求进来,我不仅需要改变变量,还要改变脚本,太复杂了。有什么办法可以更体面地改变整个创建过程,比如代码中的for循环?

小智 5

参考链接中提到的建议,让我知道状态

这篇 GitHub文章应该可以帮助你

有关更多信息,您可以参考此链接中提到的建议。

你在看这样的事情:

resource "azurerm_virtual_machine" "server" {
  name                  = "server-${count.index}"
  count                 = "${var.instance_count}"
  …
  storage_os_disk {
    name              = "server-${count.index}-os"
    caching           = "ReadWrite"
    create_option     = "FromImage"
    managed_disk_type = "Standard_LRS"
  }
} 
Run Code Online (Sandbox Code Playgroud)

附加信息:azurerm_virtual_machine

需要通过 terraform 在 azure 中创建多个虚拟机

请让我们知道上述内容是否有帮助,或者您在此问题上需要进一步的帮助。