qemu-guest-agent 自動安裝失敗

qemu-guest-agent 自動安裝失敗

這是我在這裡的第一篇文章,所以請耐心等待:)

我正在嘗試在 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>
    ...

相關內容