- DHCP服务:分配IP地址、定位引导程序
- TFTP服务:提供引导程序下载
2、客户机需求- 网卡芯片支持PXE协议
- 主板支持从网卡启动
3、PXE组件过程分析 二、基础条件 1、装机条件准备 1.准备CentOS7安装源(HTTP方式YUM库)[root@localhost ~]# yum -y install httpd #安装apache服务 [root@localhost ~]# systemctl enable --now httpd #设置开机自启并立即启动服务 [root@localhost ~]# mkdir /var/www/html/dvd #新建共享目录 [root@localhost ~]# [root@localhost ~]# sed -i "$ a /dev/sr0 /var/www/html/dvd iso9660 defaults 0 0" /etc/fstab #创建开机自动挂载光盘 [root@localhost ~]# mount -a #当前挂载所有2、启动DHCP服务
[root@localhost ~]# yum -y install dhcp #安装dhcp服务
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.4.0 netmask 255.255.255.0{ //声明网段
range 192.168.4.100 192.168.4.200; //IP范围
next-server 192.168.4.10; //指定PXE服务
filename "pxelinux.0"; //引导文件名
}
[root@localhost ~]# systemctl enable --now dhcpd //当前启动并开机自启
[root@localhost ~]# netstat -pantu | grep dhcpd //确认程序是否启动
udp 0 0 0.0.0.0:67 0.0.0.0:* 15622/dhcpd
3、启用TFTP服务,提供装机用的内核、初始化文件
[root@localhost ~]# yum -y install tftp-server #安装TFTP服务 [root@localhost ~]# systemctl enable --now tftp #启动TFTP并设置开机自启 [root@localhost ~]# mkdir /var/lib/tftpboot/CentOS7/ #创建目录 [root@localhost ~]# cp /mnt/isolinux/vmlinuz /var/lib/tftpboot/CentOS7/ #拷贝内核文件 [root@localhost ~]# cp /mnt/isolinux/initrd.img /var/lib/tftpboot/CentOS7/ #拷贝初始化文件4、提供PXE引导程序、配置启动菜单
[root@localhost ~]# yum -y install syslinux #pxelinux.0由此软件包提供 [root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #拷贝文件到tftp目录 [root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@localhost ~]# cd /var/lib/tftpboot/pxelinux.cfg [root@localhost tftpboot]# cp /mnt/isolinux/vesamenu.c32 ./ #拷贝图形支持文件 [root@localhost tftpboot]# cp /mnt/isolinux/splash.png ./ #拷贝背景图片 [root@localhost tftpboot]# cp /mnt/isolinux/isolinux.cfg default #拷贝菜单配置文件 [root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default #调整启动参数三、安装kickstart 1.调证yum仓库设置
2.运行system-config-kickstart工具,创建应答文件(需要图形界面) 1、获得应答文件清理掉无关的yum源,只保留为客户机安装CentOS7系统所必要的yum源,并且将源的ID修改为development
[root@localhost ~]# vim /etc/yum.repos.d/yum.repo
[development] name =centos7 baseurl =http://192.168.4.10:/yum gpgcheck=0 enabled =1
2、 调整应答文件
[root@localhost ~]# cp /root/ks.cfg /var/www/html/ #拷贝应答文件到apache共享目录
[root@localhost ~]# vim /var/www/html/ks.cfg #修改应答文件
1 install #安装基本信息设置
2 keyboard 'us' #键盘
3 rootpw --iscrypted $1$HEGne77q$OXhlO35/O99dpUIMu35Ql/ #root密码
4 lang en_US #语言
5 auth --useshadow --passalgo=sha512 #加密方式
6 # Use CDROM installation media
7 url --url="http://192.168.4.10/yum" #安装源
8 firstboot --disable #决定是否在系统第一次引导时启动"设置代理"
9 selinux --disabled #关闭SELinux
10 firewall --disabled #关闭防火墙
11 network --bootproto=dhcp --device=eth0 #网络方式为DHCP
12 timezone Asia/Shanghai #时区
13 zerombr #如果指定了zerombr且yes是它的唯一参数,任何磁盘上的无效分区表都将被初始化.这会毁坏有无效分区表的磁盘上的所有内容.这个命令的格式应该如下:zerombr yes
14 clearpart --all --initlabel #(可选)
在创建新分区之前,从系统上删除分区.默认不会删除任何分区.
注:如果使用了clearpart命令,--onpart命令就不能够用在逻辑分区上.
--all,删除系统上所有分区.
--drives=,指定从哪个驱动器上清除分区.
例如,下面的命令清除了主IDE控制器上的前两个驱动器上所有分区
clearpart --drives=hda,hdb --all
--initlabel,根据不同体系结构把磁盘标签初始化为缺省设置(例如,msdos用于x86而gpt用于Itanium).当安装到一个崭新的硬盘时,这很有用,安装程序不会询问是否应该初始化磁盘标签.
--linux,删除所有Linux分区.
--none(缺省),不要删除任何分区.
15 # Disk partitioning information
16 part /boot --fstype="xfs" --size=200 #设置boot分区
17 part swap --fstype="swap" --size=2000 #设置swap交换分区
18 part / --fstype="xfs" --grow --size=1 #设置/分区
19 %post --interpreter=/bin/bash #安装后脚本设置
20 %end
21
22 %packages #软件包设置
23 @base
24
25 %end
3、修改PXE服务器引导配置文件
[root@localhost ~]# sed -i "s%initrd.img%& ks=http://192.168.4.10/ks.cfg%" /var/lib/tftpboot/pxelinux.cfg/default四、将客户端开机进行PXE+kickstart自动装机验证



