PXE高效批量网络装机

385 阅读6分钟

PXE高效批量网络装机

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

1.硬盘

2.光驱

3.网络

2.系统安装过程

  • 加载boot loader
  • 加载启动安装菜单
  • 加载内核和initrd系统
  • 加载根系统
  • 运行anaconda的安装向导

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.什么是pxe

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

pxe是通过网卡引导启动

1.1实现的硬件条件

1.BIOS支持

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

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

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

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

2.实现过程讲解

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

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

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

4.bios执行引导程序

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

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

7.系统安装过程

2.png

3.搭建过程中服务详解

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

3.1TFTP服务

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

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

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

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

3.3 syslinux

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

4.pxe 优点

1.规模化:同时装配多台服务器 2.自动化:安装系统、配置各种服务 3.远程实现:不需要光盘、U盘等安装介质

5.实验——PXE局域网远程自动装机

大概过程

  1. 分配给同一局域网内新加机器的地址(配置文件)
  2. tftp服务端开启
  3. 安装syslinux 取得 pxelinux.0 文件、和vsftpd服务
  4. 挂载安装源(mount /dev/sr0 /var/ftp/centos7)
  5. 将四大文件拷入 (/var/lib/tftpboot initrd.img    pxelinux.0      pxelinux.cfg/default             vmlinuz)
  6. 将服务开启,关闭防火墙,selinux
服务端:
1、yum install dhcp tftp-server vsftpd syslinux -y    ###安装必要软件
2、cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf   ##将模板文件覆盖掉配置文件
3、vim /etc/dhcp/dhcpd.conf

###光标在33行"2yy"复制,27行p复制,添加修改出共5行
subnet 192.168.100.0 netmask 255.255.255.0 { ### ip网段是自己虚拟机仅主机下的网段
       range 192.168.100.10 192.168.100.50;   ### ip范围      
       option routers 192.168.100.100;   ### 网关 (自己虚拟机仅主机下的ip)
       next-server 192.168.100.100;    ### tftp的地址,也是自己虚拟机仅主机下的ip
       filename "pxelinux.0";          ### 标明需要使用 pxelinux.0 这个文件  
4、vim /etc/xinetd.d/tftp
      disable       =no                  ### 把原来等号后面的yes改成no
5、cd /var/ftp/
      mkdir centos7
      mount /dev/sr0  centos7
6、cd centos7/
      ls
      cd isolinux/
      ls
7、cp initrd.img  vmlinuz  /var/lib/tftpboot/  ##复制4大文件的2个
8、cd /var/lib/tftpboot/
      rpm -ql syslinux|grep pxelinux.0  ##复制目录“/usr/share/syslinux/pxelinux.0 ”
      cp /usr/share/syslinux/pxelinux.0  ./   ###复制这个文件到当前目录
      ls                  ### 目前已有3大文件,差1                                
9、mkdir pxelinux.cfg
      cd pxelinux.cfg/
      vim default              ####复制下面全部  ip是本机的网址

      default auto  
      prompt 1

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

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

      label linux rescue
             kernel vmlinuz
            append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7
10、cd ..
        tree       ### 可以看下必要软件是否配齐
11、vim /etc/sysconfig/network-scripts/ifcfg-ens33   ###修改仅主机模式下本机的ip

        IPADDR=192.168.100.100         ###设置本机ip
        GATEWAY=192.168.100.100     ###网关一定要是自己!
        #DNS1=8.8.8.8                            ### 注释掉

        ###  将虚拟机 改成仅主机模式!!!!         
12、systemctl restart network
        ip a       ####查看ip地址是否更改为局域网下的  192.168.100.100
        systemctl stop firewalld.service
        setenforce 0
        systemctl start dhcpd
        systemctl start tftp
        systemctl start vsftpd

######### 截止目前恭喜你,新机器已经可以正常地在局域网安装系统了!!###########
######### 下面将编辑配置文件,将装机过程变成  一键自动安装,解放双手  ###########

13、cd /etc/yum.repos.d/
        mkdir bak
        mv *.repo bak
        vim local.repo
 [local]
 name=local
 baseurl=file:///var/ftp/centos7
 gpgcheck=0

14、yum clean all && yum makecache

15、yum install system-config-kickstart -y   ###安装图形化工具

16、服务器界面左上角 >> 应用程序 >> 系统工具 >> Kickstart
基本设置:需设置root密码,安装后重启,在文本模式中执行安装,打√,其他选项自行选择
安装方法:执行全新安装,安装方法选FTP:服务器:192.168.100.100 本机ip地址 
FTP目录:只填 centos7(/var/ftp/centos7)
引导装载程序选项:安装新引导装载程序,其他选项忽略
分区信息:清除主引导记录,删除所有现存分区,初始化磁盘标签
布局:/boot xfs :500      swap:4096    /:选择:使用磁盘上全部未用空间
网络配置:点击添加网络设备 >> 网络设备:ens33 >> 确定
验证:不需要设置
防火墙设置:禁用!
显示配置:去掉“安装图形环境”的√
软件包选择:没有
预安装脚本:没有
安装后脚本:使用解释程序:/bin/bash
##  点击 文件 >> 保存 >> 左边选项 文件系统 >>var >> ftp >> 保存  ##

17、cd /var/ftp/    >> 可以ls 命令看一下,目录下会多一个 ks.cfg 文件

18、cd /var/lib/tftpboot/
        ls
        cd pxelinux.cfg/
        vim default
## 在 append initrd 那行的末尾添上 ks=ftp://192.168.100.100/ks.cfg  ##定义刚才生成的文件
##  可以加一个菜单选项:vim default ,第一行修改:default menu.c32  >> wq保存退出
    还需要复制菜单文件: cd /usr/share/syslinux/
                         cp menu.c32  /var/lib/tftpboot/

客户机:
重新建个虚拟机,内存设置高一点 :推荐4G   然后直接开启虚拟机!
###  需要改成仅主机模式,把光驱里设备状态下的"已连接","启动时连接"的√取消掉!!