通过网络将计算机的启动文件传输到目标计算机。在局域网中,一台计算机作为服务器,另一台或多台计算机作为客户端,通过网络启动服务器上的操作系统安装程序,实现批量安装操作系统。
一、安装PXE服务端环境
yum install vsftpd dhcp tftp xinetd syslinux tftp-server -y
二、拷贝镜像文件到ftp服务器根目录
#切换到ftp默认目录
cd /var/ftp/pub
mkdir dvd #创建一个存放镜像的目录
chown ftp:ftp dvd
cp -rf /mnt/cdrom/* dvd/
三、配置dhcp服务器
vim /etc/dhcp/dhcpd.conf
subnet 10.10.10.0 netmask 255.255.255.0 { #指定网段
range 10.10.10.100 10.10.10.200; #指定地址分配范围
option routers 10.10.10.11; #网关地址
next-server 10.10.10.11; #指定tftp服务器地址
filename "pxelinux.0"; #连接tftp服务器后要下载的文件
}
四、配置tftp服务
vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot #tftp目录
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
五、创建相关目录并拷贝所需文件
配置启动菜单文件
mkdir -p /tftpboot/pxelinux.cfg
# vim /var/lib/tftpboot/pxelinux.cfg/default # 在pxelinux.cfg目录下创建default并编辑配置文件
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://10.10.10.11/pub/dvd # 为ftp服务器地址
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://10.10.10.11/pub/dvd
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://10.10.10.11/pub/dvd
将内核文件和镜像文件拷贝至tftp目录和ftp目录下
cp /usr/share/syslinux/pxelinux.0 /tftpboot/
chmod 444 /tftpboot/pxelinux.cfg/default
cp /var/ftp/pub/dvd/isolinux/* /tftpboot/
六、开启相关服务并设置为开机自启
systemctl restart dhcpd
systemctl enable dhcpd
systemctl restart xinetd
systemctl enable xinetd
systemctl restart tftp
systemctl enable tftp
systemctl restart vsftpd
systemctl enable vsftpd
七、创建虚拟机测试
在使用vmware虚拟机进行测试时,内存不得小于2G否则会报错。
当出现boot字样时,直接回车客户端就会从服务器下载安装文件并进入默认的图形安装界面。
若执行“linux text”命令,则进入文本安装入口;
若执行 “linux rescue”命令,则进入救援模式。
由于这里还没有配置自动化安装,所以后续操作都需要手动
八、全自动安装系统
1)安装kiskstart生成自动化安装脚本
yum install -y system-config-kickstart # 需要在一台支持图形化的虚拟机内安装,否则无法设置自动化安装脚本
2)安装完后,我们打开图形界面启动kickstart
system-config-kickstart #终端输入此命令回车即可启动
基本配置中选择你想要的默认语言、键盘、时区、目标架构以及设置root用户的登录密码。
安装方法处选择执行全新安装
这里采用ftp服务器来共享镜像文件。如果你的ftp不允许匿名用户登录,设置了用户名和密码则需要手动指定一下用户名和密码。
勾选安装引导程序
添加分区信息,设置根目录、swap、boot大小
boot:600MB swap:4GB 其余容量全部划分给根目录
网络信息留空,待进入系统后再手动配置。
验证根据实际情况需要来配置
防火墙配置:禁用selinux。使用防火墙放行ssh端口即可【如果你有其他端口需要放行,也可以自己添加进去】
显示配置,默认即可。
3)软件包选择,这里如果报错如下图这样:
则需要修改yum源配置文件,然后卸载重新安装system-config-kickstart 软件
#卸载
yum remove -y system-config-kickstart
#清除缓存
yum clean all && yum makecache
#再重新执行安装命令
yum install -y system-config-kickstart
这时,我们再重新打开system-config-kickstart软件,切换到软件包选择时就可以看到软件包了
根据自己的需要选择需要安装的软件包即可。
4)添加安装后需要执行的脚本。根据自己的需要来,如果不需要则留空即可
5)保存文件后,修改tftp目录下的default文件。让其启动安装时从ftp目录下载该脚本并执行
default install #选择默认安装方式为install
prompt 0 #修改为0执行自动安装
label install
kernel vmlinuz
append initrd=initrd.img method=ftp://10.10.10.11/pub/dvd ks=ftp://10.10.10.11/ks.cfg
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://10.10.10.11/pub/dvd
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://10.10.10.11/pub/dvd
6)新建虚拟机开机测试,显示正在加载则表示已经开始执行自动安装脚本了,我们稍等片刻即可
7)待安装完成后,检查root目录下是否有我们写入的文件
至此,PXE装机服务就搭建完成了。
推荐阅读
批量安装Linux系统之Cobbler的构建
Docker安装和镜像加速器配置