这篇文章记录了一个从零开始搭建PXE网络安装环境的全过程,目标是实现无人值守的自动化安装CentOS 7系统。通过PXE引导、DHCP分配地址、TFTP传输引导文件、FTP提供安装源,再结合Kickstart配置文件,完成了批量化、自动化的操作系统部署。整个过程虽然看起来繁琐,但只要按照步骤一步步完成,最终效果还是非常有成就感的!适合那些想要在服务器管理领域进一步提升效率的朋友。
本次实验的目标是搭建一个高效、安全、可扩展的网络与服务器系统,满足以下具体需求:
服务器配置: 使用VMware虚拟机搭建Server服务器,安装CentOS 7.3操作系统,并完成系统初始化配置。
硬件配置: 添加四块磁盘并配置软RAID5以实现数据冗余和性能优化。
Web服务配置: 安装并配置Nginx作为反向代理,搭建Apache Web服务器。
DNS服务: 安装并配置DNS服务,将其作为项目组A和项目组B的本地DNS。
文件服务: 搭建NFS服务用于同步网站页面,配置Samba服务以实现用户数据共享和权限管理。
账号与权限管理: 配置系统账号及权限,确保不同用户组的权限分离。项目经理可进行高级操作,开发人员仅限于查看和基本操作。
性能检查: 使用Linux命令对服务器性能进行检测和优化。
本实验旨在通过实际操作,掌握Linux服务器的基础配置、网络环境搭建、权限管理以及服务部署的综合能力,为后续的项目开发与运维提供技术支持。
yum install -y dhcp tftp-server vsftpd syslinux
完毕!
[root@localhost yum.repos.d]# ls /var/ftp
pub
[root@localhost yum.repos.d]# mkidr /var/ftp/centos7.9
-bash: mkidr: 未找到命令
[root@localhost yum.repos.d]# mkdir /var/ftp/centos7.9
[root@localhost yum.repos.d]# ls /mnt/cdrom/
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
[root@localhost yum.repos.d]# cp -Rvf /mnt/cdrom/* /var/ftp/centos7.9/
开启服务
[root@localhost ~]# vim /etc/xinetd.d/tftp
[root@localhost ~]# systemctl start tftp
[root@localhost ~]# systemctl enable tftp
Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.
用于 PXE 网络安装的 Linux 内核、初始化镜像文件可以从 CentOS 7 系统光盘获得,分别为 vmlinuz 和 initrd.img,位于文件夹 images/pxeboot 下。找到这两个文件并将其复制到 tftp 服务的根目录下。
[root@localhost ~]# cd /mnt/cdrom/images/
[root@localhost images]# ls
efiboot.img pxeboot TRANS.TBL
[root@localhost images]# cd pxeboot/
[root@localhost pxeboot]# ls
initrd.img TRANS.TBL vmlinuz
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/
[root@localhost pxeboot]# ls /var/lib/tftpboot/
initrd.img vmlinuz
[root@localhost pxeboot]#
用于 PXE 网络安装的引导程序为 pxelinux.0,由软件包 syslinux 提供。安装好软件包syslinux,然后将文件 pxelinux.0 也复制到 tftp 服务的根目录下。
[root@localhost pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost pxeboot]# ls /var/lib/tftpboot/
initrd.img pxelinux.0 vmlinuz
[root@localhost pxeboot]#
由于 PXE 客户机通常是尚未装系统的裸机,因此为了与服务器取得联系并正确下载相关引导文件,需要预先配置好 DHCP 服务来自动分配地址并告知引导文件位置。
复制dhcp的实例文件到配置文件下 使用
cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
32 subnet 192.168.14.0 netmask 255.255.255.0 {
33 range 192.168.14.200 192.168.14.220;
34 netxt-server 192.168.14.111;
35 filename "pxelinux.0";
36 }
37
保存退出之后开启服务
[root@localhost dhcp-4.2.5]# systemctl start dhcpd
[root@localhost dhcp-4.2.5]# systemctl enable dhcpd
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
systemctl start vsftpd
下载访问工具
yum install -y ftp
[root@localhost dhcp-4.2.5]# ftp 192.168.14.111
Connected to 192.168.14.111 (192.168.14.111).
220 (vsFTPd 3.0.2)
Name (192.168.14.111:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,14,111,153,154).
150 Here comes the directory listing.
drwxr-xr-x 8 0 0 220 Nov 20 08:20 centos7.9
drwxr-xr-x 2 0 0 6 Oct 13 2020 pub
226 Directory send OK.
ftp>
启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像。默认的启动菜单文件为 default,应放置在 tftp 根目录的 pxelinux.cfg 子目录下,典型的启动菜单配置可参考以下操作手动建立。
mkdir /var/lib/tftpboot/pxelinux.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.14.111/cetos.7.9
网络安装 搭建好 PXE 远程安装服务器以后,就可以使用客户机进行安装测试了。对于新购买的服务器或 PC 裸机,一般不需要额外设置;若要为已有系统的主机重装系统,则可能需要修改 BIOS 设置,将“Boot First”设为“NETWORK”或“LAN”,然后重启主机;若使用VMware创建的虚拟机进行测试,虚拟机内存至少需要 2GB,否则在启动安装时会报错。
上一节介绍了通过 PXE 技术远程安装 CentOS 7 系统的方法,安装介质不再受限于光盘、移动硬盘等设备,大大提高了系统安装的灵活性。然而,安装期间仍需要手动选择语言、键盘类型、指定安装源等一系列交互操作,当需要批量安装时非常不方便。本节将进一步学习如何实现无人值守自动安装,通过使用 Kickstart 工具配置安装应答文件,自动完成安装过程中的各种设置,从而无须手动干预,提高网络装机效率。
6.2.1 准备安装应答文件
默认当前目录下是有这个文件的
[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# cp -p anaconda-ks.cfg ks.cfg
[root@localhost ~]# vim ks.cfg
[root@localhost ~]# mv ks.cfg /var/ftp/
修改的主要配置文件 指向刚刚设置的应答文件
vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.14.111/cetos.7.9 ks=ftp://192.168.14.111/ks.cfg
最后一步
设置相应的权限 不然无法实现自动化安装
chmod 644 /var/ftp/ks.cfg
然后配置完毕 重新安装测试
搞定PXE和Kickstart后,批量安装系统的效率真的提升了一个档次,再也不用一台一台机器插U盘、盯着屏幕点选项了。虽然过程中可能会遇到一些小问题,比如权限不足、服务配置不当、网络连接异常等,但这些问题都可以通过检查日志和配置文件逐步排查解决。总之,这次实验不仅让我熟悉了PXE和Kickstart的原理,还让我更加深刻地体会到“自动化”的魅力,真的是省时又省力!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。