我正在尝试使用打包程序和 cloud-config autoinstall 部署虚拟机。我使用的是 ubuntu-22.04.2-live-server-amd64.iso 映像,它附带 linux 内核 5.15.0-25
在配置过程中,内核版本保持不变,但重启后内核版本会更新为 5.15.0-89(几周前),现在更新为 5.15.0-91。问题是我无法控制内核更新到某个版本的行为。
因此,我必须重新编译我的应用程序。我的目标是获得一个修复版本以下是我的自动安装用户数据文件的参考
#cloud-config
autoinstall:
version: 1
early-commands:
# workaround to stop ssh for packer as it thinks it timed out
- sudo systemctl stop ssh
packages: [open-vm-tools, openssh-server, curl, wget]
network:
network:
version: 2
ethernets:
ens160:
dhcp4: true
identity:
hostname: ubuntu-appliance
username: ubuntu
password: "$6$rounds=4096$ntlX/dlo6b$HXaLN4RcLIGaEDdQdR2VTYi9pslSeXWL131MqaakqE285Nv0kW9KRontQYivCbycZerUMcjVsuLl2V8bbdadI1"
ssh:
install-server: true
allow-pw: true
authorized-keys:
- ssh-rsa <key>
user-data:
disable_root: false
late-commands:
# TBD - this sudoers setup effectively makes the ubuntu user a root user. Need to tighten that up
- echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' > /target/etc/sudoers.d/ubuntu
- curtin in-target --target=/target -- chmod 440 /etc/sudoers.d/ubuntu
到目前为止,在阅读论坛并参考后,我尝试添加一些东西,例如
#cloud-config
package_update: false
package_upgrade: false
apt:
curthooks:
mode: builtin
geoip: false
preserve_sources_list: false
disable_suites: [updates, backports, security, proposed, release, universe, multiverse]
在后期命令中
- curtin in-target --target=/target apt-mark hold linux-image-generic
- curtin in-target --target=/target apt-get update
- curtin in-target --target=/target apt-get install -y linux-image-5.15.0-89-generic
但到目前为止似乎什么都没起作用。我也尝试运行“dpkg-reconfigure unattended-upgrades”,但结果相同。内核已更新到最新版本。
阅读并参考后,我仍然无法实现它,有人可以指出我错在哪里或者我到底需要更改什么,以便内核不会更新到最新版本或者只是更新到我指定的版本。
答案1
我用
apt:
fallback: offline-install
适用于我的气隙图像。也许这能有所帮助?