qemu-guest-agent 自动安装失败

qemu-guest-agent 自动安装失败

这是我在这里的第一篇帖子所以请耐心等待:)

我正在尝试使用 Packer(1.8.4) 在 Proxmox(7.2-11) 上构建 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 新 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>
    ...

相关内容