Ubuntu 21.04/21.10 デスクトップでの Packer 自動インストール

Ubuntu 21.04/21.10 デスクトップでの Packer 自動インストール

私は、以下の HCL を使用して vSphere で Ubuntu Desktop 21.04 の Packer ビルドを自動化しようとしていました。その後、ここで説明されているように、少なくとも 21.10 "Impish" まではデスクトップ イメージでは動作しないことがわかりました。

https://discourse.ubuntu.com/t/refreshing-the-ubuntu-desktop-installer/20659/76?u=nathanto

他の人の役に立つように、元の質問を以下に示します。

重要な部分は、ブート コマンドが を定義する部分ですseedfrom。 がロードされないという意味では、これは機能しないようですuser-data。 VM が起動し、net.ifnames=0ブート コマンドからの引数が適用されます (インターフェイスの名前は ですeth0)。

ブート コマンドのロジックは、 を押してプロンプトcを表示しgrub>、以下に示すようにコマンドを入力することですboot_command

/proc/cmdlineブートコマンドが適切に適用されていることがわかります。

ただし、がロードされているという兆候は見られませんuser-data。ブート コマンドで表示される Web サーバーを、ブートされた VM から Firefox を使用して確認すると、ファイルuser-datameta-dataファイルが存在し、アクセス可能です。

これをデバッグする方法について何かアイデアをお持ちの方はいらっしゃいますか?

source "vsphere-iso" "dev_vm" {
  username            = var.vcenter_username
  password            = var.vcenter_password
  vcenter_server      = var.vcenter_server
  cluster             = var.vcenter_cluster
  datacenter          = var.vcenter_datacenter
  datastore           = var.vcenter_vm_datastore
  guest_os_type       = "ubuntu64Guest"
  insecure_connection = "true"
  iso_checksum        = "sha256:fa95fb748b34d470a7cfa5e3c1c8fa1163e2dc340cd5a60f7ece9dc963ecdf88"
  iso_urls            = ["https://releases.ubuntu.com/21.04/ubuntu-21.04-desktop-amd64.iso"]
  http_directory      = "./http"

  vm_name             = "dev_vm"
  CPUs                = 2
  RAM                 = 2048
  RAM_reserve_all     = true
  boot_wait           = "3s"
  convert_to_template = false
  boot_command        = [
    "c",
    "linux /casper/vmlinuz --- autoinstall ds='nocloud-net;seedfrom=http://{{.HTTPIP}}:{{.HTTPPort}}/' net.ifnames=0 ",
    "<enter><wait>",
    "initrd /casper/initrd<enter><wait>",
    "boot<enter>"
  ]
  network_adapters {
    network      = "xxx"
    network_card = "e1000"
  }
  storage {
    disk_size             = 40960
    disk_thin_provisioned = true
  }

  ssh_username = "xx"
  ssh_password = "xx"
  ssh_timeout  = "60m"
}

build {
  sources = [
    "source.vsphere-iso.dev_vm"
  ]
...
}

関連情報