一、介绍
Ubuntu 20.04 的服务器安装程序支持新的操作模式:自动安装(automated installation)。自动安装可以通过自动安装配置提前回答所有这些配置问题,并使安装过程无需任何交互即可运行。
在 Ubuntu 18.04 中,用的应答文件是 preseeds(预配置文件),它基于 debian-installer(aka di)来实现自动安装的。需要注意的是,如果你使用的是 cobbler,那你应该使用 ubuntu-20.04-legacy-server-amd64.iso,而不是 live-server(应该是缺少netboot),Ubuntu 20.04 已没有 server。
Ubuntu 20.04 自动安装在以下主要方面与之前的版本有所不同:
• 应答文件格式完全不同。现在是:cloud-init config,通常为 yaml。而之前是:debconf-set-selections 格式。
• 当前提条件中不存在问题的答案时,di会停止并要求用户输入。而自动安装不是这样的:默认情况下,如果根本没有任何自动安装配置,则安装程序将使用任何未回答问题的默认设置(如果没有默认问题,安装程序将失败)。在自动安装中可以将配置中的特定部分指定为“交互式”,这意味着安装程序仍将停止并询问这些部分。
二、环境
在 ubuntu 18.04.5 上部署 autoinstall 来批量安装 ubuntu 20.04.2。还是典型的 PXE + TFTP + HTTP + DHCP + Subiquity(ubuntu 服务器安装程序) 。镜像为:ubuntu-20.04.2-live-server-amd64.iso。注意,引导方式为UEFI。
| 主机 | 系统 | IP地址 |
|---|---|---|
| server | ubuntu 18.04.5 | 10.0.0.4 |
| node1 | 未安装操作系统 | - |
| node2 | 未安装操作系统 | - |
三、部署
1、安装相关软件
isc-dhcp-server :用来给客户端主机分配可用的IP地址。
tftpd-hpa :用来给客户端主机提供引导及驱动文件。
apache2 :用来给客户端主机提供镜像、应答文件以及一些自定义的文件脚本之类的。
root@server:~# apt-get -y install tftpd-hpa apache2 isc-dhcp-server whois
2、配置 tftp 和 apache
root@server:~# cat > /etc/apache2/conf-available/tftp.conf <<EOF
<Directory /var/lib/tftpboot>
Options +FollowSymLinks +Indexes
Require all granted
</Directory>
Alias /tftp /var/lib/tftpboot
EOF
root@server:~# a2enconf tftp
root@server:~# systemctl restart apache2
准备镜像,上传镜像到/var/lib/tftpboot/。
准备引导文件:vmlinuz(可引导的、压缩的内核),initrd(系统引导过程中挂载的一个临时根文件系统),pxelinux.0(网络引导程序)。
root@server:~# mount /var/lib/tftpboot/ubuntu-20.04.2-live-server-amd64.iso /mnt/
root@server:~# cp /mnt/casper/vmlinuz /var/lib/tftpboot/
root@server:~# cp /mnt/casper/initrd /var/lib/tftpboot/
root@server:~# umount /mnt
root@server:~# wget http://archive.ubuntu.com/ubuntu/dists/focal/main/uefi/grub2-amd64/current/grubnetx64.efi.signed -O /var/lib/tftpboot/pxelinux.0
准备grub
root@server:~# mkdir -p /var/lib/tftpboot/grub
root@server:~# cat > /var/lib/tftpboot/grub/grub.cfg <<EOF
default=autoinstall
timeout=0
timeout_style=menu
menuentry "Focal Live Installer - automated" --id=autoinstall {
echo "Loading Kernel..."
linux /vmlinuz ip=dhcp url=http://10.0.0.4/tftp/ubuntu-20.04.2-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.0.0.4/tftp/
echo "Loading Ram Disk..."
initrd /initrd
}
menuentry "Focal Live Installer" --id=install {
echo "Loading Kernel..."
linux /vmlinuz ip=dhcp url=http://10.0.0.4/tftp/ubuntu-20.04.2-live-server-amd64.iso
echo "Loading Ram Disk..."
initrd /initrd
}
EOF

本文介绍如何通过PXE+TFTP+HTTP+DHCP+Subiquity方式批量安装Ubuntu20.04服务器版,包括所需软件安装、配置步骤及注意事项。


被折叠的 条评论
为什么被折叠?



