gpt4 book ai didi

azure - 如何设置虚拟机镜像详细信息,例如发行商、报价、SKU 和版本

转载 作者:行者123 更新时间:2023-12-03 01:36:39 25 4
gpt4 key购买 nike

我有一个 Terraform 脚本,它基于 Azure 市场中的此镜像在 Azure 上创建虚拟机: https://azuremarketplace.microsoft.com/en-us/marketplace/apps/gitlab.gitlab-ce

但我不知道如何识别要放入这些字段中的值:

  • 出版商
  • 报价
  • sku
  • 版本

这是 Terraform 脚本的片段

resource "azurerm_virtual_machine" "gitlab_vm" {
# ... other configuration

storage_image_reference {
publisher = "GitLab"
offer = "GitLab Community Edition"
# sku = "???"
version = "latest"
}

# ... other configuration
}

如果我使用 terraform plan 运行之前的详细信息,例如publisher = "GitLabXXX" (不存在的东西),那么 Terraform 不会引发任何错误。当我在一段时间后运行 terraform apply 时,会引发错误并且不会创建虚拟机资源(尽管创建了所有其他资源,例如网络资源)。

这与 Azure ARM 模板的应用方式类似:

"imageReference": {
"publisher": "[variables('pubName')]",
"offer": "[variables('offerName')]",
"sku" : "[parameters('skuName')]",
"version":"latest"
},

我有一些虚拟机正在启动并运行,其配置与我在互联网上找到的类似 Terraform 配置(请参阅下面的 Ubuntu 示例),但是将信息从 Azure Marketplace 网页转换为脚本的规则是什么?

  storage_image_reference {
publisher = "Canonical"
offer = "UbuntuServer"
sku = "16.04-LTS"
version = "latest"
}

最佳答案

可能有更有效的方法来执行此操作,但我通常使用 Azure CLI 来获取发布商、产品、SKU 和版本。首先,如果您执行以下操作:

az vm image list --offer GitLab -o table --all

您将收到包含优惠、发布商、SKU、URN 和版本的列表。在你的情况下,gitlab-ce 应该是这样的:

  • 发布者:gitlab
  • 优惠:gitlab-ce
  • SKU:gitlab-ce
  • 版本:1.0.4

我很确定 azurerm 提供程序只是使用这些值调用 ARM,因此它应该与您从 CLI 获得的值相匹配,尽管如果我弄错了,我当然可以纠正这一点。

您还需要添加 plan block 。可以通过 CLI 检索详细信息,如下所示:

az vm image show --location westus --urn gitlab:gitlab-ce:gitlab-ce:1.0.4 -o json

所以你的计划 block 看起来像这样:

plan {
name = "gitlab-ce"
publisher = "gitlab"
product = "gitlab-ce"
}

关于azure - 如何设置虚拟机镜像详细信息,例如发行商、报价、SKU 和版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57395138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com