PXE高效批量网络装机的解析

PXE技术

PXE批量部署的优点

  • 规模化:同时装配多台服务器
  • 自动化:安装系统,配置各种服务
  • 远程实现:不需要光盘,U盘等安装介质
  • 客户机获取服务器的IP地址:DHCP
  • 客户机从服务器进行下载:FTP
  • 在装机时对硬件自检,引导程序,内核文件镜像文件

PXE

  • PXE(Preboot eXcution Environment):
    预启动执行环境,在操作系统之前运行
  • 服务器:
    运行DHCP服务,用来分配地址,定位引导程序
    运行TFTP服务,提供引导程序下载(菜单,镜像,内核…)
    FTP服务,作为本地yum源
  • 客户端:
    网卡支持PXE协议
    主板支持网络引导

配置PXE装机服务器

基本部署过程

  • 准备CentOS 7 安装源(YUM仓库) ftp服务
  • 安装并启用TFTP服务 为客户机提供系统的文件下载的服务
  • 提供Linux内核,PXE引导程序等
  • 安装并启用DHCP服务
  • 配置启动菜单

准备CentOS 7 安装源

CentOS 7 安装源支持HTTP,FTP,NFS等协议发布

[root@localhost~]# yum -y install vsftpd
[root@localhost~]# mkdir /var/ftp/centos7
[root@localhost~]# cp -rf /media/cdrom/* /var/ftp/centos7/
[root@localhost~]# systemctl start vsftpd
cp -rf /mnt/* /var/ftp/

安装并启用TFTP服务

  • 在客户端上安装tftp-server软件包,启用tftp服务
  • 配置文件位于/etc/xinetd.d/tftp
[root@localhost~]# yum -y install tftp-server
[root@localhost~]# vi /etc/xinetd.d/tftp

server_args         =-s /var/lib/tftpboot
disable             = no                #修改配置值,启动服务

[root@localhost~]# systemctl start tftp   #启动
[root@localhost~]# systemctl enable tftp  #开机自启动

准备Linux内核,PXE引导程序

  • Linux内核,初始化镜像文件分别为vmlinuz和initrd.img
  • 引导程序为pxelinux 0,由软件包syslinux提供
[root@localhost ~]# cd /media/cdrom/images/pxeboot
#位于系统镜像文件夹 images/pxeboot下               共享目录             
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot
[root@localhost ~]# yum -y install syslinux
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/ tftpboot                                #也拷贝到tftp的根目录

DHCP服务的PXE设置

[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# vi /etc/dhcp/dhcpd.conf

subnet 192. 168.188 netmask 255.255.255.0 {
option routers 192. 168.188.254;
option domain-name-servers 192.168.188.20,192.168.188.254;
range 192.168.188.100 192.168.188.200;

next-server 192.168.188.254; #next-server:指定TFTP服务器地址
filename "pxelinux.0";    #filename:指定要下载的引导程序文件

[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl enable dhcpd

配置启动菜单文件

[root@localhost ~]# vi /var/ib/tftpboot/pxeliqux.cfg/default   #确保pxelinux.cig目录已存在

default auto
prompt 1 #表示客户机安装系统,需要手动进行时。进行使用
label auto
      kernel vmlinuz
      append initrd=initrd.img method=ftp://192. 168.188.254/centos7
label linux text

      kernel vmlinuz    #文本模式安装
      append text initrd=initrd.img method=fp://192. 168.4.254/centos7
label linux rescue

      kernel vmlinuz          # 进入救援模式
append rescue initrd=initrd.img method=ftp://192.168.188.254/cento8t

验证PXE网络安装

  • 调整BIOS设置,以便网络引导
  • 自动获取IP地址,并指定CentOS 7安装源
  • 其余过程与本地安装相同
  • 若用VMware虚拟机测试,虚拟内存至少2G

安装流程

服务器上

  • 安装tftp
    yum -y install tftp-server
  • 编辑配置文件
    vi /etc/xinetd.d/tftp
  • 安装DHCP
    yum -y install dhcp
  • 在编辑配置文件前先切换网卡到VMnet1(仅主机模式)
  • 安装ftp
    yum -y install vsftpd
  • 挂载
    mount /dev/cdrom /var/ftp/pub
  • 编辑配置文件
    vi /etc/vsftpd/vsftpd.conf
#添加
anon_umask=022      #设置匿名账户的权限是755
anon_other_write_enable=YES    #允许匿名账户其它的写权限
#修改
anon_upload_enable=YES        #允许匿名账户上传
anon_mkdir_write_enable=YES      #允许匿名账户新建文件或目录
listen=YES                   #  监听IPv4
listen_ipv6=NO                                 #监听IPv6
  • 安装引导加载程序
    yum -y install syslinux
  • 复制网络启动所需要的文件到tftp服务器的根目录下
[root@server1 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@server1 ~]# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
Linux引导加载模块
[root@server1 ~]# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
压缩内核
[root@server1 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
创建特定的目录存放菜单文件
[root@server1 ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default    #启动菜单
[root@server1 ~]# cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/
图形化启动菜单
  • 完成以上操作
    修改安装的配置文件
[root@server1 ~]# vi /var/lib/tftpboot/pxelinux.cfg/default

default auto   #默认图形化安装
prompt 1       #需要用户选择
label auto
      kernel vmlinuz         # 指定图形化界面的光盘引导路径
      append initrd=initrd.img method=ftp://192.168.188.132/
label linux text
      kernel vmlinuz         # 指定文本的光盘引导路径
      append text initrd=initrd.img method=ftp://192.168.188.132/
label linux rescue
      kernel vmlinuz         # 指定救援模式的光盘引导路径
      append rescue initrd=initrd.img method=ftp://192.168.188.132/
  • 启动所有服务器
    安装xinetd 用于管理tftp
[root@server1 ~]# yum -y install xinetd
[root@server1 ~]# systemctl start dhcpd
[root@server1 ~]# systemctl start vsftpd
[root@server1 ~]# chkconfig --level 35 xinetd on
[root@server1 ~]# chkconfig --level 35 tftp on
[root@server1 ~]# systemctl start tftp
[root@server1 ~]# netstat -anpu | grep dhcpd
[root@server1 ~]# netstat -anpt | grep vsftpd
[root@server1 ~]# systemctl stop firewalld      #关闭防火墙
[root@server1 ~]# setenforce 0                        #关闭核心防护

kickstart

kickstart无人值守技术

  • 创建应答文件,预定定义好各种安装设置
  • 免去交互设置过程,从而实现全自动化安装

准备应答文件

应答文件的来源

  • 编辑CentOS 7 系统中现有的应答文件
  • /root/anaconda-ks.cfg (系统自带的)
  • 使用system-config-kickstart工具创建新的应答文件
  • 需要安装system-config-kickstart软件包

验证自动安装

  • 将客户机以PXE方式引导
  • 系统会自动完成安装,并配置好软件仓库
  • 整个安装过程无需手动干预

开始进行PXE自动安装----无人值守操作设置

在服务器上安装文件,可以图形化界面向导来配置安装应答文件
[root@server1 ~]# yum -y install system-config-kickstart
进入kickstart
在这里插入图片描述
设置默认语言,时区,Root密码,安装后重启
在这里插入图片描述
设置安全方法:ftp FTP服务器:ftp://192.168.6.10 目录:pub
在这里插入图片描述
引导装载程序选项 :安装新引导装载程序
在这里插入图片描述
分区信息设置: 初始化磁盘标签
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
防火墙配置 禁用
在这里插入图片描述
安装后脚本设置
在这里插入图片描述

cd /etc/yum.repos.d
rm -f *
echo -e "[base]" >> aa.repo
echo -e "name=yum" >> aa.repo
echo -e "baseurl=ftp://192.168.6.10/pub" >> aa.repo
echo -e "gpgcheck=0" >> aa.repo
echo -e "enable=1" >> aa.repo

修改完成后进行文件保存
保存路径/var/ftp

在这里插入图片描述
将服务器本地anaconda. ks. cfg内的从%packages. … 到%end内容即为gnome桌面开发环境必装软件添加进ks. cfg的%end下

[root@server1 ~]# vi anaconda-ks.cfg     #复制客户机需要的安装软件包
[root@server1 ~]# cd /var/ftp
[root@server1 ftp]# ls -lh
[root@server1 ftp]# vi ks.cfg

在这里插入图片描述

在这里插入图片描述
完成以上操作,PXE自动安装设置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值