搭建部署 网络PXE

PXE网络装机


网络装机的优势

    规模化:同时装配多台主机

    自动化:装系统,配置各种服务

    远程实现:不需要光盘,U盘等物理安装介质

    

    PXE Pre-boot eXecution Environment

      域启动执行环境,在操作系统之前运行

      可用于远程安装

    工作模式

      PXE client 集成在网卡的启动芯片中

      当计算机引导时,从网卡芯片中把PXE client 调入内存

    执行,获取PXE server配置,显示菜单,根据用户选择将远程引导程序下载到本机运行

    

     需要服务

        DHCP服务,分配IP地址,定位引导程序

        TFTP服务,提供引导程序下载

        HTTP服务(或FTP/NFS),提供yum安装源


PXE网络装机服务器部署


环境准备

        配置PXE服务的ip地址 为 192.168.4.7

          为了方便实验 关闭防火强 和 SELinux

    

一、构建DHCP服务,指定下一个服务器的IP地址


        [[email protected] ~]# vim /etc/dhcp/dhcpd.conf 

        subnet 192.168.4.0 netmask 255.255.255.0 {

          range 192.168.4.100 192.168.4.200;

          option domain-name-servers 192.168.4.7;

          option routers 192.168.4.254;

          default-lease-time 600;

          max-lease-time 7200;

          next-server 192.168.4.7;#指定下一个服务器IP地址

          filename "pxelinux.0";#指定网卡引导文件

        }

        

        pxelinux,0(网卡引导文件):安装说明书,二进制文件

        

        安装一个软件,生成pxelinux.0

        

        [[email protected] ~]# systemctl restart dhcpd

        

二.搭建TFTP服务

TFTP:简单的文件传输协议 端口:69

服务端程序:tftp-server

服务名:tftp

默认共享路径:/var/lib/tftpboot

客户端程序:tftp

1.安装tftp-server

[[email protected] ~]# yum -y install tftp-server.x86_64

2.启动tftp服务,并设置为开机自启

[[email protected] ~]# systemctl restart tftp

[[email protected] ~]# systemctl enable tftp

3.部署pxelinux.0文件

[[email protected] ~]# yum provides */pxelinux.0  #查询仓库中那一个包产生该文件

...

syslinux-4.05-12.el7.x86_64 : Simple kernel loader which boots from a FAT

                   : filesystem

...

[[email protected] ~]# yum -y install syslinux-4.05-12.el7.x86_64 

[[email protected] ~]# rpm -ql syslinux | grep pxelinux.0 #查询软件包,安装清单

/usr/share/syslinux/pxelinux.0

[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

[[email protected] ~]# ls /var/lib/tftpboot/

pxelinux.0

4.部署default默认的菜单文件

[[email protected] ~]# mount /dev/cdrom /mnt/

 mount: /dev/sr0 写保护,将以只读方式挂载

[[email protected] ~]# mkdir /var/lib/tftpboot/pxelinux.cfg/

[[email protected] ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

[[email protected] ~]# chmod 644 /var/lib/tftpboot/pxelinux.cfg/default

[[email protected] ~]# ls -l /var/lib/tftpboot/pxelinux.cfg/default

 -rw-r--r--. 1 root root 3166 11月 16 02:26 /var/lib/tftpboot/pxelinux.cfg/default

5.部署图形的模块  vesamenu.c32 

[[email protected] ~]# cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/

[[email protected] ~]# ls /var/lib/tftpboot/

 pxelinux.0  pxelinux.cfg  vesamenu.c32

6.修改菜单文件 /var/lib/tftpboot/pxelinux.cfg/default

[[email protected] ~]# vim /var/lib/tftpboot/pxelinux.cfg/default

 ...

 11 menu title PXE Server !

 ...

 61 label linux

 62   menu label ^Install RHEL7

 63   kernel vmlinuz

 64   append initrd=initrd.img

 ...

7.部署启动内核与驱动程序

[[email protected] ~]# cp /mnt/isolinux/initrd.img /mnt/isolinux/vmlinuz /var/lib/tftpboot/

[[email protected] ~]# ls /var/lib/tftpboot/

 initrd.img  pxelinux.0  pxelinux.cfg  vesamenu.c32  vmlinuz


                扩展  修改背景图片

                [[email protected] 桌面]# scp -r tupian/ [email protected]:/

                [[email protected] ~]# cp /tupian/7.jpg /var/lib/tftpboot/

                [[email protected] ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 

                 ...

                 menu background 7.jpg

                 ...



三.FTP服务,传输RPM包

1.搭建vsftpd 服务,贡献光盘所以内容

[[email protected] ~]# yum -y install vsftpd

[[email protected] ~]# systemctl restart vsftpd

[[email protected] ~]# systemctl enable vsftpd

[[email protected] ~]# mkdir /var/ftp/rhel7

[[email protected] ~]# mount /dev/cdrom /var/ftp/rhel7


四.无人值守安装

1.图形生成应答文件程序:

[[email protected] /]# yum -y install system-config-kickstart

2.运行图形程序

读取本地Yum仓库信息,要求Yum仓库客户端配置文件,仓库标示development

[[email protected] /]#  system-config-kickstart


       1) 基础配置   配置默认语言 , 键盘,时区 ,根密码, 安装后重新引导系统

        搭建部署 网络PXE

        2)安装方式  配置 执行新安装  安装方式 选择FTP 并在FTP服务器和FTP目录上填写 刚刚FTP的配置

        搭建部署 网络PXE


        3) 引导安装程序选项  配置安装新引导装载程序

        搭建部署 网络PXE

        4)分区信息 配置 主引导记录: 清除主引导记录   分区 : 删除所有现存分区   磁盘标签 : 初始化磁盘标签  然后 单击 添加

        搭建部署 网络PXE

            添加 一个交换分区 大小为1024MB

        搭建部署 网络PXE


            添加 一个根分区  文件类型为 xfs  大小选择:使用磁盘上全部未剩余空间

        搭建部署 网络PXE


        搭建部署 网络PXE


        5)网络配置   单击 添加网络设备 在网络设备上 填写 eth0 

        搭建部署 网络PXE


        搭建部署 网络PXE


        6) 防火墙配置 Linux 安全增强版  配置 禁用

        搭建部署 网络PXE


        7)软件包选择  根据个人喜好选择  但是 一定要选择 系统  中的  基本 

        搭建部署 网络PXE


        8)预安装脚本 和 安装后脚本   根据个人喜好添加脚本  这里 我在安装后脚本写了一个配置yum源的脚本

        搭建部署 网络PXE


        搭建部署 网络PXE


        9) 在单击 图形界面 左上角 文件 ----> 保存  使用默认文件名 ks.cfg  保存到root下  图形界面的配置就完成了

        搭建部署 网络PXE


3.搭建vsftpd服务,共享应答文件

[[email protected] ~]# ls /root/ks.cfg 

/root/ks.cfg

[[email protected] ~]# cp /root/ks.cfg /var/ftp/



五.通过菜单指定ks.cfg应答文件

[[email protected] ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 

...

61 label linux

62   menu label ^Install RHEL7

63   kernel vmlinuz

64   append initrd=initrd.img ks=ftp ://192.168.4.7/ks.cfg 


执行网络PXE装机


      选择网络引导pxe

        搭建部署 网络PXE

            其他配置 根据个人喜好配置

        

        搭建部署 网络PXE

        

        搭建部署 网络PXE


        搭建部署 网络PXE

            配置网络选择 选择和刚刚配置PXE服务在同一个网卡

        搭建部署 网络PXE

        运行虚拟机


        搭建部署 网络PXE


        回车 选择 Install RHEL

        搭建部署 网络PXE


        不需要手动配置 网络PXE 会自动进行配置  等待其自动安装完毕即可


        搭建部署 网络PXE


    搭建部署 网络PXE

       


上述搭建部署方式 我写了一个shell脚本 可以实现一键部署搭建PXE环境 http://blog.51cto.com/13558754/2058192 

总结:

DHCP ---> IP地址,next-server,filename

tftp ----> pxelinux.0 ,default

default ----> vesamenu.c32,vmlinuz,initrd.img,ks.cfg

ks.cfg ----> url="ftp://192.168.4.7/rhel7"











本文转自 Xuenqlve 51CTO博客,原文链接:http://blog.51cto.com/13558754/2058170,如需转载请自行联系原作者