Ubuntu18.04 PXE无人自动安装-2021.3.19

部署ubuntu无人值守安装系统
导读 无人值守安装(Unattended Setup)指软件安装时无需任何用户干预,直接按默认或通过应答文件设置安装,这对于无特殊需求的用户或企业大批量部署安装操作系统及软件时非常方便。
QQ:1450930976 欢迎留言,交流技术,分享时一件快乐的事情

大致原理:

  1. Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否
    合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地
    址,同时将启动文件pxelinux.0的位置信息一并传送给Client。

  2. Client向PXE Server上的TFTP发送获取pxelinux.0请求消息,TFTP接收到
    消息之后再向Client发送pxelinux.0大小信息,试探Client是否满意,当
    TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0。

  3. Client执行接收到的pxelinux.0文件。

  4. Client向TFTP发送针对本机的配置信息(记录在TFTP的pxelinux.cfg目录
    下),TFTP将配置文件(pxelinux.cfg/default 这个文件很重要)发回Client,继而Client根据配置文件执行后续操
    作。

  5. Client向TFTP发送Linux内核请求信息,TFTP接收到消息之后将内核文件发
    送给Client。

  6. Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件

    系统。

  7. Client启动Linux内核(启动参数已经在4中的配置文件中设置好了)。

  8. Client通过NFS(apache,Nginx,都可以)下载镜像文件,读取autoyast自动化安装脚本(ks.cfg)。
    至此,Client正式进入自动化安装模式开始安装系统直到完成。

这里解释一下 两种(preseed.seed ; system-config-kickstart=ks.cfg )自动应答脚本的区别。
1、制作liveusb实现开机一插起效,全自动安装centos6与ubuntu12,其中ubuntu12的安装尽量保证u盘上只有一个fat32格式的分区否则会需要人为按一下回车确定才能继续安装,需要使用seed文件
2、部署kickstart进行pxe网络全自动安装centos6与ubuntu12,其中ubuntu12不可使用seed,反正我是没研究出seed要怎么写
3、部署cobbler进行pxe网络全自动安装centos6与ubuntu12,其中ubuntu12不可使用seed
总结:u盘装ubuntu系统,需要seed文件,内容就是那种每行行首是d-i的;pxe网络装ubuntu系统,需要用ks文件,就是跟centos6一样的kickstart配置文件。centos6只有ks文件,所以很简单。

来自 https://blog.51cto.com/zhukeqiang/1384017

环境
Ubuntu-desktop(ip:192.168.56.11)
服务端系统:Ubuntu18.04 -amd64-disktop.iso
被安装系统:Ubuntu 18.04-amd64-server.iso
下载链接:cdimage.ubuntu.com/releases/18.04/release/ 官方镜像下载,要想安装好,就去这里下载。乌班图18.04 amd64-server.iso

安装软件
apt install dnsmasq apache2 system-config-kickstart
或者使用 (isc-dhcp,tftpd-pha,nfs,apche2),dnsmasq=(tfpt+DHCP+DNS)这个工具比较方便,具体看自己,原理都是一样的

修改本机的IP地址为静态的,方便配置,同时可以暂时关闭网内的 DHCP server, 如果是在 离线的交换机内安装就最好了。
$ sudo vim /etc/netplan/01-network-manager-all.yaml (Ubuntu18 在这里修改IP,注意下面的文件格式,错了是启动不了的)
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: no
dhcp6: no
addresses: [192.168.6.254/24]
gateway4: 192.168.6.1
nameservers:
addresses: [114.114.114.114, 8.8.8.8]

Sudo netplan apply # 直接应用IP配置文件,
Systemctl restart networking #这个命令失败的话,需要关闭一下 systemctl stop NetworkManager 服务的检查功能。

配置dnsmasq
vim /etc/dnsmasq.conf
bogus-priv
filterwin2k
interface=eth0
dhcp-range=192.168.5.150,192.168.5.250,12h
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/var/ftpd
dhcp-authoritative

创建必要的目录
mkdir /var/ftpd
mkdir /var/www/ubuntu

挂载安装介质
mount /dev/cdroom /mnt # sudo mount /dev/sr0 /mnt
这里的镜像支持 Ubuntu 16.04-i386 / Ubuntu18.04-amd64-server ,不可以是 live版本和 disktop 版本,镜像里面没有 需要的文件
$ ls /met/ install/ ( ubuntu-installer, pxelinux.0 ) 没有这几个文件就没办法正确安装。

cp /mnt/* /var/www/ubuntu -arf
将网络启动文件复制到网络引导目录
cp /var/www/ubuntu/install/netboot/* /var/ftpd -arf/

修改apache2配置文件

vim /etc/apache2/sites-enabled/000-default.conf
DocumentRoot /var/www
#这里只给出了关键配置,apache2安装的作用自是提供一个 web 主目录,

编辑响应文件ks.cfg
运行system-config-kickstart生成ks.cfg文件,这里可以直接复制下面的内容;没有安装桌面是没有办法图形化操作这个 自动应答文件生成工具的。
vim /var/www/ks.cfg
#Generated by Kickstart Configurator
#platform=AMD64 or Intel EM64T
install
text
#System language
lang en_US
#Language modules to install
langsupport en_US
#System keyboard
keyboard us
#System mouse
mouse
#System timezone
timezone --utc Asia/Shanghai
#Root password #禁用 root 用户就不用设置密码
rootpw --disabled
#Initial user #配置普通系统用户,下面第一个是经过加密的 用户,安装完成后可能登陆不了,亲测。
user wsfnk --fullname “wsfnk” --iscrypted --password 1 1 1Q4SPUaqc$KCsPmeMevJS0zzrqLTeVw0
#下面这里是不使用密码加密的用户但是密码长度一定要超过 8位,不然自动安装是会出现提示是否使用弱密码。
User connor --fullname “connor” --paswwrod abc123abc
#Reboot after installation
reboot
#Use text mode install
#text
#Install OS instead of upgrade
#install
#Use Web installation
url --url http://192.168.56.11/ubuntu
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information #设置文件系统和 分区,可以去 图像界面操作一下,看看如何分配。
part swap --size 512
part /boot --fstype ext4 --size 200
part / --fstype ext4 --size 1 --grow
#System authorization infomation
auth --useshadow --enablemd5
#Firewall configuration
firewall --disabled
#Do not configure the X Window System
skipx
%packages
openssh-server
openssh-client
gcc
g++
vim
Curl

**编辑引导文件, **
Ubuntu 系列的系统可以直接使用下面的 引导文件,注意把中文备注删除。
vim /var/ftpd/pxelinux.cfg/default
path ubuntu-installer/amd64/boot-screens/
include ubuntu-installer/amd64/boot-screens/menu.cfg
default ubuntu-installer/amd64/boot-screens/vesamenu.c32
#下面两行不写入的话,也不会自动安装,要手动确认后才会执行自动应答安装。
default install
label install
#kernel 系统内核位置,(var/ftpd2/ubuntu-installer/amd64/linux)
kernel ubuntu-installer/amd64/linux
#下面指定自动应答安装文件位置,可以用浏览器访问测试一下 curl http://192.168.6.254/ks.cfg
append ks=http://192.168.6.254/ks.cfg initrd=ubuntu-installer/amd64/initrd.gz –
prompt 0
timeout 0

启动相关服务
systemctl start apache2
systemctl start dnsmasq
如果启动 dnsmsaq 发生 53 端口被占用,可以自己百度解决办法,也可以直接关闭 systemctl status systemd-resolved.service
若安装出现如下错误,
在这里插入图片描述
在这里插入图片描述
请在ubuntu-installer/amd64/boot-screens/txt.cfg里,append加入如下配置
live-installer/net-image=http://192.168.56.11/ubuntu/install/filesystem.squashfs clock-setup/ntp=false ip=dhcp ksdevice=bootif

解决图片所示的错误,在没有安装之前可以直接把 这段内容直接加上去比较稳妥。
vim /var/ftpd/ubuntu-installer/amd64/boot-screens/txt.cfg
default install
label install
menu label ^Install
kernel ubuntu-installer/amd64/linux
append ks=http://192.168.6.254/ks.cfg vga=788 initrd=ubuntu-installer/amd64/initrd.gz live-installer/net-image=http://192.168.6.254/ubuntu/install/filesystem.squashfs clock-setup/ntp=false ip=dhcp ksdevice=bootif — quit

参考链接:
来自 <blog.csdn.net/Linuxprobe18/article/details/102454236> CSDN 可以操作的,
blog.csdn.net/a1231231231313/article/details/109241431
cdimage.ubuntu.com/releases/18.04/release/ 官方镜像下载,要想安装好,就去这里下载。乌班图18.04 amd64-server.iso
https://blog.xizhibei.me/2019/10/21/how-to-install-more-than-10-os-in-an-hour-with-pxe/ 国外的论坛,比较详细的解释

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值