部署PXE远程安装服务

简介: 部署PXE远程安装服务

什么是PXE        

       PXE是由intel公司开发的网络引导技术,工作在Clinet/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。若要搭建PXE网络体系,必须满足以下几个前提条件。

  1. 客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。
  2. 网络中有一台DHCP服务器以便客户机自动分配地址,指定引导文件位置。
  3. 服务器通过TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。

       其中第一条实际上是硬件要求,目前绝大多数服务器和大多数PC都能够提供此支持,只需在BIOS设置中允许从Network或LAN启动即可。

搭建PXE远程安装服务器

       本例的PXE远程安装服务器集成了CentOS7安装源、TFTP服务、DHCP服务、能够向客户机裸机发送PXE引导程序、Linux内核、启动菜单等数据,以及提供安装文件。

准备CentOS7安装源

CentOS7的网络安装源一般通过HTTP、FTP协议发布,另外也支持NFS协议。

       例如,若采取FTP协议发布安装源,可以在服务器上部署一个YUM软件仓库。(没有vsftpd用yum安装一个)

1.  [root@localhost ~]# mount /dev/cdrom /media
2.  mount: /dev/sr0 写保护,将以只读方式挂载
3.  [root@localhost ~]# yum -y install vsftpd
4.  [root@localhost ~]# systemctl start vsftpd
5.  [root@localhost ~]# mkdir -p /var/ftp/centos7
6.  [root@localhost ~]# cp -rf /media/* /var/ftp/centos7/

安装并启用TFTP服务

       TFTP服务由tftp-server软件包提供,配置文件位于/etc/xinetd.d/tftp。配置时只要将“disable=yes”改成“disable=no”,然后启动TFTP服务即可。

1.  [root@localhost ~]# yum -y install tftp-server
2.  [root@localhost ~]# vim /etc/xinetd.d/tftp 
3.  ......//省略部分
4.  disable                 = no                                    //将yes改为no
5.  ......//省略部分
6.  [root@localhost ~]# systemctl start tftp
7.  [root@localhost ~]# systemctl enable tftp

准备Linux内核、初始化镜像文件

       用于PXE网络安装的linux内核、初始化镜像文件可以从CentOS7系统光盘获得,分别为vmlinuz和initrd.img,位于文件夹images/pxeboot下。找到这两个文件并将其复制到tftp服务的根目录下。

1.  [root@localhost ~]# cd /media/images/pxeboot/
2.  [root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/

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

       用于PXE网络安装的引导程序为pxelinux.0,由软件包syslinux提供。安装好软件包sysLinux,然后将文件pxelinux.0也复制到tftp服务的根目录下。

1.  [root@localhost ~]# yum -y install syslinux
2.  [root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

       启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像。默认的启动菜单文件为default,应放置在tfpt根目录的pxelinux.cfg子目录下,典型的启动菜单配置可参考以下操作手动建立。

1. [root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
2. [root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
3. default auto                                           //指定默认入口名称
4. prompt 1                                               //1表示等待用户控制
5. label auto
6.          kernel vmlinuz
7.          append initrd=initrd.img method=ftp://192.168.1.10/centos7
8. label linux text
9.          kernel vmlinuz
10.          append text initrd=initrd.img method=ftp://192.168.1.10/centos7
11. label linux rescue
12.          kernel vmlinuz
13.          append rescue initrd=initrd.img method=ftp://192.168.1.10/centos7
14.

       上述配置记录中定义了三个引导入口,分别为图形安装(默认),文本安装,救援模式,其中prompt用来设置是否等待用户选择;label用来自定义并分隔启动项;kernel和append用来定义引导参数。引导入口的个数及内容根据需要自行定义。例如,实现无人值守安装时只需要使用一个入口就够了。

安装并启动DHCP服务

       由于PXE客户机通常是尚未装系统的裸机,因此为了与服务器取得联系并正确下载星官引导文件,需要预先配置好DHCP服务来自动分配地址并告知引导文件的位置。如PXE服务器的IP地址为192.168.1.10,dhcp地址池为192.168.1.100~192.168.1.200,则可以参考以下操作来搭建DHCP服务器。

1.  [root@localhost ~]# yum -y install dhcp
2.  [root@localhost ~]# vim /etc/dhcp/dhcpd.conf
3.  末行模式输入:r /usr/share/doc/dhcp-*/dhcpd.conf.example                           //复制配置文件到当前位置
4.  ......//省略部分
5.  # A slightly different configuration for an internal subnet.
6.  subnet 192.168.1.0 netmask 255.255.255.0 {                                      //地址和掩码
7.    range 192.168.1.100 192.168.1.200;                                            //dhcp地址池
8.    option domain-name-servers ns1.internal.example.org;
9.    option domain-name "internal.example.org";
10.    option routers 192.168.1.10;                                                  //网关
11.    default-lease-time 600;
12.    max-lease-time 7200;
13.  next-server 192.168.1.10;                                                       //指定TFTP服务器的地址(加)
14.  filename "pxelinux.0";                                                          //指定PXE引导程序的文件名(加)
15.  }
16.  [root@localhost ~]# systemctl start dhcpd
17.  [root@localhost ~]# systemctl enable dhcpd

验证PXE网络安装

       对于新购买的服务器或PC裸机,一般是不需要额外设置;若要为已有系统的主机重装系统,则可能需要修改BIOS设置,将“Boot First”设置为“NETWORK”或“LAN”,然后重启主机,若使用vmware创建的虚拟机测试,内存至少需要2GB,否则在启动安装时会报错。

       如果服务器配置正确、网络连接、PXE支持等都没问题,则客户机重启后将自动配置IP地址,然后从TFTP中获取引导程序pxelinux.0,并根据引导菜单配置提示用户指定启动入口。

       VMware网络中需要关闭本机DHCP。

       在提示"boot:"后直接按Enter键(或执行“auto”命令),将会进入默认的图形安装入口;执行“linux text”命令,则进入文本安装入口;执行“linux rescue”命令,则进入救援模式。

       直接按Enter键确认后将自动通过网络下载安装文件,并进入图形安装程序界面,说明PXE网络安装基本成功。后续安装步骤和使用光盘安装类似。

实现Kickstart无人值守安装

       PXE安装介质不在受限于光盘,移动硬盘等设备,大大提高了系统安装的灵活性。然而,安装期间仍需要手动选择语言,键盘类型,指定安装源等一系列交互操作,当需要批量安装时非常不方便。通过使用Kickstart工具配置安装应答文件,自动完成安装过程中的各种设置,从而无需手动干预,提高网络装机效率。

准备安装应答文件

       在CentOS7系统中安装system-config-kickstart工具之后,即可通过图形化向导工具来配置安装应答文件。如果用户对自动应答文件的配置比较熟悉,也可以直接编辑CentOS7安装后自动创建的应答文件(/root/anaconda-ks.cfg),根据需要适当修改后使用。

没有kickstart工具的话安装一下

[root@localhost ~]# yum -y install system-config-kickstart

配置安装应答参数

       通过桌面菜单“应用程序”→“系统工具”→“kickstart”即可打开“kickstart配置程序”窗口。在“kickstart配置程序”窗口中可以针对基本配置、安装方法、引导装载程序选项、分区信息、网络配置等各种安装设置进行指定。

基本配置

       基本配置。例如,默认语言设为中文(简体),时区设为上海,root密码设为123456,高级配置中勾选安装后重启。

安装方法

引导装载程序选项

分区信息

       在分区信息界面,需要正确规划硬盘分区方案。例如,划分500MB给/boot分区,2GB给/home分区,2GB给/swap,剩余的给根分区。

网络配置

防火墙配置

软件包选择

       CentOS7系统开始不再提供软件包的选择,如果需要安装软件包,可以根据需要将/root/anaconda-ks.cfg的软件包安装脚本复制到ks.cfg文件中,只需要复制%packages到%end部分即可,在%packages到%end之间,包含以@开头的软件包列表,将不需要的软件名删除,剩下的就是系统会自动安装的软件包。例如,仅保留以下内容即为采用最小化安装。

1. %packages
2. @^minimal
3. %end

安装脚本

       在预安装脚本界面、安装后脚本界面中,可以分别添加在安装前、安装后自动运行的可执行语句。此行设置是服务器的自动化配置更加容易。例如,可以使客户机在完成安装后自动设置YUM软件仓库,需要注意的是,应确保所编写的代码能够正确执行,以免安装失败。

1.  rm -rf /etc/yum.repos.d/*
2.  echo -e '[base]\nbaseurl=ftp://192.168.1.20/centos7\nenabled=1\ngpgcheck=0' > /etc/yum.repos.d/centos7.repo

       选择“Kickstart配置程序”窗口的“文件”→“保存”命令,指定目标文件夹、文件名、将配置好的应答文件保存为文本文件,如/root/ks.cfg。以后要修改此应答文件配置,可以在“kickstart配置程序”窗口中打开进行调整,或者直接vim等文本编辑工具进行修改。

保存应答文件后将以下三行内容添加到ks.cfg文件中

1. [root@localhost ~]# vim /root/ks.cfg
2. ......//省略部分内容
3. %packages
4. @^minimal
5. %end

实现批量自动装机

       有了自动安装的应答文件以后,只要将其放置PXE安装服务器的FTP目录下,并适当的修改引导菜单,就可以实现基于网络的批量自动装机了。

启用自动应答文件

       在PXE远程安装服务器中,将建立的应答文件复制到/var/ftp/centos7目录下,是客户机能够通过ftp://192.168.1.20/centos7/ks.cfg访问;然后编辑引导菜单文件default,添加ks引导参数以指定ks.cfg应答文件的URL路径。

1.  [root@localhost ~]# cp /root/ks.cfg /var/ftp/ks.cfg
2.  [root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
3.  default auto
4.  prompt 0                                               //0表示不等待用户控制
5.  label auto
6.      kernel vmlinuz
7.      append initrd=initrd.img method=ftp://192.168.1.20/centos7 ks=ftp://192.168.1.10/ks.cfg                           //ks引导参数

验证无人值守安装

       启用自动应答安装之后,当客户及机每次以PXE方式引导时,将自动下载ks.cfg应答配置文件,然后根据其中的设置安装CentOS7系统,而无需手工干预,这样就可以同时为多台客户机安装系统了。需要注意的是,如果是在VMware虚拟机环境下,需要禁用VMware的DHCP功能,否则安装文件将无法加载。客户机安装完成以后,检查YUM仓库配置,可以发现已经按照“安装后脚本”的设置自动建立了/etc/yum.repos.d/centos7.repo文件。


相关文章
|
存储 程序员
《微机原理与接口技术》简答题总结(一)
《微机原理与接口技术》简答题总结
1054 0
《微机原理与接口技术》简答题总结(一)
|
2月前
|
自然语言处理 开发者
拿下30个第1名的腾讯混元翻译模型,开源!
腾讯混元又带来一个在国际机器翻译比赛拿下30个第1名的翻译模型Hunyuan-MT-7B,它总参数量仅7B,支持33个语种、5种民汉语言/方言互译,是一个能力全面的轻量级翻译模型。
422 0
|
JavaScript
VUE element-ui之el-tree树形控件勾选节点指定节点自动勾选(指定节点为必选项)
VUE element-ui之el-tree树形控件勾选节点指定节点自动勾选(指定节点为必选项)
1982 0
VUE element-ui之el-tree树形控件勾选节点指定节点自动勾选(指定节点为必选项)
微信文件传输助手文件夹在哪?一起来找找
  微信文件传输助手是微信电脑版与手机微信之间相互传输图片等文件的好工具,但很多童鞋都找不到微信文件传输助手文件夹在哪,就让我们一起找找吧   1.先说说手机微信文件传输助手文件夹在哪吧   文件夹路径为/Tencent/MicroMsg/Download/     2.
4013 0
|
6月前
|
JavaScript 安全 开发者
鸿蒙开发:如何解决软键盘弹出后的间距
三种方式,比较推荐方式一,简单便捷,一行代码便可以搞定,当然,另外两种也是实现的办法,在实际的开发中,选择适合的即可。
146 14
鸿蒙开发:如何解决软键盘弹出后的间距
|
SQL 关系型数据库 分布式数据库
|
安全 数据处理 芯片
中央处理器的发展史
中央处理器的发展史
804 0
中央处理器的发展史
|
存储 数据挖掘 数据处理
使用Python将数据表中的浮点数据转换为整数:详细教程与案例分析
使用Python将数据表中的浮点数据转换为整数:详细教程与案例分析
664 2