2

DHCP实现批量装机_键客李大白的技术博客_51CTO博客

 1 year ago
source link: https://blog.51cto.com/lidabai/5333285
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

DHCP概述​

动态主机配置协议,用来简化主机IP地址分配管理。简单来说就是批量为主机分配IP地址。

  • 主要分配以下入网参数:

IP地址、子网掩码、广播地址、默认网关地址、DNS服务器地址

  • DHCP地址分配的四次会话(以广播进行,先到先得)
  1. DISCOVERY --> OFFER --> REQUEST -->ACK
  • 一个网络中,只能有一台DHCP服务器

服务端基本概念

允许客户机租用IP地址的时间期限,单位为秒

分配给客户机的IP地址所在的网段

用来动态分配的IP地址的范围

DHCP分配IP地址的机制

  • 自动分配方式(AA:服务器为主机指定一个永久性的IP地址,客户端主机第一次成功租用到IP地址后可永久使用;
  • 动态分配方式(DA:给主机指定具有时间限制的IP地址,时间到期或机主放弃该地址,该地址可被其他主机使用;
  • 手工分配方式(MA:客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机;

部署dhcpd地址分配服务​

1.安装DHCP软件​

[root@lidabai ~]# yum install -y dhcp

2.修改主配置文件​

[root@lidabai ~]# vim /etc/dhcp/dhcpd.conf
:r /usr/share/doc/dhcp*/dhcpd.conf.example #导入模板文件
subnet 192.168.2.0 netmask 255.255.255.0 { #52行,分配的网段
range 192.168.2.100 192.168.2.200; #分配的IP地址范围(开始到结束)
option domain-name-servers 114.114.114.114; #分配的DNS
option routers 192.168.4.254; #分配的网关地址
default-lease-time 600; #60秒的读秒时间
max-lease-time 7200; #最长租赁时间
}

3.重启dhcpd服务​

[root@lidabai ~]# systemctl restart dhcpd
[root@lidabai ~]# systemctl enable dhcpd #设置为开机自启
[root@lidabai ~]# systemctl status dhcpd #查看服务状态

网络装机的优势​

  • 规模化:同时装配多台主机
  • 自动化:装系统、配置各种服务
  • 远程实现:不需要光盘、U盘等物理安装介质

PXE网络 ​

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

工作模式​

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

当计算机引导时,从网卡芯片中把PXE client调入内存执行,获取PXE server配置、显示菜单,根据用户选择将远程引导程序下载到本机运行。

PXE需要的服务组件:​

  • DHCP服务:分配IP地址、定位引导程序
  • TFTP服务:提供引导程序下载
  • HTTP(或FTP/NFS)服务:提供yum安装源

■客户机应具备的条件

  • 网卡芯片必须支持PXE协议
  • 主板支持从网卡启动
DHCP实现批量装机_ip地址

网络装机服务器的构建

修改DHCP服务配置​

[root@lidabai ~]# vim /etc/dhcp/dhcpd.conf
Subnet 192.168.2.0 netmask 255.255.255.0 {
……
next-server 192.168.2.7; #指定下一个服务器IP地址
filename "pxelinux.0"; #指定网卡引导文件名称
}
pxelinux.0:网卡引导文件,网络安装说明书,二进制,安装一个软件即可获得
可改名。Tftp可提供该引导文件。

重启dhcpd服务​

[root@lidabai ~]# systemctl restart dhcpd

部署TFTP服务器​

TFTP:简单的文件传输协议, 提供众多的引导文件 默认端口:69​

  • 默认共享数据路径:/var/lib/tftpboot (放共享文件)
  • 软件:tftp-server
  • 服务:tftp

1.安装软件包(tftp-server)

[root@lidabai ~]# yum install -y tftp-server

2.重启TFTP服务(tftp)

[root@lidabai ~]# systemctl start tftp-server

3.部署pxelinux.0文件​

[root@lidabai ~]# yum provides */pxelinux.0 #查询仓库中那个软件包产生
syslinux-4.05-13.el7.x86_64 : Simple kernel loader which boots from a FAT filesystem
[root@lidabai ~]# yum -y install syslinux
[root@lidabai ~]# rpm -ql syslinux | grep pxelinux.0 #查询安装清单
[root@lidabai ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
pxelinux.0--->读取菜单文件

4.部署菜单文件​

[root@lidabai ~]# mount /dev/cdrom /mnt
[root@lidabai ~]# mkdir /var/lib/tftpboot/pxelinux.cfg #创建菜单文件存放路径
[root@lidabai ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

5.部署内核与驱动程序​

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

6.部署图形模块与背景图片​

[root@lidabai ~]# cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/
[root@lidabai ~]# cp /mnt/isolinux/splash.png /var/lib/tftpboot/
图形模块(vesamenu.c32)
背景图片(splash.png)

7.修改菜单文件的内容​

[root@lidabai ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
1 | default vesamenu.c32 #默认加载运行图形模块
2 | timeout 600 #读秒的时间,1/10秒
10| menu background splash.png #背景图片(可自定义)
11| menu title NSD2006 PXE Server #标题内容
61| label linux
62| menu label ^Install CentOS 7 #菜单显示内容
63| menu default(默认值) #读秒结束的默认选项
64| kernel vmlinuz #加载运行内核
65| append initrd=initrd.img #加载运行驱动程序
以下删除!

总结思路:

  1. DHCP服务--->IP地址、next-server、filename
  2. TFTP服务--->pxelinux.0
  3. pxelinux.0--->读取菜单文件/var/lib/tftpboot/pxelinux.cfg/default
  4. default--->图形模块、驱动程序、背景图片…
  5. ks.cfg应答文件à语言、键盘类型、分区、安装方式

8.初步测试 ​

1. 重新启动相关服务(dhcpd、tftp)

2.防止DHCP服务冲突,关闭Vmware软件dhcp功能

编辑→虚拟网络编辑器→更改设置→取消使用本地DHCP服务

3.新建一台全新的虚拟机(内存2G,其他正常选择)

4.修改虚拟机的网络类型

DHCP实现批量装机_ip地址_02

部署FTP服务 ​

共享光盘所有内容

DHCP实现批量装机_linux_03

FTP:文件传输协议 默认端口:21

默认共享数据的路径:/var/ftp

软件包:vsftpd

安装软件包(vsftpd)​

[root@lidabai ~]# yum install -y vsftpd

创建挂载点​

[root@lidabai ~]# mkdir /var/ftp/centos
[root@lidabai ~]# mount /dev/cdrom /var/ftp/centos
[root@lidabai ~]# curl ​​ftp://192.168.4.7/centos/

Kickstart自动应答 ​

无人值守、自动应答:预先提供应答文件,定义各种安装设置,

实现自动化安装;添加%post脚本,可执行安装后的各种配置。

安装图形的工具,生成应答文件​

生成应答文件,实现无人值守安装

[root@lidabai ~]# yum -y install system-config-kickstart

注意:此环境于GUI环境,最小化安装需要安装图形界面(可网上扩展)

system-config-kickstart程序需要Yum仓库的支持才能显示软件包的选择,

必须要求Yum仓库的标识为[development]

DHCP实现批量装机_centos_04

t]

[root@lidabai ~]# vim /etc/yum.repos.d/mydvd.repo
[development]
name=centos7
baseurl=file:///mydvd
enable=1
gpgcheck=0

首先查看“软件包选择”是否可用

—运行图形的工具system-config-kickstart 进行选择(给客户端的配置)

DHCP实现批量装机_linux_05
DHCP实现批量装机_linux_06

文本中于工作中安装!!!

DHCP实现批量装机_centos_07
DHCP实现批量装机_centos_08
DHCP实现批量装机_ip地址_09
DHCP实现批量装机_centos_10
DHCP实现批量装机_linux_11
DHCP实现批量装机_ip地址_12

DHCP实现批量装机_linux_13

DHCP实现批量装机_centos_14

查看保存的应答文件

[root@lidabai ~]# ls /root/ks.cfg

利用FTP服务共享ks.cfg应答文件

[root@lidabai ~]# cp /root/ks.cfg /var/ftp/
[root@lidabai ~]# ls /var/ftp/
[root@lidabai ~]# curl ftp://192.168.4.7/ks.cfg #测试访问

利用菜单文件指定ks.cfg应答文件位置

[root@lidabai ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
64 kernel vmlinuz #指定获取应答文件
65 append initrd=initrd.img ks=ftp://192.168.4.7/ks.cfg

Cobbler装机平台​

功能同pxe类似


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK