__author__: Tresser
__date__: 2017/4/9 03:50
# 此文较长, 请细心看完, 一定可以成功!!
实验环境:
主机: CentOS 6.5 x86 虚拟机
准备工作:
1. 本地 yum 仓库
2. DHCP 服务器
3. TFTP 服务器
4. FTP/NFS/HTTP 服务器(这里我以 NFS 服务器为例)
5. ks.cfg 文件
6.创建 pxelinux 的配置文件
1. 本地仓库的搭建:
mkdir -p /var/ftp/pub/Centos6/
umount /dev/sr0
mount /dev/sr0 /mnt/cdrom
cp -avr /mnt/cdrom/* /var/ftp/pub/Centos6/
这里, 我们先创建了一个 Centos6 的目录用来作为批量安装的仓库, 之后的主机将从这里获得需要安装的软件包和相关文件
然后, 重新挂载了光盘, 将光盘里的内容全部拷贝到 Centos6 这个目录里
2. DHCP 服务器的搭建:
只有当客户端获得IP地址之后才能从网络安装服务器获得所需的文件, 为了给客户端分配 IP, 需要 DHCP 服务.
yum -y install dhcp
chkconfig dhcpd on
vi /etc/dhcp/dhcpd.conf
service dhcpd restart
这里, 先用 yum 安装好 dhcp 包, 编辑该配置文件, 我的主机 IP 是 192.168.9.101, 所以, 请确保你的子网与你的主机在同一个网段(此处即 9.0网段)
最后两句话的作用必须要写, 稍后再做说明.
3. TFTP 服务器的搭建:
TFTP 用来传送一些琐碎的小文件, 或网络设备配置文件以及远程启动文件, 监听 udp:69 端口
在这个安装过程中用于提供客户启动需要的 pxelinux.0 vmlinuz initrd.img 文件
yum -y install tftp tftp-server
vi /etc/xinetd.d/tftp
chkconfig tftp on
chkconfig xinetd on
service xinetd restart
netstat -antup | grep 69
这里, 先安装好 TFTP 软件包, 由于 TFTP 依赖于 xinetd, 所以修改完配置文件后启动 xinetd 即可, 使用 netstat 命令查看主机是否有
监听 69 端口
4. 搭建 NFS 服务器:
yum -y install nfs-utils
vi /etc/expoprts
service nfs restart
重启后可以自己测试下 nfs 服务器是否搭建成功
mount -t nfs 192.168.9.101:/var/ftp /mnt/nfs
SELinux 可能会报错, 处理办法可参照我之前的博文, 实在不会就把 SELinux 关了吧
5. ks.cfg 文件的生成:
设置 kickstart 就是设置对即将安装的新系统的配置, 客户端会读取 ks.cfg文件, 根据里面的配置来安装新系统
yum -y install pykickstart
yum -y install system-config-kickstart
system-config-kickstart (图形界面需要!)
点击保存之后, 将生成的文件保存到 /var/ftp 下
6. pxelinux 的配置文件:
pxe 启动引导器pxelinux.0 在 syslinux 包中, 把它拷贝到 /var/lib/tftpboot/ 下, 客户机会从此目录读取该文件
yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
我们告诉客户端使用 vmlinuz 作为内核, 并且使用 initrd.img 作为初始的 ramdisk 镜像
cp /mnt/cdrom/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
cd /var/lib/tftpboot/pxelinux.cfg
cp /mnt/cdrom/isolinux/isolinux.cfg ./default
通过这个 default 文件告诉客户机从什么内核引导, 以及在引导时向内核传递的任何选项,
vi default:
*ks 选项是 redhat/centos 独有的 kickstart 安装机制, 通过这个选项从主机的nfs获取数据
7. 重启各项服务:
记得在 /etc/dhcp/dhcpd.conf 添加上文提过的两行内容
next-server 选项指定初始启动文件存放的主机
filename 选项指定启动时载入的初始启动文件
service dhcpd restart
service nfs restart
service xinetd restart
测试 PXE 网络安装服务器:
新建一个空白虚拟机:
开启之后, 进入BIOS选择 PXE 引导启动(可略过)
至此, PXE 网络安装服务器已经完成!
总结---PXE启动过程:
1. 引导系统, 在 BIOS 中设置 PXE 启动引导
2. 客户端广播并得到了一个IP地址, 以及引导文件的名称和位置
3. 客户端联系TFTP服务器, 请求该引导文件, 并得到该文件
4. 引导文件启动, 在此联系TFTP服务器, 获得 default 文件, 该文件告诉客户端如何引导
客户端根据 default 的指示, 获得指定的内核文件 vmlinuz 和 ramdisk 镜像
5. 使用内核与 ramdisk 镜像进行 kickstart 无人值守安装