私は、以下の 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-data
とmeta-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"
]
...
}