构建PXE一键装机平台

  • 问题

准备一台CentOS6服务器,将其打造为PXE一键装机平台。首先以虚拟机作为客户机进行测试,测试通过以后可直接投入真实局域网使用。

PXE服务器环境:

  1. 操作系统:CentOS 6.7 x86_64
  2. 主机名、IP地址:pxesvr.tedu.cn,192.168.4.254/24
  3. 关闭SELinux、iptables、NetworkMagager

针对客户机的需要,集中提供PXE装机相关素材,本例要求改用Web服务提供:

  1. 为 RHEL6、CentOS6 准备安装源
  2. 使用 ntfs-3g、libreoffice 包构建Yum源
  3. 为客户机提供Yum仓库配置、kickstart自动应答文件
  • 方案

在项目实施中可以采用CentOS6虚拟机来做PXE服务器,当然也可以直接在CentOS6真机上来做,如图-4所示。真实网络中只应有一台PXE服务器,否则会出现DHCP冲突的情况,因此在项目测试阶段建议大家不要选桥接网络。

注意:如果采用虚拟机,调试阶段先不要用桥接网络,否则会干扰物理网络;最终投入到真实环境启用时,再把网卡类型设为桥接,否则客户机会无法连接。

图-4

  • 步骤

实现此案例需要按照如下步骤进行。

步骤一:为RHEL6、CentOS6准备安装素材

1. 安装并启用Web服务

1)安装httpd包,简单配置

[root@pxesvr ~]# yum  -y  install  httpd

[root@pxesvr ~]# vim  /etc/httpd/conf/httpd.conf

ServerName  pxesvr.tedu.cn

.. ..

2)启动httpd服务,并设为开机自动运行

[root@pxesvr ~]# service  httpd  restart

停止 httpd:                                               [失败]

正在启动 httpd:                                           [确定] 

[root@pxesvr ~]# netstat -anpt | grep  httpd

tcp        0      0 :::80       :::*        LISTEN      16221/httpd

 

[root@pxesvr ~]# chkconfig  httpd  on

2. 拷入RHEL 6.7系统的光盘源

1)创建资源文件夹 /var/www/html/rhel6/

[root@pxesvr ~]# mkdir  -p  /var/www/html/rhel6

2)插入 RHEL 6.7系统的DVD光盘,将挂载点的文档复制到上述目录

[root@pxesvr ~]# \cp  -rf  /misc/cd/*  /var/www/html/rhel6/

3. 拷入CentOS 6.7系统的光盘源

1)创建资源文件夹 /var/www/html/centos6/

[root@pxesvr ~]# mkdir  -p  /var/www/html/centos6

2)弹出RHEL 6.7光盘,插入 CentOS 6.7的DVD1光盘,复制光盘文档

[root@pxesvr ~]# eject   //卸载并弹出光盘

.. .. //手动更换为CentOS DVD1并连接

[root@pxesvr ~]# \cp  -rf  /misc/cd/*  /var/www/html/centos6/

3)弹出CentOS 6.7的DVD1光盘,插入DVD2光盘,复制光盘文档

[root@pxesvr ~]# eject   //卸载并弹出光盘

.. .. //手动更换为CentOS DVD2并连接

[root@pxesvr ~]# \cp  -rf  /misc/cd/*  /var/www/html/centos6/

4. 提供以第三方rpm包构建的软件源

1)创建资源文件夹 /var/www/html/other/

[root@pxesvr ~]# mkdir  -p  /var/www/html/other

  1. 解压LibreOffice的相关文件,拷入释放后的 *.rpm 文件

[root@pxesvr ~]# unzip LibreOffice_5.0.5_Linux_x86-64_rpm.zip

[root@pxesvr ~]# mv LibreOffice_*/RPMS/*.rpm  /var/www/html/other/

[root@pxesvr ~]# mv ntfs-3g-*.rpm  /var/www/html/other/

3)将 ntfs-3g 的rpm包拷入Web目录

[root@pxesvr ~]# mv  ntfs-3g-2015.3.14-2.el6.x86_64.rpm  /var/www/html/other/

4)安装 createrepo 工具,并为资源目录生成 repodata/ 库数据

[root@pxesvr ~]# yum  -y  install  createrepo^C

[root@pxesvr ~]# createrepo  /var/www/html/other/

Spawning worker 0 with 54 pkgs

Workers Finished

Gathering worker results

 

Saving Primary metadata

Saving file lists metadata

Saving other metadata

Generating sqlite DBs

Sqlite DBs complete

 

[root@pxesvr ~]# ls  /var/www/html/other/repodata/

.. ..

repomd.xml

5. 为客户机提供 yum 仓库配置文件

1)创建pxe素材文件夹 /var/www/html/pxe/

[root@pxesvr ~]# mkdir  /var/www/html/pxe

2)提供 RHEL6 客户机的仓库配置文件

[root@pxesvr ~]# vim  /var/www/html/pxe/rhel6.repo

[rhel-packages]

name=Red Hat Enterprise Linux 6.7

baseurl=http://192.168.4.254/rhel6

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[other]

name=Other Packages

baseurl=http://192.168.4.254/other

gpgcheck=0

3)提供 CentOS6 客户机的仓库配置文件

注意:CentOS6系统的光盘库包括有LibreOfffice4.1版本的RPM包,因此不要添加other库。如果添加的话则yum安装LibreOffice的时候可能会出现版本冲突

[root@pxesvr ~]# vim  /var/www/html/pxe/centos6.repo

[base]

name=CentOS 6.7

baseurl=http://192.168.4.254/centos6

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CENTOS-6

6. 为客户机提供 kickstart 自动应答配置文件

1)提供 RHEL6 客户机的ks-rhel6.cfg应答文件

找一台 RHEL 6.7 客户机,配好yum仓库:

[root@pc205 ~]# cd  /etc/yum.repos.d/

[root@pc205 yum.repos.d]# rm  -rf  *.repo

[root@pc205 yum.repos.d]# wget  http://192.168.4.254/pxe/rhel6.repo

.. ..

正在保存至: “/etc/yum.repos.d/rhel6.repo”

100%[===============================>] 207      --.-K/s   in 0s      

2014-11-10 18:32:50 (24.7 MB/s) - 已保存“/etc/yum.repos.d/rhel6.repo” [207/207])

安装system-config-kickstart,并生成ks-rhel6.cfg应答文件。注意应安装图形桌面,并通过安装后脚本完成Yum仓库设置、备用管理员账号添加等操作。最后将ks-rhel6.cfg文件拷贝到PXE服务器上,部署到Web目录,内容参考如下:

[root@pxesvr ~]# vim  /var/www/html/pxe/ks-rhel6.cfg

firewall --disabled

install

url --url="http://192.168.4.254/rhel6"   //采用Web源

rootpw --iscrypted $1$Hc29SWRV$u.5zg3fkUEmgtggp4HLtz1

auth  --useshadow  --passalgo=sha512

graphical

firstboot --disable

keyboard us

lang zh_CN

selinux --disabled

logging --level=info

timezone  Asia/Shanghai

network  --bootproto=dhcp --device=eth0 --onboot=on

bootloader --append="crashkernel=auto rhgb quiet" --location=mbr --driveorder="sda"

zerombr

clearpart --all --initlabel

part /boot --fstype="ext4" --size=200

part swap --fstype="swap" --size=2048

part / --fstype="ext4" --grow --size=1

 

%post --interpreter=/bin/bash   //安装后脚本

useradd  -u  0  -o  zyadm

echo  pwd123  |  passwd  --stdin  zyadm

cd  /etc/yum.repos.d/

rm  -rf  *.repo

wget  http://192.168.4.254/pxe/rhel6.repo

yum  -y  install  ntfs-3g  libreoffice5.0*

%end

 

%packages

@base

@basic-desktop

@chinese-support

.. ..   //省略更多软件列表

%end

2)提供 CentOS6 客户机的ks-centos6.cfg应答文件

找一台 CentOS 6.7 客户机(PXE服务器本机即可),配好yum仓库:

[root@pxesvr ~]# cd  /etc/yum.repos.d/

[root@pxesvr yum.repos.d]# rm  -rf  *.repo

[root@pxesvr yum.repos.d]# wget  http://192.168.4.254/pxe/centos6.repo

.. ..

正在保存至: “/etc/yum.repos.d/centos6.repo”

100%[===============================>] 207      --.-K/s   in 0s      

2014-11-10 18:32:50 (24.7 MB/s) - 已保存“/etc/yum.repos.d/centos6.repo” [207/207])

然后安装system-config-kickstart,并生成ks-centos6.cfg应答文件。最后将ks-centos6.cfg文件拷贝到PXE服务器上,部署到Web目录,内容参考如下:

[root@pxesvr ~]# vim  /var/www/html/pxe/ks-centos6.cfg

firewall --disabled

install

url --url="http://192.168.4.254/centos6"   //采用Web源

rootpw --iscrypted $1$Hc29SWRV$u.5zg3fkUEmgtggp4HLtz1

auth  --useshadow  --passalgo=sha512

graphical

firstboot --disable

keyboard us

lang zh_CN

selinux --disabled

logging --level=info

timezone  Asia/Shanghai

network  --bootproto=dhcp --device=eth0 --onboot=on

bootloader --append="crashkernel=auto rhgb quiet" --location=mbr --driveorder="sda"

zerombr

clearpart --all --initlabel

part /boot --fstype="ext4" --size=200

part swap --fstype="swap" --size=2048

part / --fstype="ext4" --grow --size=1

 

%post --interpreter=/bin/bash   //安装后脚本

useradd  -u  0  -o  zyadm

echo  pwd123  |  passwd  --stdin  zyadm

cd  /etc/yum.repos.d/

rm  -rf  *.repo

wget  http://192.168.4.254/pxe/centos6.repo

%end

 

%packages

@base

@basic-desktop

@chinese-support

.. ..   //省略更多软件列表

%end

.. ..

步骤二:配置PXE装机服务各组件

1. 搭建DHCP服务器

1)安装dhcp软件包、配置dhcpd服务

[root@pxesvr yum.repos.d]# yum  -y  install  dhcp

[root@pxesvr ~]# vim /etc/dhcp/dhcpd.conf

default-lease-time 7200;

max-lease-time 14400;

subnet  192.168.4.0  netmask  255.255.255.0  {

    range  192.168.4.10  192.168.4.200;

    option routers 192.168.4.254;

    next-server  192.168.4.254;   #//TFTP引导服务器的地址

    filename  "pxelinux.0";   #//网卡引导文件名

}

2)启用dhcpd服务,并设置为开机自动运行

[root@pxesvr ~]# service  dhcpd  restart

正在启动 dhcpd:                                           [确定]

[root@pxesvr ~]# chkconfig  dhcpd  on

2. 搭建TFTP服务器

1)安装tftp-server软件包,并启用服务

[root@pxesvr ~]# yum  -y  install  tftp-server

[root@pxesvr ~]# chkconfig  tftp  on

[root@pxesvr ~]# chkconfig  xinetd  on

[root@pxesvr ~]# service  xinetd  restart

停止 xinetd:                                              [失败]

正在启动 xinetd:                                          [确定]

2)拷贝用来安装RHEL6客户机的内核文件、初始化镜像文件

[root@pxesvr ~]# mkdir  -p  /var/lib/tftpboot/rhel6/

[root@pxesvr ~]# cd  /var/www/html/rhel6/images/pxeboot/

[root@pxesvr pxeboot]# cp  -rf  vmlinuz  initrd.img  /var/lib/tftpboot/rhel6/

3)拷贝用来安装CentOS6客户机的内核文件、初始化镜像文件

[root@pxesvr ~]# mkdir  -p  /var/lib/tftpboot/centos6

[root@pxesvr ~]# cd  /var/www/html/centos6/images/pxeboot/

[root@pxesvr pxeboot]# cp  vmlinuz  initrd.img  /var/lib/tftpboot/centos6/

4)拷贝PXE网卡启动文件、图形模块文件、背景图片文件

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

[root@pxesvr ~]# cd  /var/lib/tftpboot/

[root@pxesvr tftpboot]# cp  /usr/share/syslinux/pxelinux.0  ./

[root@pxesvr tftpboot]# cp  /usr/share/syslinux/vesamenu.c32  ./

 

[root@pxesvr tftpboot]# cd  /usr/share/doc/syslinux-4.04/sample/

[root@pxesvr sample]# cp  syslinux_splash.jpg  /var/lib/tftpboot/splash.jpg

5)配置PXE引导菜单

[root@pxesvr ~]# mkdir  /var/lib/tftpboot/pxelinux.cfg

[root@pxesvr ~]# cd  /var/www/html/centos6/isolinux/

[root@pxesvr isolinux]# cp  isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default

[root@pxesvr isolinux]# chmod  644  /var/lib/tftpboot/pxelinux.cfg/default

 

[root@pxesvr ~]# vim  /var/lib/tftpboot/pxelinux.cfg/default

default vesamenu.c32

timeout 600

 

menu background splash.jpg

menu title Welcome to PXE Installation Server !

menu color border 0 #ffffffff #00000000

menu color sel 7 #ffffffff #ff000000

menu color title 0 #ffffffff #00000000

menu color tabmsg 0 #ffffffff #00000000

menu color unsel 0 #ffffffff #00000000

menu color hotsel 0 #ff000000 #ffffffff

menu color hotkey 7 #ffffffff #ff000000

menu color scrollbar 0 #ffffffff #00000000

 

label rhel6

        menu label Install RH^EL 6.7 ( Kickstart )

        kernel  rhel6/vmlinuz

        append  ks=http://192.168.4.254/pxe/ks-rhel6.cfg  initrd=rhel6/initrd.img

 

label centos6                                   

        menu label Install ^CentOS 6.7 ( Kickstart )

        kernel  centos6/vmlinuz

        append  ks=http://192.168.4.254/pxe/ks-centos6.cfg  initrd=centos6/initrd.img

 

label rescue

        menu label ^Rescue Installed System

        kernel  rhel6/vmlinuz

        append initrd=rhel6/initrd.img rescue

 

label local

        menu label Boot From ^Local Drive

        menu default

        localboot  1

6)确认TFTP目录及文件结构、测试tftp下载

[root@pxesvr isolinux]# ls  -R  /var/lib/tftpboot/

/var/lib/tftpboot/:

centos6  pxelinux.0  pxelinux.cfg  rhel6  splash.jpg  vesamenu.c32

 

/var/lib/tftpboot/centos6:

initrd.img  vmlinuz

 

/var/lib/tftpboot/pxelinux.cfg:

default

 

/var/lib/tftpboot/rhel6:

initrd.img  vmlinuz

 

[root@pxesvr ~]# yum  -y  install  tftp

[root@pxesvr ~]# tftp  192.168.4.254  -c  get  pxelinux.0

[root@pxesvr ~]# ls  -l  pxelinux.0

-rw-r--r--. 1 root root 26828 11月 10 19:40 pxelinux.0

步骤三:测试PXE选择装机

1. 找一台需要重装系统的虚拟机,从PXE网卡启动、验证安装过程

1)自动获取IP地址,连接指定的TFTP服务器。

2)下载并运行pxelinux.0启动文件。

3)读取 pxelinux.cfg/default 配置文件,显示图形引导菜单,如图-5所示。

4)根据用户选择安装RHEL6或CentOS6系统,或者超时后从硬盘启动。

构建PXE一键装机平台_第1张图片

图-5

2. 检查安装后的客户机系统

1)以备用管理员账号zyadm可登录(密码为pwd123),如图-6所示。

构建PXE一键装机平台_第2张图片

图-6 

2)通过“应用程序”菜单组可打开LibreOffice办公相关软件,如图-7所示。

构建PXE一键装机平台_第3张图片

图-7

3)已经装好ntfs-3g支持工具。

[root@pxesvr ~]# ntfs-3g --help

 

ntfs-3g 2015.3.14 integrated FUSE 27 - Third Generation NTFS Driver

Configuration type 1, XATTRS are on, POSIX ACLS are off

 

Copyright (C) 2005-2007 Yura Pakhuchiy

Copyright (C) 2006-2009 Szabolcs Szakacsits

Copyright (C) 2007-2015 Jean-Pierre Andre

Copyright (C) 2009 Erik Larsson

 

Usage:    ntfs-3g [-o option[,...]]

 

Options:  ro (read-only mount), windows_names, uid=, gid=,

          umask=, fmask=, dmask=, streams_interface=.

          Please see the details in the manual (type: man ntfs-3g).

 

Example: ntfs-3g /dev/sda1 /mnt/windows

 

News, support and information:  http://tuxera.com

你可能感兴趣的:(linux)