自动安装与自定义用户数据完美运行,但安装完成后不会自动重启。
我在https://ubuntu.com/server/docs/install/autoinstall-reference中找不到有关重新启动的文档
我还在这里找到一篇文章http://junyelee.blogspot.com/2021/05/subiquity.html
# use interactive-sections to avoid an automatic reboot
这是我的用户数据
#cloud-config
autoinstall:
### config storage and network manually
interactive-sections:
- storage
# Swapfile on root volume
swap:
swap: 16GB
late-commands:
- curtin in-target --target=/target -- apt-get --purge -y --quiet=2 remove byobu
- curtin in-target --target=/target -- apt-get install -y git wget curl rsync net-tools ssh ubuntu-desktop plymouth-theme-ubuntu-logo grub-gfxpayload-lists mailutils
- curtin in-target --target=/target -- hostnamectl set-hostname ubuntu-jammy.abc.com
# Write a script that can take care of some post install setup "late-commands" cannot be interactive unfortunately"
- |
cat <<EOF | sudo tee /target/etc/finish-install-setup.sh
#!/usr/bin/env bash
echo *************************
echo **** Finish Setup ****
echo *************************
echo 'Enter the hostname for this system: '
read NEW_HOSTNAME
hostnamectl set-hostname \${NEW_HOSTNAME}
echo
echo 'Enter the timezone for this system: '
echo 'Asia/Taipei'
read NEW_TIMEZONE
timedatectl set-timezone \${NEW_TIMEZONE}
echo *************************
echo
echo *************************
echo 'Restarting to finish ...'
shutdown -r 3
EOF
- curtin in-target --target /target chmod 744 /etc/finish-install-setup.sh
apt:
disable_components: []
geoip: true
preserve_sources_list: false
primary:
- arches:
- amd64
- i386
uri: http://free.nchc.org.tw/ubuntu
- arches:
- default
uri: http://ports.ubuntu.com/ubuntu-ports
drivers:
install: false
identity:
hostname: ubuntu-jammy
password: somesupersecretpasswordhere
realname: administrator
username: administrator
kernel:
package: linux-generic
keyboard:
layout: us
toggle: null
variant: ''
locale: en_US.UTF-8
network:
ethernets:
ens18:
dhcp4: true
version: 2
ssh:
allow-pw: true
authorized-keys: []
install-server: true
### user-data , commands run during first boot
user-data:
runcmd:
- rm -rf /usr/bin/python
- ln -s /usr/bin/python3.10 usr/bin/python
- wget https://download.nomachine.com/download/7.8/Linux/nomachine_7.8.2_1_amd64.deb -O /opt/nomachine.deb
- dpkg -i /opt/nomachine.deb
#- /etc/finish-install-setup.sh
version: 1
我必须在最后按回车键重新启动机器,我认为这不是一个好的“自动化”。
但是我需要手动配置存储布局,有没有安装完成后强制重启的解决方案?
如果您指定任何
interactive-sections
,则安装程序(subiquity)认为安装是“交互式的”。如果安装是“交互式”的,那么安装程序将等待用户在安装完成后单击重新启动。无论如何,重新启动的简单方法是使用
late-commands
调用/sbin/reboot
. 缺点是安装程序无法完成,之后执行的任何安装步骤late-commands
都不会发生。我相信唯一会被跳过的步骤是将安装程序日志复制到已安装的系统中。一个更笨拙的方法是模拟重新启动点击。客户端subiquity进程使用套接字 at将此事件传递给服务器subiquity
/run/subiquity/socket
进程。这是一个late-command
模拟客户端通信的示例,因此服务器认为用户已请求重新启动。在此示例中,curl
进程将阻塞,这就是为什么它在后台使用screen
.笔记
我使用 Ubuntu 22.04 (
subiquity 22.04.2
)进行了测试