如何更新 Azure 中现有的管理打包程序映像?

如何更新 Azure 中现有的管理打包程序映像?

我已经按照以下代码创建了一个 ubuntu 镜像

{
  "builders": [{
    "type": "azure-arm",

    "subscription_id": "XXXXXX",XXXXXXXX
     "client_id":  "XXXXXXX",
     "client_secret": "06XXXXXXX",
     "tenant_id":  "41X",XXXXXX

    "managed_image_resource_group_name": "myResourceGroup",
    "managed_image_name": "myubuntuPackerImage1234",

    "os_type": "Linux",
    "image_publisher": "Canonical",
    "image_offer": "UbuntuServer",
    "image_sku": "16.04-LTS",


    "location": "East US",
    "vm_size": "Standard_DS2_v2"
  }],
  "provisioners": [{
    "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} sudo -E sh '{{ .Path }}'",
    "inline": [
      "apt-get update",
      "apt-get upgrade -y",
      "apt-get -y install nginx",

      "/usr/sbin/waagent -force -deprovision+user && export HISTSIZE=0 && sync"
    ],
    "inline_shebang": "/bin/sh -x",
    "type": "shell"
  }]
}

打包程序构建 ubuntu.json

它将成功构建并且输出将是

OSType: Linux
ManagedImageResourceGroupName: myResourceGroup
ManagedImageName: packerimagewin2019up
ManagedImageId: /subscriptions/XXXXXXXXXX/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/myubuntuPackerImage1234
ManagedImageLocation: eastus

我找到了一个 PR -https://github.com/hashicorp/packer/issues/3785但是在管理磁盘的情况下如何获取 URL?

如果我运行az image list它,它不会显示 .vdf blob url,我如何使用上述输出在现有图像 myubuntuPackerImage1234 上创建新的更新?

答案1

据我了解,您想使用之前用 Packer 创建的图像作为再次运行 Packer 的源图像,对吗?

您引用的示例不起作用,因为此示例使用打包程序来创建基于 VHD 的磁盘映像(这是较旧的方法),而您使用的是托管映像/磁盘,因此没有与 VHD 相同的 URL。

据我所知,将现有托管图像与打包程序结合使用的唯一方法是将此图像发布到共享图像库(您可以手动执行此操作,也可以将其作为打包程序构建的一部分)。然后,您可以使用标签和 shared_image_gallery 设置从库中引用此图像。

或者,您可以将源映像创建为 VHD,然后使用 URL,但随后您将回到旧方法。

相关内容