PXE高效批量网络装机

本文详细介绍了PXE预启动执行环境的工作原理、系统安装流程,涉及TFTP、DHCP、syslinux和 Kickstart无人值守安装。通过一步步操作,展示了如何搭建PXE服务器并进行Linux服务器的网络安装。
摘要由CSDN通过智能技术生成

目录

一、什么是PXE

 二、装系统方式、步骤及光盘文件

1.系统装机的三种引导方式

2.系统安装过程

3、Linux安装光盘的安装相关文件

三、实现过程 

四、搭建过程中用到的服务解释 

1、TFTP服务

2、vsftp:安装系统镜像文件获取方式

3、syslinux

4、DHCP服务

PXE优点

五、PXE搭建操作过程 

1、添加一个网卡,设置为仅主机模式

2、复制一个网卡配置文件,并修改

3、安装DHCP服务,并修改配置文件

4、安装TFTP协议,并修改配置文件

5、安装syslimux服务

 6、安装vsftp服务,修改配置文件

7、 开启所有服务

六、kickstart 无人值守安装

1、操作步骤

(1)安装kickstart

 (2)进入虚拟机进行配置

(3)修改配置文件


一、什么是PXE

PXE 的全称是 preboot execute environment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。

pxe是通过网卡引导启动

1.1实现的硬件条件

1.BIOS支持

2.网卡支持(现在基本都已支持)

3.需要在bios中开启开关,服务器一般没打开(bmc界面里打开)

4.网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置

5.服务器通过 tftp服务(简单文件传输协议)来提供系统内核和引导镜像的下载

 二、装系统方式、步骤及光盘文件

1.系统装机的三种引导方式

1.硬盘

2.光驱

3.网络

2.系统安装过程

  • 加载boot loader

  • 加载启动安装菜单

  • 加载内核和initrd系统

  • 加载根系统

  • 运行anaconda的安装向导

3、Linux安装光盘的安装相关文件

在系统光盘的isolinux目录下有和安装相关的文件

  • boot.cat: 相当于grub的第一阶段

  • isolinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于

    SYSLINUX项目

  • isolinux.cfg:启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找

    isolinux.cfg文件

  • vesamenu.c32:是光盘启动后的启动菜单图形界面,也属于SYSLINUX项目,menu.c32提供纯文

    本的菜单

  • memtest:内存检测程序

  • splash.png:光盘启动菜单界面的背景图

  • vmlinuz:是内核映像

  • initrd.img:ramfs文件(精简版的linux系统,文件系统驱动等)

三、实现过程 

1.网卡需要查找相关的dhcp服务器(获取地址时间)

2.找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)

3.网卡使用tftp客户端吧引导程序加载到内存中来

4.bios执行引导程序

5.引导程序会去TFTP去查找配置文件

6.根据配置文件去引导安装系统

7.系统安装过程

四、搭建过程中用到的服务解释 

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

1、TFTP服务

TFTP(简单文件传输协议):内核和引导文件

是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。

2、vsftp:安装系统镜像文件获取方式

可以使用http ftp等方式,ftp文件传输的一种。

3、syslinux

syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。

4、DHCP服务

DHCP是动态主机配置协议,用来给客户机分配ip地址。

PXE优点

1.规模化:同时装配多台服务器

2.自动化:安装系统、配置各种服务

3.远程实现:不需要光盘、U盘等安装介质

五、PXE搭建操作过程 

1、添加一个网卡,设置为仅主机模式

 

 查看虚拟机网卡分配的地址:192.168.234.1

2、复制一个网卡配置文件,并修改

注意:输入systemctl   restart   network 重启网卡服务,不然后面的DHCP服务会不能开启 

测试能否ping通

3、安装DHCP服务,并修改配置文件

 [root@localhost network-scripts]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf           //给配置文件复制模板
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[root@localhost network-scripts]# 

[root@localhost network-scripts]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[root@localhost network-scripts]# cd /etc/dhcp/
[root@localhost dhcp]# ls
dhclient.d  dhclient-exit-hooks.d  dhcpd6.conf  dhcpd.conf  scripts
[root@localhost dhcp]# vim dhcpd.conf 




subnet 192.168.234.0 netmask 255.255.255.0 {
  range 192.168.234.10 192.168.234.20;
  option routers 192.168.234.1;
  next-server 192.168.234.50;        //搭建的服务器网卡地址
  filename "pxelinux.0";
}


4、安装TFTP协议,并修改配置文件

[root@localhost dhcp]# yum install -y tftp-server.x86_64 
 

[root@localhost dhcp]# rpm -qc tftp-server 
/etc/xinetd.d/tftp
[root@localhost dhcp]# rpm -ql tftp-server 
/etc/xinetd.d/tftp
/usr/lib/systemd/system/tftp.service
/usr/lib/systemd/system/tftp.socket
/usr/sbin/in.tftpd
/usr/share/doc/tftp-server-5.2
/usr/share/doc/tftp-server-5.2/CHANGES
/usr/share/doc/tftp-server-5.2/README
/usr/share/doc/tftp-server-5.2/README.security
/usr/share/man/man8/in.tftpd.8.gz
/usr/share/man/man8/tftpd.8.gz
/var/lib/tftpboot
[root@localhost dhcp]# vim /etc/xinetd.d/tftp    //修改配置文件







  socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no          //开启服务
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4

5、安装syslimux服务

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

[root@localhost dhcp]# rpm -ql syslinux |grep pxelinux.0   //查看配置文件
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost dhcp]# cp /usr/share/sys
syslinux/              system-config-printer/ systemd/               systemtap/             
[root@localhost dhcp]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/  //复制
[root@localhost dhcp]# rpm -ql tftp-server     //查看配置文件
/etc/xinetd.d/tftp
/usr/lib/systemd/system/tftp.service
/usr/lib/systemd/system/tftp.socket
/usr/sbin/in.tftpd
/usr/share/doc/tftp-server-5.2
/usr/share/doc/tftp-server-5.2/CHANGES
/usr/share/doc/tftp-server-5.2/README
/usr/share/doc/tftp-server-5.2/README.security
/usr/share/man/man8/in.tftpd.8.gz
/usr/share/man/man8/tftpd.8.gz
/var/lib/tftpboot       //把要复制的配置文件复制到此文件下
[root@localhost dhcp]# 

 [root@localhost dhcp]# ls /var/lib/tftpboot/          //查看是否复制成功
pxelinux.0
[root@localhost dhcp]# 

 6、安装vsftp服务,修改配置文件

[root@localhost dhcp]# yum install -y vsftpd
 

[root@localhost dhcp]# rpm -ql vsftpd 

/var/ftp
/var/ftp/pub
 

[root@localhost dhcp]# cd /var/ftp/
[root@localhost ftp]# ls
pub
[root@localhost ftp]# mkdir centos7
[root@localhost ftp]# mount /dev/sr0 centos7/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ftp]# 
 

[root@localhost ftp]# cd centos7/
[root@localhost centos7]# ls
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
[root@localhost centos7]# cd images/
[root@localhost images]# ls
efiboot.img  pxeboot  TRANS.TBL
[root@localhost images]# cd pxeboot/
[root@localhost pxeboot]# ls
initrd.img  TRANS.TBL  vmlinuz
[root@localhost pxeboot]# 
 

[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/
[root@localhost pxeboot]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# ls
initrd.img  pxelinux.0  vmlinuz
[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vim default
 

default auto

prompt 1


label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.234.50/centos7

label  text
        kernel vmlinuz
        append text initrd =initrd.img method=ftp://192.168.234.50/centos7

label rescue
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.234.50/centos7
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                                                                
~                                                                                

7、 开启所有服务

[root@localhost pxelinux.cfg]# systemctl start dhcpd
[root@localhost pxelinux.cfg]# systemctl start vsftpd
[root@localhost pxelinux.cfg]# systemctl start tftp
[root@localhost pxelinux.cfg]# 
 

新建一个虚拟机用网络源安装,选择仅主机模式,内存2GB以上,当出现图形化安装界面,证明PXE搭建成功。(半自动安装)

六、kickstart 无人值守安装

kickstart文件主要包括三个部分:命令段,程序包段,脚本段

命令段:指明各种安装前配置,如键盘类型等

命令段中的常见命令:

keyboard: 设定键盘类型

lang: 语言类型

zerombr:清除mbr

clearpart:清除分区

part: 创建分区

rootpw: 指明root的密码

timezone: 时区

text: 文本安装界面

network:指定网络设置

firewall:设置防火墙设置

selinux:设置selinux设置

reboot:安装完自动重启

user:安装完成后为系统创建新用户

url: 指明安装源

程序包段:指明要安装的程序包组或程序包,不安装的程序包等

%packages

@^environment group: 指定环境包组,如:@^minimal-environment

@group_name

package

-package

%end

脚本段:

%pre: 安装前脚本

%post: 安装后脚本

注意:

CentOS 8,7,6 不同版本的kickstart文件格式不尽相同,不可混用

1、操作步骤

(1)安装kickstart

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

 (2)进入虚拟机进行配置

(3)修改配置文件

 将第一次安装系统记录的安装过程复制到vim  ks.cfg,保存退出

 

%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony

%end
 

然后修改vim default 文件

default auto

prompt 1


label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.234.50/centos7  ks=ftp://192.168.234.50/ks.cfg        //指明ks文件地址

label linux text
        kernel vmlinuz
        append text initrd =initrd.img method=ftp://192.168.234.50/centos7

label linux rescue
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.234.50/centos7
~                                                                                                                                
~                                                                                                                                
~                                                                  

 验证:新建一个虚拟机用网络源安装,选择仅主机模式,内存2GB以上,当出现图形化安装界面,证明kickstart搭建成功。(全自动安装)

注意:验证过程中可能会遇到全自动配置没有问题,但就是自动安装启动不了,这时可以参照下图检查设置然后修改,还不行就多重启几次。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值