当前位置: > CentOS > CentOS教程 >

PXE批量装机

时间:2019-11-23 17:00来源:linux.it.net.cn 作者:IT
网络装机概述
网络装机优势
 
规模化:同时装配多台主机
自动化:装系统,配置各种服务
远程实现:不需要光盘,U盘等物理安装介质
 
什么是PXE网络
PXE Pre-boot eXecution Environment
预启动执行环境,在操作系统之前运行
可用于远程安装
工作模式
 
PXE client 集成在网卡的启动芯片中
当计算机引导时,从网卡芯片中PXE client调入内存执行,获取PXE
server配置,显示菜单,根据用户选择将远程引导程序下载到本机运行
PXE组件及过程分析
服务端
 
DHCP服务:分配IP地址,定位引导程序
TFTP服务:提供引导程序下载
HTTP服务(或FTP/NFS):提供YUM源的安装
客户端
 
网卡芯片必须支持PXE协议
主板支持从网卡启动
 
一.部署DHCP服务
DHCP概述即原理
动态主机配置协议,由IETF(internet 网络工程师任务小组)组织制定,用来简化主机地址分配管理
主要分配一下入网参数
 
IP地址/子网掩码/广播地址
默认网关地址,DNS服务器地址
DHCP地址分配的四次会话,以广播形式进行
DISCOVERY > OFFER > REQUEST > ACK
建议:一个网络中只能有一台DHCP服务
 
配置安装包
[root@svr7 ~]# yum install -y dhcp

 
修改DHCP文件
[root@svr7 ~]# vim /etc/dhcp/dhcpd.conf

 
末行模式输入:r /usr/share/doc/dhcp/dhcpd.conf.example
dd删除多余参数最后就只留这莫一丢丢,然后进行配置修改
 
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
subnet 192.168.4.0 netmask 255.255.255.0 { //注!此配置内不能出现中文,几遍注释中文也不可以
  range 192.168.4.100 192.168.4.200; //配置分配ip地址范围
  option domain-name-servers 192.168.4.7;    //配置DNS
  option domain-name "internal.example.org"; //dd干掉它!!!
  option routers 192.168.4.254;
  option broadcast-address 10.5.5.31; //广播地址,dd干掉它!!!
  default-lease-time 600; //租期时间600s
  max-lease-time 7200; //最大租约时间7200s
  next-server 192.168.4.7; //指定下一个服务器地址,此行为30年手打添加
  filename "pxelinux.0"; //指定网卡引导文件名称,此行为30年手打添加,"pxelinux.0":网卡引导文件(网络安装说明书)二进制文件,安装一个软件即可自动生成该文件)
}
 

 
重启服务
[root@svr7 ~]# systemctl restart dhcpd
 
二.搭建TFTP服务,提供众多的引导文件
TFTP:简单的文件传输协议,默认端口69
默认共享数据的路径:/var/lib/tftpboot
 
安装软件tftp-server
[root@svr7 ~]# yum install -y tftp-server
[root@svr7 ~]# systemctl restart tftp
 

 
部署pxelinux.0
[root@svr7 ~]# yum -y provides */pxelinux.0 //查找仓库中哪个软件生成该文件
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
my_yum/filelists_db                                      | 2.2 kB     00:00     
syslinux-4.05-13.el7.x86_64 : Simple kernel loader which boots from a FAT
                            : filesystem
源    :local_repo
匹配来源:
文件名    :/usr/share/syslinux/pxelinux.0
 
 
 
syslinux-tftpboot-4.05-13.el7.x86_64 : SYSLINUX modules in /var/lib/tftpboot,
                                     : available for network booting
源    :local_repo
匹配来源:
文件名    :/var/lib/tftpboot/pxelinux.0
[root@svr7 ~]# yum -y install syslinux
[root@svr7 ~]# rpm -ql syslinux | grep pxelinux.0 //查看软件安装清单并过滤出pxelinux.0
[root@svr7 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
 

 
在虚拟机A系统中显示光盘内容
[root@svr7 ~]# mount /dev/cdrom /mnt/ //挂载光盘镜像
mount: /dev/sr0 写保护,将以只读方式挂载
 

 
部署菜单文件
[root@svr7 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@svr7 ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
 

 
部署图形模块与背景图片
[root@svr7 ~]# cp /mnt/isolinux/vesamenu.c32 /mnt/isolinux/splash.png /var/lib/tftpboot/

 
部署启动内核(vmlinuz)与驱动程序(initrd.img)
[root@svr7 ~]# cp /mnt/isolinux/vmlinuz /mnt/isolinux/initrd.img /var/lib/tftpboot/

 
修改菜单文件
末行模式:set nu #开启行号
 
[root@svr7 ~]# vim  /var/lib/tftpboot/pxelinux.cfg/default 
  1 default vesamenu.c32 //默认加载图形模块
  2 timeout 600 //读秒时间 1/10
 10 menu background splash.png //背景图片
 11 menu title CentOS 7 //菜单标题显示内容
 62   menu label ^Install CentOS 7 //菜单的显示内容
 63   menu default //读秒结束后默认选择
 64   kernel vmlinuz //加载启动内核
 65   append initrd=initrd.img //加载驱动程序
 

 
初步测试
 
重启所需服务
[root@svr7 ~]# systemctl restart dhcpd
[root@svr7 ~]# systemctl restart tftp
 
三.构建Web服务共享光盘的所有内容

 
安装软件
[root@svr7 ~]# yum install -y httpd

 
重启服务
[root@svr7 ~]# systemctl restart httpd

 
挂载镜像
[root@svr7 ~]# mkdir /var/www/html/centos
[root@svr7 ~]# mount /dev/cdrom /var/www/html/centos/
 


 
四.部署无人值守安装,生成应答文件

 
安装system-config-kickstart
[root@svr7 ~]# yum install -y system-config-kickstart
[root@svr7 ~]# vim /etc/yum.repos.d/local.repo
[development]
name=CentOS-$releasever - Base
baseurl="ftp://192.168.4.254/centos-1804"
enabled=1
gpgcheck=0
[root@svr7 ~]# LANG=en system-config-kickstart
 
 
 
 
 
 
利用Web服务共享应答ks文件
[root@svr7 ~]# cp /root/ks.cfg /var/www/html/


 
修改菜单文件
[root@svr7 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
65   append initrd=initrd.img ks=http://192.168.4.207/ks.cfg
 



(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容