아래 HCL을 사용하여 vSphere에서 Ubuntu Desktop 21.04의 Packer 빌드를 자동화하려고 했습니다. 그 이후로 나는 이것이 최소한 21.10 "Impish"까지 데스크탑 이미지에서 작동하지 않는다는 것을 알게 되었습니다.
https://discourse.ubuntu.com/t/refreshing-the-ubuntu-desktop-installer/20659/76?u=nathanto
원래 질문은 다른 사람들을 돕기 위해 아래에 있습니다.
핵심 부분은 boot 명령이 seedfrom
. user-data
로드되지 않는다는 점에서는 작동하지 않는 것 같습니다 . VM이 부팅되고 net.ifnames=0
boot 명령의 인수가 적용됩니다(인터페이스 이름은 eth0
).
부팅 명령의 논리는 키를 눌러 프롬프트 c
로 이동한 grub>
다음 아래와 같이 명령을 입력하는 것입니다 boot_command
.
/proc/cmdline
boot 명령이 제대로 적용되었음을 알 수 있습니다 .
그래도 로드되었다는 표시는 없습니다 user-data
. 부팅된 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"
]
...
}