PXE高效批量网络装机

目录

PXE介绍

        pxe 优点

                实现的硬件条件

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

        PXE的实现过程

                搭建过程中的服务

TFTP服务

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

syslinux

DHCP服务

具体操作

kickstart 无人值守安装

 总结


PXE介绍

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

        pxe 优点

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

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

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

pxe是通过网卡引导启动

                实现的硬件条件

1.BIOS支持

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

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

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

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

                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系统,文件系统驱动等)

        PXE的实现过程

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 内核、启动菜单等数据,以及提供安装文件。

TFTP服务

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

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

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

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

syslinux

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

DHCP服务

        之前说过了

具体操作

首先在虚拟机上按一块网卡,仅主机模式

复制,ens33网卡

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost /etc/sysconfig/network-scripts]# ls
ifcfg-ens33  ifdown-ib    ifdown-ppp       ifdown-tunnel  ifup-ib    ifup-plusb   ifup-Team         network-functions
ifcfg-lo     ifdown-ippp  ifdown-routes    ifup           ifup-ippp  ifup-post    ifup-TeamPort     network-functions-ipv6
ifdown       ifdown-ipv6  ifdown-sit       ifup-aliases   ifup-ipv6  ifup-ppp     ifup-tunnel
ifdown-bnep  ifdown-isdn  ifdown-Team      ifup-bnep      ifup-isdn  ifup-routes  ifup-wireless
ifdown-eth   ifdown-post  ifdown-TeamPort  ifup-eth       ifup-plip  ifup-sit     init.ipv6-global
[root@localhost /etc/sysconfig/network-scripts]# cp ifcfg-ens33 ifcfg-ens38

 修改ens38

 重启网卡

[root@localhost /etc/sysconfig/network-scripts]# systemctl restart network

 安装dhcp服务

[root@localhost ~]# yum install dhcp* -y

 

覆盖配置文件 

[root@localhost ~]# cat /etc/dhcp/dhcpd.conf 
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#

[root@localhost ~]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y

//将模板文件覆盖掉配置文件

 vim编辑/etc/dhcp/dhcpd.conf

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

 安装tftp服务

[root@localhost ~]# yum install tftp-server -y
[root@localhost ~]# 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 ~]# vim /etc/xinetd.d/tftp 

#每项详解
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = no    //wait no表示客户机可以多台一起连接,yes表示客户机只能一台一台连接,表示是否开启多线程一起工作,否则需要等待
        user                    = root
        server                    = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot    //指定TFTP根目录(引导文件的存储路径) -c允许上传
        disable                 = no   //disable no表示开启TFTP服务 
        per_source              = 11    //通过限制一个主机的最大连接数,从而防止某个主机独占某个服务,这里每个IP地址的连接数是11个
        cps                     = 100 2   //表示服务器最多启动100个连接,如果达到这个数目将停止启动新服务2秒。在此期间不接受任何请求
        flags                   = IPv4
}

安装。引导程序文件需要先安装此服务

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

 将此地址复制到站点

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

安装vsftp服务

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

查看vsftpd的文件列表

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

创建挂载目录,在/var/ftp下

[root@localhost ~]# cd /var/ftp/
[root@localhost /var/ftp]# mkdir centos7

 挂载

[root@localhost /var/ftp]# mount /dev/sr0 /var/ftp/centos7/

 将initrd.img vmlinuz两个文件,复制到站点

[root@localhost /var/ftp]# cd centos7/
[root@localhost /var/ftp/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 /var/ftp/centos7]# cd images/
[root@localhost /var/ftp/centos7/images]# ls
efiboot.img  pxeboot  TRANS.TBL
[root@localhost /var/ftp/centos7/images]# cd pxeboot/
[root@localhost /var/ftp/centos7/images/pxeboot]# ls
initrd.img  TRANS.TBL  vmlinuz
[root@localhost /var/ftp/centos7/images/pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/

切换到/var/lib/centos7

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

配置开机项

可以仿照系统自带的模板,参照一下

root@localhost /var/lib/tftpboot]# cd /var/ftp/centos7/
[root@localhost /var/ftp/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 /var/ftp/centos7]# cd isolinux/
[root@localhost /var/ftp/centos7/isolinux]# ls
boot.cat  grub.conf   isolinux.bin  memtest     TRANS.TBL     vmlinuz
boot.msg  initrd.img  isolinux.cfg  splash.png  vesamenu.c32
[root@localhost /var/ftp/centos7/isolinux]# vim isolinux.cfg

 
 

 此时,四大文件全部安装成功了

[root@localhost /var/lib/tftpboot]# ls
default  initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz

开启服务,不报错意味着你已经成功了

[root@localhost /var/lib/tftpboot]# systemctl start dhcpd
[root@localhost /var/lib/tftpboot]# 
[root@localhost /var/lib/tftpboot]# systemctl start vsftpd
[root@localhost /var/lib/tftpboot]# 
[root@localhost /var/lib/tftpboot]# systemctl start tftp

新建一个虚拟机 

回车 

 

成功!!! 

kickstart 无人值守安装

安装图形化界面

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

在程序找到安装的kickstart 

基本配置 

安装方法 

 

引导装载程序选项 

分区 添加

添加/boot分区 

 分区,还可以再分,看自己,这里直接就根了

网络配置 

脚本可以写在/bin/bash 

保存 

保存在/var/ftp 

 切换到/var/ftp

[root@localhost ~]# cd /var/ftp/
[root@localhost /var/ftp]# ls
centos7  ks.cfg  pub

回到家目录,复制anaconda-ks.cfg软件包

[root@localhost /var/ftp]# cd 
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  公共  模板  视频  图片  文档  下载  音乐  桌面
[root@localhost ~]# vim anaconda-ks.cfg 

 #anaconda-ks.cfg 应答文件模板  复制里面的软件包

 #复制到 自己的ks文件中

[root@localhost /var/ftp]# vim ks.cfg

 切换到pxelinux.cfg/,编辑default文件

[root@localhost /var/lib/tftpboot]# cd pxelinux.cfg/
[root@localhost /var/lib/tftpboot/pxelinux.cfg]# vim default 

 保存退出,新建一个虚拟机,测试一下,他会自动帮你装

 总结

        实现PXE远程装机要求网卡支持PXE功能,且必须要有Linux安装源,以及可用的TFTP、DHCP服务器。无人值守的应答文件可通过Kickstart配置程序来完成,该程序由system-config-kickstart软件包提供。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小柏ぁ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值