使用自动安装时出现奇怪的问题,它会启动 cloud-init 并开始执行某项操作,但到达 subiquity/meta/status_get 后就失败了。
因此,我正在使用 ubuntu 20.04 移至 22.04 packer 1.9.1 部署 ubuntu-22.04.2-live-server-amd64.iso
cd_files = [
"./http/meta-data",
"./http/user-data"
]
cd_label = "cidata"
boot_wait = "2s"
boot_command = [
"<enter><wait><f6><wait><esc><wait>",
"linux /casper/vmlinuz ",
"<wait><enter>",
"initrd /casper/initrd",
"<wait><enter>",
"autoinstall",
"<wait><enter>",
"boot"
]
用户数据文件如下。(精简到基本内容)
#cloud-config
autoinstall:
version: 1
identity:
hostname: tf-edu-ubuntu
realname: builduser
username: builduser
password: "encrypted"
这是我遇到的错误。
任何帮助都会受到感激,即使只是为了获取更多的日志。
希望有人能遇到这个吗?那就开始吧。
更新向打包程序添加了一些日志并发现以下内容。
2023/07/21 09:12:13 packer-builder-vsphere-iso plugin: [INFO] Waiting for SSH, up to timeout: 2h46m40s
==> vsphere-iso.this: Waiting for SSH to become available...
2023/07/21 09:12:13 packer-builder-vsphere-iso plugin: [DEBUG] Error getting SSH config: SSH_AUTH_SOCK is not set
更新
由于 SSH 问题,我使用 putty 连接到服务器,但用户数据和 vSphere 配置中使用的用户名和密码不允许我连接。
我找到了隐藏的答案。这有效并启用了 cloudinit。
boot_command = [
"<down><down><down><end>",
" autoinstall ds=nocloud;",
"<F10>"
]
答案1
这boot_command
实际上是输入到控制台中的。您可以打开虚拟机的控制台并查看它是否发生。
为了简单起见,我假设<enter><wait><f6><wait><esc><wait>
进入 grub 命令行。对于你的情况,其余的boot_command
将在控制台中输入以下内容。
linux /casper/vmlinuz
initrd /casper/initrd
autoinstall
boot
您希望他们输入
linux /casper/vmlinuz autoinstall
initrd /casper/initrd
boot
屏幕截图告诉了你这一点。该autoinstall
参数不是内核命令行的一部分。调整你的boot_command
。