使用 Ubuntu 20.04 和 Terraform 创建 Azure Linux VM

Xop*_*ter 17 azure azure-marketplace azure-virtual-machine terraform

我正在尝试在西欧 Azure 区域使用 Terraform 创建一个 Linux VM,并使用 Ubuntu Server 20.04 LTS 映像。我可以在 Azure 门户中很好地完成此操作,但 Terraform 抱怨该图像不存在:

平台映像“Canonical:UbuntuServer:20.04-LTS:latest”不可用。

确实,az vm image list --location westeurope证实了这一点;18.04 LTS 存在,但没有 20.04 LTS。

我正在使用该azurerm_linux_virtual_machine资源,内容如下source_image_reference

source_image_reference {
  publisher = "Canonical"
  offer     = "UbuntuServer"
  sku       = "20.04-LTS"  # FIXME SKU doesn't exist in westeurope
  version   = "latest"
}
Run Code Online (Sandbox Code Playgroud)

我对此完全困惑!如何在 Terraform 中访问 Azure 市场中的图像?我已经看到plan需要该块的建议,但不知道(也没有找到任何文档)如何配置它。

小智 32

当我发现它可用但以不同的名称命名时,我一开始也很困惑,它确实有点隐藏。

offer                 = "0001-com-ubuntu-server-focal"
publisher             = "Canonical"
sku                   = "20_04-lts-gen2"
Run Code Online (Sandbox Code Playgroud)

我使用了这个内部打包机,所以我猜测它在 terraform 中是相同的,但你可以让我知道。

  • 这有效 - 谢谢:)您还需要提供“版本”,可以通过“az vm image list”找到其选择。 (2认同)

小智 15

对于其他遇到此问题并尝试过上述方法但仍然发现没有帮助的人。这是对上面答案的补充:

登录到 azure cli 并运行以下命令,根据您的需要列出所有现有的 VM。

az vm image list --all --publisher="Canonical" --sku="20_04-lts-gen2"
Run Code Online (Sandbox Code Playgroud)

您应该看到如下输出:

{
    "architecture": "x64",
    "offer": "0001-com-ubuntu-server-focal",
    "publisher": "Canonical",
    "sku": "20_04-lts-gen2",
    "urn": "Canonical:0001-com-ubuntu-server-focal:20_04-lts-gen2:20.04.202209050",
    "version": "20.04.202209050"
},
{
    "architecture": "x64",
    "offer": "0001-com-ubuntu-server-focal",
    "publisher": "Canonical",
    "sku": "20_04-lts-gen2",
    "urn": "Canonical:0001-com-ubuntu-server-focal:20_04-lts-gen2:20.04.202209200",
    "version": "20.04.202209200"
}
Run Code Online (Sandbox Code Playgroud)

就我而言,我的版本有问题。在这种情况下,必须更改我的代码......

source_image_reference {
    publisher = "Canonical"
    offer     = "0001-com-ubuntu-server-focal"
    sku       = "20_04-lts-gen2"
    version   = "latest"
 }
Run Code Online (Sandbox Code Playgroud)

...对此:

source_image_reference {
    publisher = "Canonical"
    offer     = "0001-com-ubuntu-server-focal"
    sku       = "20_04-lts-gen2"
    version   = "20.04.202209200"
 }
Run Code Online (Sandbox Code Playgroud)

如您所见,我使用了基于命令输出的版本az

享受地形