装机环境
1, win7的电脑中通过vmware workstation装了一台redhat6.7的虚拟机作为服务端,如果电脑系统是linux则选择KVM来安装linux虚拟机 2,服务器的ip是使用的桥接模式获取的,最好是把服务端IP固定3,服务端需要安装以下服务器
服务端ip 192.168.1.105 DHCP服务器 分配IP地址,定位引导程序 DNS服务器 为客户机分配主机名(可选) TFTP服务器 使用的UDP协议 不需要验证 速度块,为客户机提供引导程序下载 FTP/HTTP/NFS 提供yum源为客户端安装软件4,PXE的原理与流程
- 客户机从自己的 PXE 网卡启动,向本网络中的 DHCP 服务器索取 IP,并搜寻引导文件的位置。
- DHCP 服务器返回分给客户机 IP 以及 bootstrap 文件的放置位置(该文件一般是放在一台 TFTP 服务器上)。 - 客户机向本网络中的 TFTP 服务器索取 bootstrap 文件。客户机取得 bootstrap 文件后之执行该文件。根据 bootstra 的执行结果,通过 TFTP 服务器加载内核和文 件系统,进入安装画面, 此时可以通过选择 FTP,HTTP,NFS 方式之一进行安装。 5,安装过程(1)服务端搭建yum仓库
我使用的挂载本地镜像源,把光盘当做文件系统挂到OS中,设置成开机自启动, [root pxelinux.cfg]# cat /etc/fstab |grep -i ftp /dev/cdrom /var/ftp/rhel6 iso9660 defaults,loop 0 1 [root pxelinux.cfg]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 18G 15G 2.3G 87% / tmpfs 932M 136K 931M 1% /dev/shm /dev/sda1 283M 41M 228M 16% /boot /dev/sr0 3.6G 3.6G 0 100% /var/ftp/rhel6 (2) DHCP服务的配置 1.安装dhcp软件包 2.修改主配置文件/etc/dhcp/dhcpd.conf :r /usr/share/doc/dhcp*/dhcpd.conf.samplesubnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.20; #指定DHCP服务分配地址的范围 option domain-name-servers 192.168.1.105; #指定DHCP服务器 next-server 192.168.1.105; #指定客户端找的下一个服务器的的地址,也就是TFTP服务器 filename "pxelinux.0"; #指定PXE程序引导文件名 option routers 192.168.1.1; }检查DHCP语法是否是正确的 配置语法检查:service dhcpd configtest
3.启动dhcpd服务并设置为开机自起 找个其他的虚拟机测试是否可以从192.168.1.105获取ip dhclient -d eth0 服务端dhcp的分配IP的档案查看租约文件: /var/lib/dhcpd/dhcpd.leases 客户端查看获得过哪些dhcp服务器分配的IP查看租约文件 /var/lib/dhclient/dhclient-eth0.leases(3) TFTP服务器的安装与配置
TFTP是临时服务由xinetd管理,安装TFTP并去/etc/xinetd.d/tftp把服务启用,最好设置开机自启动 资源根目录是 /var/lib/tftpboot 3)读取启动配置(pxelinux.cfg/default) 根据用户选择(或超时自动选择)下载指定的vmlinuz和initrd.img 把光盘内的/var/ftp/rhel6/images/pexboot/下的文件 initrd.img 和vmlinuz拷到tftp的家目录 /var/lib/tftpboot 准备pxelinux.0(网卡引导文件) # yum provides */pxelinux.0 #查询由那个包产生的 # yum -y install syslinux-nonlinux# rpm -ql syslinux-nonlinux | grep pxelinux.0
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 把网卡引导文件也拷贝到TFTP的家目录下面
# ls /var/lib/tftpboot/ [root tftpboot]# ll total 39716 -r--r--r-- 1 root root 36411002 Dec 12 20:21 initrd.img #redhat6系统的镜像文件 -rw-r--r-- 1 root root 26759 Dec 12 20:30 pxelinux.0 #引导文件 drwxr-xr-x 2 root root 4096 Dec 12 20:40 pxelinux.cfg #引导文件的配置,选择哪个系统 -r-xr-xr-x 1 root root 4222192 Dec 12 20:21 vmlinuz #redhat6的临时文件系统 4,如何配置网卡引导配置文件 [root pxelinux.cfg]# cat default prompt 1 timeout 600 #超时的时间 default rhel6 #默认选择的系统的标签 label rhel6 #标签名称 kernel vmlinuz #在/var/lib/tftpboot/加载vmlinuz append initrd=initrd.img #导入镜像文件5.什么是Kickstart? 预先提供应答文件,定义好各种安装设置 免去交互过程,实现全自动化安装 添加%post脚本,可执行安装后的各种配置 6.生成kickstart的方法有哪些? /root/anaconda-ks.cfg 找一台已经安装系统的详细过程模板 服务端需要安装 安装system-config-kickstart工具
7,使用kickstart自动安装,需要修改,把/root/anaconda-ks.cfg拷贝到FTP家目录下面
达到自动配置客户机的需求 # vim /var/lib/tftpboot/pxelinux.cfg/default default abc timeout 60 label abc kernel vmlinuz append initrd=initrd.img ks=ftp://192.168.4.5/ks.cfgks.cfg可以先在192.168.1.105的服务器端设置好,会生成一个ks.cfg文件也就是配置的模板
总结:这个PXE网络装机是yum 源,网络配置,DHCP,FTP,TFTP加文件系统分区的集合,需要熟悉这些工作的流程和原理,具体细节配置可以百度。