【问题标题】:Creating an Azure Linux VM with Ubuntu 20.04 with Terraform使用 Ubuntu 20.04 和 Terraform 创建 Azure Linux VM
【发布时间】:2022-10-02 19:44:35
【问题描述】:

我正在尝试使用 Ubuntu Server 20.04 LTS 映像在西欧 Azure 区域创建一个带有 Terraform 的 Linux VM。我可以在 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\"
}

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

  • 一种方法是开始手动部署 VM(在市场上搜索您想要的映像),然后导出 ARM 模板以查看映像的参数是什么。

标签: azure terraform azure-virtual-machine azure-marketplace


【解决方案1】:

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

offer                 = "0001-com-ubuntu-server-focal"
publisher             = "Canonical"
sku                   = "20_04-lts-gen2"

我在打包器中使用了这个,所以我猜它在 terraform 中是一样的,但你可以告诉我。

【讨论】:

  • 那行得通——谢谢:) 您还需要提供version,可以使用az vm image list 找到其选项。
  • 我很抱歉没有包括它,但正如我所说,我在打包器中使用了它,我不需要版本。我应该在我原来的帖子中提到这一点,但你似乎想通了,所以很高兴听到。
  • 不用担心 - 感谢您的帮助,非常感谢。我不知道为什么微软让它如此晦涩难懂!
  • @Johnny9 您的代码也可以在 terraform 块中正常工作。非必要无需添加打包机
【解决方案2】:

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

login to azure cli 并运行以下命令以根据您的需要列出所有现有 VM。

az vm image list --all --publisher="Canonical" --sku="20_04-lts-gen2"

你应该看到这样的输出:

{
"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"
  }

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

source_image_reference {
    publisher = "Canonical"
    offer     = "0001-com-ubuntu-server-focal"
    sku       = "20_04-lts-gen2"
    version   = "latest"
  }

对此->

source_image_reference {
    publisher = "Canonical"
    offer     = "0001-com-ubuntu-server-focal"
    sku       = "20_04-lts-gen2"
    version   = "20.04.202209200"
  }

如您所见,我使用了基于az 命令输出的版本。 享受地形

【讨论】:

    猜你喜欢
    • 2019-07-14
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 2020-07-26
    • 1970-01-01
    • 2019-07-28
    • 1970-01-01
    相关资源
    最近更新 更多