linux pxe网络装机无人值守

时间:2021-02-24 18:53:26

项目分析
远程装机的实现:
配置DHCP+HTTP+TFTP提供
通过vesamenu.c32模块实现图形PXE菜单
为不同系统分别提供ks应答文件
将第三方rpm包以yum源的方式提供:
集中提供ntfs-3g,libreoffice的rpm包
通过createrepo建立repodata

项目难点分析:
PXE图形启动菜单
需要准备的文件(由软件包syslinux-*提供)
图形支持模块:/TFTP根目录/vesamenu.c32
背景图片文件:/TFTP根目录/splash.jpg
[root@svr5 ~]# yum -y install syslinux
[root@svr5 ~]#cd /var/lib/tftpboot
[root@svr5 tftpboot]# rpm -ql syslinux-nonlinux| grep vesa
[root@svr5 tftpboot~]#cp /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot/
[root@svr5 tftpboot]# rpm -ql syslinux | grep jpg
[root@svr5 tftpboot]# cp /usr/share/doc/syslinux-4.04/sample/syslinux_splash.jpg /var/lib/tftpboot/splash.jpg
[root@svr5 ~]#ls /var/lib/tftpboot
initrd.img pxelinux.0 pxelinux.cfg splash.jpg vesamenu.c32 vmlinuz
[root@svr5 ~]# cd myiso/isolinux/
[root@svr5 isolinux]# ls
boot.cat grub.conf isolinux.bin memtest TRANS.TBL vmlinuz
boot.msg initrd.img isolinux.cfg splash.jpg vesamenu.c32
[root@svr5 isolinux]# cat isolinux.cfg > /var/lib/tftpboot/pxelinux.cfg/default (把本目录的isolinux.cfg覆盖到/tftp/下)
[root@svr5 tftpboot]# mkdir redhat(创建rehat文件夹)
[root@svr5 tftpboot]# mkdir centos(创建centos文件夹)
[root@svr5 tftpboot]# ls
centos pxelinux.0 redhat vesamenu.c32
initrd.img pxelinux.cfg splash.jpg vmlinuz
[root@svr5 tftpboot]# mv vmlinuz initrd.img redhat/(创建rehat和centos的文件夹,把各自的内核文件放到对应的目录下)
[root@stu pxelinux.cfg]# cd /var/ftp/(到此目录放置应答文件和镜像)
centos.cfg pub redhat.cfg rhel6

配置要点:
修改配置文件tftp根目录/pxelinux.cfg/default
default vesamenu.c32(启动图形模块)
#prompt 1
timeout 600
........
menu background splash.jpg(指定背景图片)
menu title Welcome to Red Hat Enterprise Linux 6.7!(菜单标题)
label redhat(启动项文字)
menu label Install ^redhat(^用来定义快捷键)
kernel redhat/vmlinuz
append ks=ftp://192.168.4.7/redhatks.cfg initrd=redhat/initrd.img(自动应答文件要自己去/var/ftp/创建相对应的文件)
label centos
menu label Install ^centos
kernel centos/vmlinuz
append ks=ftp://192.168.4.7/centosks.cfg initrd=centos/initrd.img(自动应答文件要自己去/var/ftp/创建相对应的文件)
label rescue
menu label ^Rescue redhat(救援模式)
kernel redhat/vmlinuz
append initrd=initrd.img rescue
label redcue
menu label Install ^Rescue centos(救援模式)
kernel centos/vmlinuz
append initrd=initrd.img rescue
label local
menu label Boot from ^local drive
meni default
localboot 0xffff

创建非root账号
[root@svr5 ~]#useradd -u 0 -o admin
[root@svr5 ~]#echo 12345 |passwd --stdin admin

通过createrepo建立yum源
[root@stu ~]# yum -y install createrepo(安装yum仓库配置)
[root@stu ~]#mkdir /var/tfp/yum1(创建文件夹)
[root@stu ~]# cp -rf RPMS/*.rpm langpack_zh-CN/*.rpm /var/ftp/yum1/(准备软件目录)
[root@stu ~]# createrepo /var/ftp/yum1/(生成yum仓库档案)
[root@stu ~]# yum-config-manager --add-repo ftp://192.168.4.7/yum1(添加新的yum源)
[root@stu ~]# vim 192.168.4.7_yum1.repo
[192.168.4.7_yum1]
name=added from: ftp://192.168.4.7/yum1
baseurl=ftp://192.168.4.7/yum1
enabled=1
gpgcheck=0(添加0,未经签名的包)