给客户装服务器一装就是几十台,又不允许接U盘,只能使用光驱装系统,就开始琢磨PXE安装了,毕竟网线都接好了不用白不用 在网上有很多PXE安装的教程,但总是少那么一点东西,反复翻阅了四五篇教程,总结了一下大体流程 测试系统:CentOS7.4、中标麒麟7.5、RHEL7.2,理论上应该fedora系的都能这么玩,Debian的理论相通,用的软件和命令、参数不一样 IP:192.168.242.2,安装了图形化界面(11步需要在图形化界面操作,否则只能手动编写配置文件或进引导后手动安装)

  1. 以root用户登录,打开命令行终端。一般生产环境建议用普通用户,这里为了防止权限上的问题有报错所以直接上root账号
  2. 挂载光盘

mount /dev/sr0 /mnt/

  1. 编辑yum源,标识名称必须是development,因为后面kickstart需要调用这个源才能获取需要安装的软件列表,没必要为了ks文件重新配置个yum源。

vim /etc/yum.repos.d/cd.repo [development] name=cd baseurl=file:///mnt/ enabled=1 gpgcheck=0

  1. 更新yum源信息

yum repolist

  1. 安装需要的软件,因为已知需要的软件,所以直接把需要的软件一次性安装完成,避免后面要用的时候再装。

yum install tftp-server dhcp httpd syslinux system-config-kickstart xinetd -y

  1. 编辑DHCP配置文件,一般教程建议需要复制模板文件过来修改参数,但实际操作中发现有用的只有这么几行,可能连dns也不需要配。这里最主要的参数是next-server和filename,指定了PXE启动获取IP地址后加载的引导程序位置

vim /etc/dhcp/dhcpd.conf option domain-name "pxe.local"; option domain-name-servers 192.168.242.2; default-lease-time 600; max-lease-time 7200; subnet 192.168.242.0 netmask 255.255.255.0 { range 192.168.242.50 192.168.242.100; next-server 192.168.242.2;
filename "pxelinux.0"; }

  1. 创建镜像目录

mkdir -p /var/www/html/rhel

  1. 复制安装镜像,用于服务器安装系统时调用。其他教程中都是直接挂载过来的,但光盘的速度实在不敢恭维。理论上只有第一次使用的时候才会读取文件,然后系统会把读取过的文件缓存到内存里。

cp -r /mnt/* /var/www/html/rhel

  1. 复制引导文件到 tftp目录

mkdir -p /var/lib/tftpboot/pxelinux.cfg cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/ cp -r /mnt/isolinux/* /var/lib/tftpboot/ cd /var/lib/tftpboot/ cp isolinux.cfg pxelinux.cfg/default

  1. 修改网络引导配置文件

chmod +r /var/lib/tftpboot/pxelinux.cfg/default vim /var/lib/tftpboot/pxelinux.cfg/default 把文件开头的timeout值改成30,则进入引导界面的时候等待3秒,默认600等待60秒

  1. 配置自动安装脚本,如果步骤10中没有配置ks项,可以略过11、12步进行手动安装

(1)system-config-kickstart (2)设置语言、时区、root密码、安装完成自动重启 (3)安装方法选择HTTP,填写路径 (4)安装新引导程序 (5)清除所有分区,初始化磁盘标签,swap分区根据需求设定,/boot分区200M,/分区选择剩余所有空间。实际安装过程中,会需要/biosefi等各种预设里没有的分区,可以参照anaconda-ks.cfg修改 (6)选择需要安装的软件包 (7)文件→保存 ,文件名默认是ks.cfg保存即可,因为步骤10里指定的就是ks.cfg (偷懒方法)系统安装完成之后默认在/root目录下有一个anaconda-ks.cfg ,可以对照这个文件对生成的配置文件进行修改,如果所有的服务器硬件、安装配置内容都一模一样,干脆直接手动引导安装一个,然后在这个生成的文件最末行加一个reboot参数,让以后的服务器调用这个ks配置文件自动安装(不加reboot参数自动安装完成需要手动重启)

12 把生成的配置文件复制到HTTP服务器目录

cp /root/ks.cfg /var/www/html/rhel/

13 启动相关服务,有教程说需要关闭SELinux,实际试的时候没关也不影响

systemctl disable firewalld systemctl stop firewalld systemctl restart httpd systemctl restart tftp systemctl restart dhcpd systemctl enable httpd systemctl enable tftp systemctl enable dhcpd

14.客户端开机通过PXE引导进行安装系统 15.使用完成之后PXE服务器作废,恢复使用之前的状态

yum erase tftp-server dhcp httpd syslinux system-config-kickstart xinetd -y systemctl enable firewalld systemctl start firewalld