
這是我在這裡的第一篇文章,所以請耐心等待:)
我正在嘗試在 Proxmox(7.2-11) 上使用 Packer(1.8.4) 建立 Ubuntu 20.04.5 映像。一切似乎都正常運作(獲取 IP、透過 HTTP 讀取 cloud-init 配置、啟動安裝、安裝核心),直到安裝了具有 subiquity 的 qemu-guest-agent。它無法運行安裝命令,產生崩潰報告並要求按 Enter 鍵以取得終端。對於 20.04.4 ISO 映像,在 Packer 中使用完全相同的配置一切都可以正常運作。
雲初始化配置:
#cloud-config
autoinstall:
version: 1
locale: en_US
keyboard:
layout: en
network:
version: 2
ethernets:
ens18:
dhcp4: true
ssh:
install-server: true
allow-pw: false
disable_root: true
ssh_quiet_keygen: true
allow_public_ssh_keys: true
packages:
- qemu-guest-agent
- sudo
storage:
swap:
size: 0
config:
- {ptable: gpt, path: /dev/vda, preserve: false, name: '', grub_device: true, type: disk, id: disk-vda}
- {type: partition, number: 1, device: disk-vda, flag: bios_grub, size: 1M, id: vda-grub}
- {type: partition, number: 2, device: disk-vda, flag: boot, size: 1G, id: vda-boot}
- {type: partition, number: 3, device: disk-vda, size: -1, id: vda-lvm}
- {type: lvm_volgroup, name: vg-ubuntu, devices: [vda-lvm], id: vg-ubuntu}
- {type: lvm_partition, volgroup: vg-ubuntu, id: lv-root, name: lv-root, size: -1}
- {type: format, fstype: ext4, volume: vda-boot, id: vda-boot-fs}
- {type: format, fstype: xfs, volume: lv-root, id: lv-root-fs}
- {type: mount, path: /, id: m-root, device: lv-root-fs}
- {type: mount, path: /boot, id: m-boot, device: vda-boot-fs}
user-data:
package_upgrade: true
timezone: Europe/Bucharest
users:
- name: devops
groups: [adm, sudo]
lock-passwd: false
sudo: ALL=(ALL) NOPASSWD:ALL
shell: /bin/bash
# passwd: your-password
ssh_authorized_keys:
- MyPublicKey
我不知道這是否來自 Ubuntu new iso 或 Packer,但由於相同的配置適用於 20.04.4,我認為它來自上一個版本中包含的新內容。
有人有相同的想法或經驗嗎?
預先感謝您的回答!
答案1
顯然,我找到了解決您問題的創可貼...
我不確定它是否適合您,或者我們是否可能在qemu-guest-agent
返回時遇到相同的問題Error 100
。
這是我的解決方法:
我剛剛late-commands
在我的文件中添加了一個指令user-data
,它將在事後運行apt-get update
和安裝。qemu-guest-agent
這是以下的片段user-data
:
#cloud-config
autoinstall:
...
late-commands:
- curtin in-target -- apt-get update
- curtin in-target -- apt-get install qemu-guest-agent
...
我更深入地研究了這個問題,以了解它失敗的原因。顯然,刪除qemu-guest-agent
到包列表可以使一切正常工作。當我嘗試在錯誤 shell 中執行假定的命令時,它qemu-guest-agent
在嘗試安裝該軟體包時提到「未找到」。這就是為什麼我在重新閱讀 ubuntu 中自動伺服器安裝文件時提出了這個解決方案。根據文件關於在目標電腦上執行命令,那裡寫著您應該curtin in-target --target=/target --
在任何命令之前添加它才能在目標系統內運行。在這種情況下,我想更新來源並安裝qemu-guest-agent
,並且它按預期工作。我確實覺得可以有更好的解決方案,例如配置apt
指令等。希望這個解決方法適用於您的情況...
答案2
我在我的環境中看到了與您非常相似的問題,並意識到我的問題是我需要設定我的公司代理以允許 apt/snapd 訪問互聯網。
根據自動安裝參考我需要將以下內容新增到我的用戶資料檔案中:
autoinstall:
...
proxy: http://<proxy.url>:<port-number>
...