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实现批量装机_centos

网络装机服务器的构建

修改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. 重新启动相关服务(dhcpdtftp

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

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

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

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

DHCP实现批量装机_linux_02


部署FTP服务 ​

共享光盘所有内容

DHCP实现批量装机_centos_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实现批量装机_ip地址_04t]

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

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

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

DHCP实现批量装机_centos_05

DHCP实现批量装机_centos_06

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

DHCP实现批量装机_centos_07

分区规划

DHCP实现批量装机_linux_08

DHCP实现批量装机_linux_09

DHCP实现批量装机_linux_10

DHCP实现批量装机_linux_11

DHCP实现批量装机_linux_12

DHCP实现批量装机_ip地址_13

DHCP实现批量装机_ip地址_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类似