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远程安装服务器

    实验环境:准备两台虚拟机,一台作为测试环境(RHEL6IP地址192.168.1.1),另一台作为RHEL6安装端,设置网络引导安装。

1.    设置IP地址为192.168.1.1

修改配置文件:

[root@locahost~]# vim/etc/sysconfig/network-scripts/ifcfg-eth0

修改内容:

IPADDR=192.168.1.1

NETMASK=255.255.255.0

(若没有则添加)

NM_CONTROLLED=”no”

 ONBOOT=”yes”

启动network服务

[root@localhost~]#service  network start

查看IP地址确认

[root@localhost~]#ifconfig

注意:

若启动network服务报错,如下图所示:

                           wKioL1QFl9zCLG3RAAFANPeZBoE769.jpg

解决方法:

[root@localhost~]# rm –rf/etc/udev/rules.d/70-persistent-net.rules

[root@locahost~]# vim/etc/sysconfig/network-scripts/ifcfg-eth0

删除Mac地址一行

[root@locahost~]#reboot

  1. 2.    搭建yum服务器安装所需要的服务

1)、搭建yum光盘安装源:

[root@localhost ~]#mkdir –p /var/ftp/rhel6

[root@localhost ~]#mount /dev/cdrom /media

[root@localhost ~]#cp –rf /media/* /var/ftp/rhel6/

    2)、在/etc/yum.repos.d/目录下创建以.repo为后缀的文件:

[root@localhost ~]# vim/etc/yum.repos.d/yum.repo

编写内容:

[Server]

name=Server

baseurl=file:///var/ftp/rhel6/Server

enabled=1

gpgcheck=0

  1. 3.    安装FTP服务,并设置开机自启动

[root@localhost ~]# yum –y installvsftpd

[root@localhost ~]#/etc/init.d/vsftpd  start

[root@localhost ~]# chkconfig  vsftpd  start

3.  安装tftp服务,并修改相应的配置文件

1)、使用yum安装tftp服务:

[root@localhost ~]# yum –y installtftp

[root@localhost ~]# yum –yinstall-server

2)、修改tftp配置文件:

[root@localhost ~]# vim/etc/xinetd.d/tftp

修改内容:

service tftp

 {

……  //省略部分信息

     server_args   = -s/var/lib/tftpboot   //指定TFTP根目录

disable         =no

……  //省略部分信息

}

3)、启动TFTP服务

[root@localhost ~]# service xinetd  start

注:TFTP开机自启动,所以不需要再进行设置

  1. 4.    准备linux内核,初始化镜像文件

PXE网络安装的linux内核:vmlinuz

初始化镜像文件:initrd.img

[root@localhost ~]# cd/var/ftp/yum/p_w_picpaths/pxeboot

[root@localhost ~]# cp  vmlinux initrd.img  /var/lib/tftpboot

  1. 5.    准备PXE引导程序、启动菜单文件

用于PXE网络安装的引导程序pxelinux.0,由软件包syslinux提供。

[root@localhost ~]# yum  -y install  syslinux

[root@localhost~]# cp/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

[root@localhost ~]# mkdir  /var/lib/tftpboot/jpxelinux.cfg

[root@localhost ~]# 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

…….

 

  1. 6.    安装DHCP服务,修改配置文件以及开启服务

(1)、配置IP地址为192.168.1.1

2)、安装dhcpd服务

[root@localhost ~]# yum  -y  install   dhcpd

3)、修改dhcpd的配置文件

[root@localhost ~]# 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服务,并设置为开机自启动

[root@localhost ~]# service dhcpdstart

[root@localhost ~]# chkconfig dhcpd on

  1. 3.    验证PXE网络安装

客户机使用裸机,不需要额外设置;若为已有系统的主机重装系统,则可能需要修改BIOS设置,将“Boot First”设为“NETMASK”或“LAN”,然后重启主机。

 如果服务器配置正确,则客户机重启后将自动配置IP地址,然后从TFTP服务器获得引导程序pexlinux.0,并根据引导菜单配置提示用户指定启动入口,

  • 实现Kickstart无人值守安装

  • 安装之前需要先安装system-config-kickstart noarch软件包

[root@local~]# yum –y installsystem-config-kickstart  noarch

  1. 2.配置安装应答参数

    通过桌面菜单“应用程序”→“系统工具”→“Kickstart”即可打开Kickstart

 1)、基本设置

      将“默认语言”设置为中文,时区选择“Asia/Shanghai”设置“根口令”并且设置为“给根口令加密”,切记要勾上“安装后重新引导系统“,如图所示:

wKioL1QFl--wLYREAAErWwjr2OQ515.jpg

 2)、安装方法

       安装方法选择“执行新安装”(毕竟我们是在裸机上装系统),安装方法选择“FTP”;写入FTP服务器的IP地址以及FTP目录,即FTP服务器的根目录,根据上述设置,我们在这里填写为“rhel6”;如果有指定的ftp用户和用户名的话,我们也可填写好ftp用户和用户名。

wKiom1QFl_rAd2_UAAD1sEmVAGA531.jpg

 3)、引导装载程序选项

         “安装类型”选择“安装新引导装载程序”,选择“使用GRUB口令”,输入口令即可;在“安装选项“选择”在主引导记录(MBR)上安装引导装载程序;

wKiom1QFmASD2bWjAADh07KZYo4425.jpg

  4)、分区信息

             在“磁盘标签”上选择“初始化磁盘标签”,其余选择默认即可。同时要正确规划分区方案,例如可划分一个500MB/boot分区、4GB/home分区、2GB的交换分区,剩余的空间划分为/分区。

wKioL1QFmBKwgLWiAADrP8sX7Aw088.jpg

5)、网络配置

          设置网络设备为“eth0”,网络类型为“DHCP”选择“确定”即可。

 

wKiom1QFmB3Sbzv6AADtaeDXDgQ288.jpg

6)、验证

          默认即可。选择“下一步”;

wKiom1QFmDuA3147AAC4rBekFlA581.jpg

7)、防火墙配置

          最好禁用,也可以开启ftp的例外端口21

wKiom1QFmEvjk2N6AACnrAAGltY198.jpg

      8)、显示配置,选择安装“图形环境”;否则安装完成后,裸机上的系统是没有图形环境的桌面的;

wKioL1QFmFiSJyn2AAB9PlIhEZg618.jpg

         9)、软件包选择

                  根据实际需要选择安装的软件包,比如可以选择“基本”、“万维网安装服务器”、“X窗口系统”、“字体”、以及“开发工具”等等;

wKiom1QFmGPRxghJAAD8fGqwUQM249.jpg

10)、安装脚本

          安装脚本分为“预安装脚本”和“安装后脚本”,分别是安装前执行和安装后执行的可执行语句。此设置可以是客户机在完成自动安装后自动执行脚本命令

wKioL1QFmHPDtXSqAAEXh9yIcUI844.jpg

  1. 4.    保存自动应答文件

单击Kickstart配置程序的“文件”中的“保存菜单”;指定目标文件夹和文件名,在这里我们保存到/root/ks.cfg文件中。

配置好的应答参数保存为文本文件

  1. 5.    实现批量自动装机

       启用自动应答文件

       [root@localhost~]# cp  /root/ks.cfg /var/ftp/rhel6/ks.cfg

       [root@localhost~]# 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