如何在自动安装期间禁用无人值守升级(用户数据、云配置)

lun*_*tig 6 user-data 20.04

是否有选项可以在自动安装会话期间抑制(或转发)自动无人值守软件包升级?当我们在本地配置了 ubuntu 镜像时,我不想为每个客户端从互联网站点下载大量数据。谢谢

And*_*her 5

当您将自动安装与 Ubuntu live 服务器安装程序 ( subiquity ) 一起使用时,没有内置选项来禁用软件包更新。有一个updates键,但唯一可用的选项securityall

然而,我发现了一些可以有效跳过更新的方法。我仅使用 22.04 安装程序测试了这些方法。

方法1

此方法使用apt_preferences来降低安全存储库中包的优先级。这会导致安全存储库中的所有包在更新期间被忽略。apt_preferences 配置被删除late-commands。这种方法的缺点是安装其他 apt_preferences 比较困难。

user-data以下是此方法的文件片段。

#cloud-config
autoinstall:
  updates: security
  apt:
    preferences:
      - package: "*"
        pin: "release a=jammy-security"
        pin-priority: 200
  late-commands:
    - |
      rm /target/etc/apt/preferences.d/90curtin.pref
      true
Run Code Online (Sandbox Code Playgroud)

方法2

sources.list此方法无需安全存储库即可配置。结果是安全存储库中的任何软件包都将不可用,并且不会更新任何软件包。缺点是安装时不会配置安全存储库。

user-data以下是此方法的文件片段。

#cloud-config
autoinstall:
  updates: security
  apt:
    disable_suites: [security]
Run Code Online (Sandbox Code Playgroud)

使用本地镜像的替代选项

如果你真的只想使用本地镜像,那么你可以配置 apt 来使用它。user-data这是使用本地镜像配置 apt的文件片段。

#cloud-config
autoinstall:
  apt:
    primary:
    - arches:
      - default
      uri: http://YOURMIRROR
Run Code Online (Sandbox Code Playgroud)

如果本地镜像未镜像所有组件和套件,则自动安装可能会失败。您可能需要包括apt类似的键

    disable_components: [restricted,multiverse]
    disable_suites: [backports,security]
Run Code Online (Sandbox Code Playgroud)

也可以看看

笔记

我使用 Ubuntu 22.04 测试了这些配置 ( subiquity 22.04.2)