
これはここでの最初の投稿ですので、しばらくお待ちください :)
Proxmox(7.2-11) で Packer(1.8.4) を使用して Ubuntu 20.04.5 イメージを構築しようとしています。subiquity を使用して qemu-guest-agent をインストールするまで、すべて正常に動作しているようです (IP の取得、HTTP 経由の cloud-init 構成の読み取り、インストールの開始、カーネルのインストール)。インストール コマンドの実行に失敗し、クラッシュ レポートが生成され、ターミナルを取得するために Enter キーを押すように求められます。20.04.4 ISO イメージの場合、Packer でまったく同じ構成を使用してすべて正常に動作します。
cloud-init 設定:
#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 の新しい 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
パッケージの一覧から削除すると、すべて正常に動作するようです。エラーシェル内で想定されるコマンドを実行しようとすると、qemu-guest-agent
そのパッケージをインストールしようとしているときに「が見つかりません」と表示されます。これが、Ubuntuでの自動サーバーインストールのドキュメントを読み直しているときに、この解決策を思いついた理由です。ドキュメンテーションターゲット マシンでコマンドを実行する場合、curtin in-target --target=/target --
ターゲット システム内でコマンドを実行する前に を追加する必要があると書かれています。この場合、ソースを更新して をインストールしたいのですqemu-guest-agent
が、意図したとおりに動作しました。ディレクティブを構成するなど、これに対してもっと良い解決策があるのではないかと思いますapt
。この回避策があなたのケースでも機能することを願っています...
答え2
私の環境でもあなたと非常によく似た問題が発生し、apt/snapd がインターネットにアクセスできるように企業プロキシを設定する必要があることが問題だと認識しました。
によると自動インストールリファレンスユーザーデータ ファイルに次の内容を追加する必要がありました。
autoinstall:
...
proxy: http://<proxy.url>:<port-number>
...