PXE网络装机
在大规模的linux应用环境中,如web群集、分布式计算等,服务器往往并不配备光驱设备,这种情况下如何为数十乃至上百台服务器裸机快速安装系统?传统的USB光驱、移动硬盘等安装方法显然已经力所难及。接下来介绍的PXE(Pre-boot Excution Enviroment,预启动环境)技术的网络装机方法,并结合Kickstart配置实现无人安装。
一、了解PXE远程安装服务
1.pxe远程安装服务的介绍
PXE是由Inter公司开发的网络引导技术,工作在C/S模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。
2. PXE远程安装服务的优势
(1)、规模化:可以大规模的同时安装多台裸机,大大提高了安装操作系统的效率。
(2)、自动化:在安装系统和配置服务的过程中全自动,相对减少了管理员安装时间,也大大避免了在安装过程中出错的可能。
(3)、远程实现:通过网络实现,不需要光盘、U盘等本地介质。较为方便。
3. 搭建PXE满足的条件
(1)、客户机的网卡支持PXE协议(集成BOOTROM芯片),并且主板支持网络引导。
(2)、网络中有一台DHCP服务器以便于为客户机自动分配IP地址,指定引导文件位置。
(3)、服务器通过TFTP(Trivial File Transfer Protocol 简单文件传输协议)提供引导镜像文件的下载。
二、搭建PXE远程安装服务器
实验环境:准备两台虚拟机,一台作为测试环境(RHEL6,IP地址192.168.1.1),另一台作为RHEL6安装端,设置网络引导安装。
1. 设置IP地址为192.168.1.1
修改配置文件:
[[email protected]~]# vim/etc/sysconfig/network-scripts/ifcfg-eth0
修改内容:
IPADDR=192.168.1.1
NETMASK=255.255.255.0
(若没有则添加)
NM_CONTROLLED=”no”
ONBOOT=”yes”
启动network服务
[[email protected]~]#service network start
查看IP地址确认
[[email protected]~]#ifconfig
注意:
若启动network服务报错,如下图所示:
解决方法:
[[email protected]~]# rm –rf/etc/udev/rules.d/70-persistent-net.rules
[[email protected]~]# vim/etc/sysconfig/network-scripts/ifcfg-eth0
删除Mac地址一行
[[email protected]~]#reboot
- 2. 搭建yum服务器安装所需要的服务
(1)、搭建yum光盘安装源:
[[email protected] ~]#mkdir –p /var/ftp/rhel6
[[email protected] ~]#mount /dev/cdrom /media
[[email protected] ~]#cp –rf /media/* /var/ftp/rhel6/
(2)、在/etc/yum.repos.d/目录下创建以.repo为后缀的文件:
[[email protected] ~]# vim/etc/yum.repos.d/yum.repo
编写内容:
[Server]
name=Server
baseurl=file:///var/ftp/rhel6/Server
enabled=1
gpgcheck=0
- 3. 安装FTP服务,并设置开机自启动
[[email protected] ~]# yum –y installvsftpd
[[email protected] ~]#/etc/init.d/vsftpd start
[[email protected] ~]# chkconfig vsftpd start
3. 安装tftp服务,并修改相应的配置文件
(1)、使用yum安装tftp服务:
[[email protected] ~]# yum –y installtftp
[[email protected] ~]# yum –yinstall-server
(2)、修改tftp配置文件:
[[email protected] ~]# vim/etc/xinetd.d/tftp
修改内容:
service tftp
{
…… //省略部分信息
server_args = -s/var/lib/tftpboot //指定TFTP根目录
disable =no
…… //省略部分信息
}
(3)、启动TFTP服务
[[email protected] ~]# service xinetd start
注:TFTP开机自启动,所以不需要再进行设置
- 4. 准备linux内核,初始化镜像文件
PXE网络安装的linux内核:vmlinuz
初始化镜像文件:initrd.img
[[email protected] ~]# cd/var/ftp/yum/images/pxeboot
[[email protected] ~]# cp vmlinux initrd.img /var/lib/tftpboot
- 5. 准备PXE引导程序、启动菜单文件
用于PXE网络安装的引导程序pxelinux.0,由软件包syslinux提供。
[[email protected] ~]# yum -y install syslinux
[[email protected]~]# cp/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
[[email protected] ~]# mkdir /var/lib/tftpboot/jpxelinux.cfg
[[email protected] ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto //指定默认出口名称
prompt 1 //1表示等待用户控制
label auto
kernel vmlinux
append initrd=initrd.img devfs=nomount randisk_size=8192
…….
- 6. 安装DHCP服务,修改配置文件以及开启服务
(1)、配置IP地址为192.168.1.1
(2)、安装dhcpd服务
[[email protected] ~]# yum -y install dhcpd
(3)、修改dhcpd的配置文件
[[email protected] ~]# vim /etc/dhcpd.conf
编写内容:
subnet 192.168.1.1 netmask 255.255.255.0 {
range 192.168.1.2 192.168.1.200;
next-server 192.168.1.1; //指定TFTP服务器的地址
filename “pxelinux.0”; //指定PXE引导程序的文件名
}
(4)、启动dhcp服务,并设置为开机自启动
[[email protected] ~]# service dhcpdstart
[[email protected] ~]# chkconfig dhcpd on
- 3. 验证PXE网络安装
客户机使用裸机,不需要额外设置;若为已有系统的主机重装系统,则可能需要修改BIOS设置,将“Boot First”设为“NETMASK”或“LAN”,然后重启主机。
如果服务器配置正确,则客户机重启后将自动配置IP地址,然后从TFTP服务器获得引导程序pexlinux.0,并根据引导菜单配置提示用户指定启动入口,
- 实现Kickstart无人值守安装
- 安装之前需要先安装system-config-kickstart noarch软件包
[[email protected]~]# yum –y installsystem-config-kickstart noarch
- 2.配置安装应答参数
通过桌面菜单“应用程序”→“系统工具”→“Kickstart”即可打开Kickstart。
(1)、基本设置
将“默认语言”设置为中文,时区选择“Asia/Shanghai”设置“根口令”并且设置为“给根口令加密”,切记要勾上“安装后重新引导系统“,如图所示:
(2)、安装方法
安装方法选择“执行新安装”(毕竟我们是在裸机上装系统),安装方法选择“FTP”;写入FTP服务器的IP地址以及FTP目录,即FTP服务器的根目录,根据上述设置,我们在这里填写为“rhel6”;如果有指定的ftp用户和用户名的话,我们也可填写好ftp用户和用户名。
(3)、引导装载程序选项
“安装类型”选择“安装新引导装载程序”,选择“使用GRUB口令”,输入口令即可;在“安装选项“选择”在主引导记录(MBR)上安装引导装载程序;
(4)、分区信息
在“磁盘标签”上选择“初始化磁盘标签”,其余选择默认即可。同时要正确规划分区方案,例如可划分一个500MB的/boot分区、4GB的/home分区、2GB的交换分区,剩余的空间划分为/分区。
(5)、网络配置
设置网络设备为“eth0”,网络类型为“DHCP”选择“确定”即可。
(6)、验证
默认即可。选择“下一步”;
(7)、防火墙配置
最好禁用,也可以开启ftp的例外端口21;
(8)、显示配置,选择安装“图形环境”;否则安装完成后,裸机上的系统是没有图形环境的桌面的;
(9)、软件包选择
根据实际需要选择安装的软件包,比如可以选择“基本”、“万维网安装服务器”、“X窗口系统”、“字体”、以及“开发工具”等等;
(10)、安装脚本
安装脚本分为“预安装脚本”和“安装后脚本”,分别是安装前执行和安装后执行的可执行语句。此设置可以是客户机在完成自动安装后自动执行脚本命令
- 4. 保存自动应答文件
单击Kickstart配置程序的“文件”中的“保存菜单”;指定目标文件夹和文件名,在这里我们保存到/root/ks.cfg文件中。
配置好的应答参数保存为文本文件
- 5. 实现批量自动装机
启用自动应答文件
[[email protected]~]# cp /root/ks.cfg /var/ftp/rhel6/ks.cfg
[[email protected]~]# vi /var/lib/tftpboot/pxelinux.cfg/default
配置内容
default auto
prompt 0 //0表示不等待用户控制
label auto
kernel vmlinuz
appendks=ftp://192.168.1.1/rhel6/ks.cfg initrd=initrd.img devfs=nomount ramdisk_size=8192