DHCP实现批量装机
Posted 键客李大白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DHCP实现批量装机相关的知识,希望对你有一定的参考价值。
DHCP概述
动态主机配置协议,用来简化主机IP地址分配管理。简单来说就是批量为主机分配IP地址。
- 主要分配以下入网参数:
IP地址、子网掩码、广播地址、默认网关地址、DNS服务器地址
- DHCP地址分配的四次会话(以广播进行,先到先得)
- 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服务配置
[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 #加载运行驱动程序
以下删除!
总结思路:
- DHCP服务--->IP地址、next-server、filename
- TFTP服务--->pxelinux.0
- pxelinux.0--->读取菜单文件/var/lib/tftpboot/pxelinux.cfg/default
- default--->图形模块、驱动程序、背景图片…
- 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类似
以上是关于DHCP实现批量装机的主要内容,如果未能解决你的问题,请参考以下文章