• 问题

准备一台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系统,或者超时后从硬盘启动。

图-5

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

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

图-6

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

图-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[,...]] <device|image_file> <mount_point>

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

构建PXE一键装机平台相关推荐

  1. LINUX 构建PXE一键装机平台

    问题 准备一台CentOS6服务器,将其打造为PXE一键装机平台.首先以虚拟机作为客户机进行测试,测试通过以后可直接投入真实局域网使用. PXE服务器环境: 1)操作系统:CentOS 6.7 x86 ...

  2. 一键装机linux_linux系统学习第十八天《搭建一键装机平台》终结篇

    ###################################################### 搭建一键装机平台 一 .搭建DHCP服务 1.安装dhcp 2.修改配置文件 subnet ...

  3. 一键装机linux_linux系统学习第十八天《搭建一键装机平台》终结篇-阿里云开发者社区...

    在真机上,利用clone-vm7新建一台虚拟机,名字:PXE-Server 1.设置防火墙为trusted 2.当前及永久关闭SELinux 3.配置IP地址:192.168.4.168/24 4.搭 ...

  4. shell脚本一键装机(pxe配合kickstart无人值守)

    shell脚本一键装机(pxe配合kickstart无人值守) shell脚本实现无人值守安装 图文详细步骤可以参前期博文: PXE批量网络装机(超详细实验教程)教会你自动化批量安装linux 系统 ...

  5. Linux下KickStart+PXE无人值守装机服务器的配置

    1.什么是KickStart KickStart是一种无人职守安装方式.KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件:在其后的安装 ...

  6. rsync同步操作 inotify实时同步 cobbler装机平台 DNS主从结构

    目录 rsync同步操作 rsync基本使用 rsync+ssh同步:远程同步 实时同步 inotify实时同步 inotifywait监控 cobbler装机平台 cobbler简介 基本概念: 装 ...

  7. 腾讯云AI平台张文杰:构建一站式机器学习服务平台

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 5月24日,以"无界数据无限智能"为主题的腾讯"云+未来"峰会AI大数据分论坛在广州拉开帷幕.此次分 ...

  8. EMQX +阿里云计算巢,一站式构建云上物联网平台

    EMQX +阿里云计算巢,一站式构建云上物联网平台 随着物联网技术的逐步成熟,海量设备产生的数据为企业数字化提供了更加丰富的数据基础.如何将海量设备数据与企业生产管理系统.业务应用系统以及运维监控系统 ...

  9. 详述PXE批量装机环境

    部署PXE批量装机环境 DHCP概述及原理 • Dynamic Host Configuration Protocol – 动态主机配置协议,由 IETF(Internet 网络工程师任务小组)组织制 ...

最新文章

  1. 《强化学习周刊》第26期:UCL UC Berkeley发表深度强化学习中的泛化研究综述、JHU推出基于强化学习的人工决策模型...
  2. 想快速入门NLP?我们测评了15门最火课程,帮你找到最适合的
  3. windows 技术篇 - uispy 工具获取和使用,windows窗口属性快捷查看工具
  4. 超图桌面开发VC++ 入门程序
  5. MVC-控制器向View传值的三种方法
  6. Maven打包时去掉项目版本号
  7. 一同事恶搞static
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的同学录管理系统
  9. 全球首发!惯性导航导论(剑桥大学)第十部分
  10. Debian,从安装到喜欢
  11. 为什么要在主线程更新UI?
  12. 文件的创建、删除、移动和查找
  13. 三角函数逼近锯齿函数和阶梯函数
  14. UCOSII 学习笔记(卢有亮视频相关习题)
  15. 【Python】《Python网络爬虫权威指南》第三章任务:验证六度分隔理论
  16. C#控件的事件(鼠标单击等)没反应?
  17. Error:Attempt to invoke virtual method ‘void android.widget.TextView.setText(java.lang.CharSeq
  18. powermockito测试私有方法_03 增强测试: 静态、私有方法处理
  19. tr闭包_蓝色的梦 的动态 - SegmentFault 思否
  20. 找出和为k的所有组合

热门文章

  1. mysql日期从小到大排序,简述5种MySQL数据排序
  2. 开创现代数学的三位数学巨匠
  3. Overleaf中参考文献引用失败
  4. 面试的时候面试官问如何看待加班,该怎么回答?这些回答帮你!
  5. 抖音html啥意思,抖音参与话题什么意思,抖音话题什么意思
  6. 如何做好工控安全防护
  7. 用matlab仿真pid实验报告,PID实验报告..doc
  8. 国内纺织与服装领域知名的调查研究咨询公司
  9. linux内核启动分析 三,Linux内核分析 实验三:跟踪分析Linux内核的启动过程
  10. 交换机不同VLAN之间互通的几种方式,VLAN间通信和单臂路由,实战配置