DHCP实现批量装机

人生处万类,知识最为贤。这篇文章主要讲述DHCP实现批量装机相关的知识,希望能为你提供帮助。


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-servers114.114.114.114; #分配的DNS
option routers192.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服务配置?
[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服务器?【DHCP实现批量装机】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.修改虚拟机的网络类型



部署FTP服务 ?共享光盘所有内容?

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]t]
[root@lidabai ~]# vim /etc/yum.repos.d/mydvd.repo
[development]
name=centos7
baseurl=file:///mydvd
enable=1
gpgcheck=0

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

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


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

分区规划







查看保存的应答文件
[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类似







    推荐阅读