容器实例化期间 LXC 配置文件自定义更改被忽略

容器实例化期间 LXC 配置文件自定义更改被忽略

我需要所有容器自动升级软件包、安装 build-essential 并加载 ssh 密钥,以便在启动后立即使用该密钥在容器内进行 ssh 操作。但是,即使在自定义更改配置文件并使用所述升级的配置文件启动新容器后,所有功能均未正确加载。没有 ssh 密钥可以进行 ssh 操作,也没有软件包升级。我做错了什么?

我的个人资料如下:

config:
  user.user-data: |
    #cloud-config
    ssh_authorized_keys:
      - <key>
    package_update: true
    packages:
      - build-essential
description: Default LXD profile
devices:
  eth0:
    name: eth0
    network: lxdbr0
    type: nic
  root:
    path: /
    pool: default
    type: disk
name: production
used_by:
- /1.0/instances/server

容器启动命令:

lxc launch --profile production images:ubuntu/focal server

我正在使用 Ubuntu 20.04 和 lxc 4.23

答案1

几年前,当我使用 cloud-init 自动执行安装时,我也遇到过同样的问题。

问题是图像“ubuntu/focal”不包含 cloud-init 包,这意味着您的用户数据被忽略。

解决方法是使用图像的“云”变体,例如 ubuntu/focal/cloud。

例如

lxc launch --profile production images:ubuntu/focal/cloud server

我确信您知道您可以使用它检查新实例中 cloud-init 的进度cloud-init status,日志将位于带有 cloud-init 前缀的 /var/log 中。

相关内容