Linux全自动网络安装 —— PXE

限于喜欢 提交于 2019-11-30 11:27:27

前言:

最近整理一些以前的学习笔记。
过去都是存储在本地,此次传到网络留待备用。


 

网络装机的优势:

1).规模化:同时装配多台主机;

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

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


 

PXE网络:

  • PXE = Pro-boot eXecution Environment

    • 预启动执行环境,在操作系统之前运行;
    • 可用于远程安装。
  • 工作模式:

    • PXE client 集成在网卡的启动芯片中;
    • 当计算机引导时,从网卡芯片中把PXE client调入内存执行,获取PXE server配置、显示菜单,根据用户选择将远程引导程序下载到本机运行。
  • 需要的服务组件:

    • DHCP服务:分配ip地址、定位引导程序;

      • 获取ip
      • 指定下一个服务器
      • 指定引导文件
    • TFTP服务:提供引导程序下载;

      • pxelinux.0(引导文件)
      • pxelinux.cfg/default(菜单文件)
      • vesamenu.32(图形模块)
      • splash.png(背景图)
      • vmlinuz(内核)
      • initrd.img(驱动)
    • HTTP服务:(或FTP/NFS),提供yum安装源。

      • 软件安装yum源
      • kickstart(自动应答文件),用于自动安装
  • 客户机要求:

    • 网卡芯片必须支持PXE协议;
    • 主板支持网卡启动。

 

搭建PXE网络装机服务器

  • 服务器地址: 192.168.4.7  

一、配置dhcp服务的pxe设置:

1.安装软件包:dhcp

]# yum -y install dhcp

2.编辑配置文件:/etc/dhcp/dhcpd.conf

]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.4.0 netmask 255.255.255.0 {      #声明网段、子网掩码
    range 192.168.4.10 192.168.4.100;             #ip范围
    option domain-name-servers 8.8.8.8;           #域名服务器
    option routers 192.168.4.254;                 #路由地址
    next-server 192.168.4.7;                      #指定下一个执行服务器(PXE服务器)的地址,本机
    filename "pxelinux.0";                        #下一个服务器的引导文件,生成后默认pxelinux.0
}

3.重启服务:dhcpd

]# systemctl restart dhcpd      #必须保证服务器ip在dhcp的范围内

4.确认结果

]# netstat -utnap | grep dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 8380/dhcpd

5.dhclient测试(客户端)

临时配置/测试,建议采用dhclient
        - 格式:dhclient -d [网络接口]
        - 选项:-d 调试模式
]# dhclient -d eth0

 

二、搭建httpd服务:

  • 提供yum源

1.安装软件包:httpd

]# yum -y install httpd

2.重启、自启服务:

]# systemctl restart httpd
]# systemctl enable httpd

3.共享光盘内容:挂载

]# mkdir /var/www/html/rhel7
]# mount /dvd/cdrom /var/www/html/rhel7

 

三、搭建tftp服务:

1.安装软件包:tftp-server

]# yum -y install tftp-server

2.重启、开机自启服务:

]# systemctl restart tftp

3.部署PXE启动程序:

3.1).部署 引导文件:pxelinux.0

  • pxelinux.0:网卡引导文件(安装说明书)二进制的文件,安装一个软件可以生成。
    ]# yum provides */pxelinux.0                                #查询产生pxelinux.0的软件包
    ]# yum -y install sysliunx                                  #安装查询出的软件包
    ]# rpm -ql syslinux | grep pxelinux.0                       #查询pxelinux.0的路径
    ]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/     #复制引导文件到tftpboot
    

3.2).部署 菜单文件:isolinux.cfg

]# mkdir /var/lib/tftpboot/pxelinux.cfg/
]# cp /dvd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
    #复制光盘菜单文件到tftp的默认目录
]# chmod u+w /var/lib/tftpboot/pxelinux.cfg/default         #给予文件写的权力

3.3).部署 图形模块:vesamenu.c32(图形模块) 、 splash.png(背景图片)

]# cp /dvd/isolinux/vesamenu.c32 /dvd/isolinux/splash.png /var/lib/tftpboot

3.4).部署 启动内核 及 驱动程序:vmlinuz(启动内核)、initrd.img(驱动程序)

]# cp /dvd/isolinux/vmlinuz /dvd/isolinux/initrd.img /var/lib/tftpboot

3.5).修改菜单文件:/var/lib/tftpboot/pxelinux.cfg/default

]# vim /var/lib/tftpboot/pxelinux.cfg/default
.. ..
default vesamenu.c32            #默认加载图形的模块
timeout 600                     #读秒时间600毫秒
.. ..
menu background 背景图片名      #图片大小640*480
menu title 标题
.. ..
label linux                     #菜单
    menu label ^选项,菜单内容       #显示菜单内容
    kernel vmlinuz                   #加载内核
    append initrd=initrd.img         #加载驱动
  • 初步测试:

    • 新建一台虚拟机,选择PXE网络引导安装

 

四、配置无人值守安装,应答文件的生成:ks.cfg

1.安装图形工具:system-config-kickstart

]# yum -y install system-config-kickstart

2.执行工具查看【软件包选择】,查看是否有软件包:

]# system-config-kickstart
   # 如果没有,需要修改本机yum配置文件的 [源标识] 为 [development]
]# vim /etc/yum.repos.d/dvd.repo

3.执行工具 修改配置:

]# system-config-kickstart

4.保存配置到/root 并退出:

 

五、共享ks.cfg应答文件,利用httpd服务:

]# cp /root/ks.cfg /var/www/html

 

六、修改菜单文件,指定ks.cfg应答文件:

]# vim /var/lib/tftpboot/pxelinux.cfg/default
label linux
    menu label  选项
    kernel  vmlinuz
    append initrd=initrd.img  ks=http://192.168.4.7/ks.cfg
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!