天天看点

详述PXE批量装机环境部署PXE批量装机环境

部署PXE批量装机环境

DHCP概述及原理

• Dynamic Host Configuration Protocol

– 动态主机配置协议,由 IETF(Internet 网络工程师任务小组)组织制定,用来简化主机地址分配管理

• 主要分配以下入网参数

– IP地址/子网掩码/广播地址

– 默认网关地址、DNS服务器地址

DHCP原理: 广播进行,先到先得,一个网络里只能有一个DHCP服务器

• DHCP地址分配的四次会话

– DISCOVERY --> OFFER --> REQUEST -->ACK

1.装软件包 dhcp

[[email protected] /]# yum -y install dhcp

2.配置文件 /etc/dhcp/dhcpd.conf

vim末行模式 :r /usr/share/doc/dhcp*/dhcpd.conf.example

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 routers 192.168.4.254; #分配网关地址

default-lease-time 600;

max-lease-time 7200;

}

[[email protected] /]# systemctl restart dhcpd

####################################################

网络装机概述

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

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

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

什么是PXE网络

• PXE,Pre-boot eXecution Environment

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

– 可用于远程安装

PXE组件及过程分析

• 需要哪些服务组件

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

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

– HTTP服务,提供yum安装源

• 客户机应具备的条件

– 网卡芯片必须支持PXE协议

– 主板支持从网卡启动

##################################################

一、部署DHCP服务,指定下一个服务器地址

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

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

filename “pxelinux.0”; #指定引导文件名称

}

[[email protected] /]# systemctl restart dhcpd

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

安装一个软件,默认产生的网卡引导文件名为pxelinux.0

##################################################

二、搭建tftp服务

tftp:简单的文件传输协议  默认端口为69
   默认共享位置:/var/lib/tftpboot
           

1.安装软件包tftp-server

[[email protected] /]# yum -y install tftp-server

2.重启tftp服务

[[email protected] /]# systemctl restart tftp

3.部署pxelinux.0文件

]# yum provides */pxelinux.0 #查询那个包产生,该文件

]# yum -y install syslinux

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

]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

]# ls /var/lib/tftpboot/

pxelinux.0文件—>/var/lib/tftpboot/pxelinux.cfg/default

4.部署菜单文件

[[email protected] /]# poweroff

Connection to 192.168.4.7 closed by remote host.

Connection to 192.168.4.7 closed.

[[email protected] ~]$

图形为虚拟机A,添加一个光驱设备,放入光盘内容

[[email protected] ~]$ goa

Last login: Thu Apr 25 08:55:41 2019 from 192.168.4.254

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

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

[[email protected] ~]# ls /mnt/

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

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

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

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

5.部署 图形模块(vesamenu.c32) 与 背景图片(splash.png)

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

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

6.部署 启动内核(vmlinuz) 与 驱动程序(initrd.img)

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

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

initrd.img pxelinux.cfg vesamenu.c32

pxelinux.0 splash.png vmlinuz

7.修改菜单文件内容

vim /var/lib/tftpboot/pxelinux.cfg/default

1 default vesamenu.c32 #默认加载图形模块

2 timeout 600 #读秒时间60秒 1/10秒

10 menu background splash.png #指定背景图片

11 menu title NSD1903 PXE Server #修改标题

61 label linux

62 menu label ^Install CentOS 7 #屏幕显示

63 menu default #读秒结束默认选择

64 kernel vmlinuz #调用内核

65 append initrd=initrd.img #解压驱动程序

##################################################

8.检查服务启动

[[email protected] ~]# systemctl restart dhcpd

[[email protected] ~]# systemctl enable dhcpd

[[email protected] ~]# systemctl restart tftp

[[email protected] ~]# systemctl enable tftp

#################################################

总结:

1.DHCP服务–>IP地址 next-server filename

2.tftp服务–>pxelinux.0

3.pxelinux.0–>读取默认菜单文件

4.default–>图形模块 背景图片 启动内核 驱动程序

验证:

新建一台虚拟机,安装方式选择 “网络引导安装(PXE)”

网络类型选择"private1"

####################################################

三、构建Web服务,共享光盘所有内容

1.安装软件包httpd

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

2.重启httpd服务

[[email protected] ~]# systemctl restart httpd

[[email protected] ~]# systemctl enable httpd

3.共享光盘所有内容

[[email protected] ~]# mkdir /var/www/html/centos

[[email protected] ~]# ls /var/www/html/centos

[[email protected] ~]# mount /dev/cdrom /var/www/html/centos

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

[[email protected] ~]# ls /var/www/html/centos

[[email protected] ~]# firefox 192.168.4.7/centos

#####################################################

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

1.安装图形的system-config-kickstart工具,生成应答文件

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

2.运行system-config-kickstart工具,进行配置

[[email protected] ~]# LANG=en system-config-kickstart

首先查看软件包选择(Package Selection),是否可以使用

需要Yum仓库的支持,必须要求Yum光盘仓库标识为 [development]

[[email protected] ~]# vim /etc/yum.repos.d/local.repo

[development]

[[email protected] ~]# LANG=en system-config-kickstart

[[email protected] ~]# ls /root/

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

3.利用Web服务,将应答文件ks.cfg,共享给客户端

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

[[email protected] ~]# ls /var/www/html/

4.修改菜单文件,指定应答文件ks.cfg

]# vim /var/lib/tftpboot/pxelinux.cfg/default

label linux

menu label ^Install CentOS 7

menu default

kernel vmlinuz

append initrd=initrd.img ks=http://192.168.4.7/ks.cfg

#####################################################

总结:

1.DHCP服务–>IP地址 next-server filename

2.tftp服务–>pxelinux.0

3.pxelinux.0–>读取默认菜单文件

4.default–>图形模块 背景图片 启动内核 驱动程序 应答文件

5.ks.cfg应答文件–> 分区 语言 键盘类型 装包

# Use network installation

url --url=“http://192.168.4.7/centos”

继续阅读