目录
网络装机
部署DHCP服务器
- DHCP:
动态主机配置协议,由IETF组织制定,用来简化地址分配管理
- 主要分配:
1.IP地址/子网掩码/广播地址
2.默认网关地址.DNS服务器地址
3.PXE引导装置
- DHCP概述及原理:
DHCP地址分配的四次会话(广播,先到先得)
DISCOVER---->OFFER------>REQUEST-------->ACK
一个网络里只能有一个DHCP
- DHCP默认端口:67
部署过程:装包,配置,起服务
1.安装软件包:
[root@svr7 ~]# yum -y install dhcp
2.修改配置文件:
[root@svr7 ~]# vim /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example #配置文件模板
# see dhcpd.conf(5) man page
#
:r /usr/share/doc/dhcp*/dhcpd.conf.example #在末行模式读入文件
最后配置文件内所有保留的信息:
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
subnet 192.168.4.0netmask 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; #默认租期(客户端获取到IP地址后使用该IP的时间)
max-lease-time 7200; #最长租期(最长使用该IP的时间)
}
租期:允许客户机租用IP地址的时间期限,单位为秒
作用域:分配给客户机的IP地址所在的网段
地址池: 用来动态分配IP地址的范围
3.起服务:
[root@svr7 ~]# systemctl restart dhcpd
PXE网络装机
网络装机的优势
- 规模化:同时装配多台主机
- 自动化:装系统.配置各种服务
- 远程实现:不需要光盘.U盘等物理安装介质
PXE网络
- 预启动执行环境,在操作系统之前运行
- 可用于远程安装
PXE工作模式
- PXE Client 集成在网卡的启动芯片中
- 当计算机引导时,从网卡中把PXE Client调入内存执行,获取PXE server 配置,显示菜单,根据用户选择将远程引导程序下载到本机运行
PXE组件及过程
- 需要的服务组件(服务端)
DHCP服务,分配IP地址,定位引导程序
TFTP服务.提供引导程序下载
HTTP服务(或FTP/NFS),提供网络yum源
- 客户机应具备的条件
网卡芯片必须支持PXE协议
主板支持从网卡启动
一.DHCP服务器
构建网络装机服务器
1.构建dhcp服务,指定下一个服务器地址
# DHCP Server Configuration file.
# see /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;
option domain-name-servers 192.168.4.7;
option routers 192.168.4.254;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.4.7; #指定下一个服务器地址
filename "pxelinux.0"; #指定网卡引导文件
}
pxelinux.0:网卡引导文件(网络装机说明书),二进制文件
安装一个软件即可获得,默认名称pxelinux.0
2.重起服务
[root@svr7 ~]# systemctl restart dhcpd
二.TFTP服务器,提供众多的引导文件
TFTP:简单的文件传输协议,默认端口69
默认的路径:/var/lib/tftpboot
- 1.装包
[root@svr7 ~]# yum -y install tftp-server
- 2.启动服务
[root@svr7 ~]# systemctl restart tftp
- 3.部署pxelinux.0文件
[root@svr7 ~]# yum provides */pxelinux.0 #查看仓库中哪个软件包产生该文件
[root@svr7 ~]# yum -y install syslinux
[root@svr7 ~]# rpm -ql syslinux | grep pxelinux.0 #查询软件的安装清单
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@svr7 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@svr7 ~]# ls /var/lib/tftpboot/
pxelinux.0
- 4.部署菜单文件
首先关闭该虚拟机,以图形方式添加光驱设备
[root@svr7 ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@svr7 ~]# ls /mnt
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
或者利用光盘镜像文件直接挂载
[root@svr7 ~]# mount /root/CentOS7-1804.iso /opt/
mount: /dev/loop0 写保护,将以只读方式挂载
[root@svr7 ~]# ls /opt/
[root@svr7 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg #创建专门存放菜单文件的目录
[root@svr7 ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #将菜单文件的模板文件复制到存放菜单文件的目录中 (一定要在挂载的情况下复制)
[root@svr7 ~]# ls /var/lib/tftpboot/pxelinux.cfg/
default #查看是否复制成功
- 5.图形的模块(vesamenu.c32)与背景图片(splash.png)
[root@svr7 ~]# cp /mnt/isolinux/vesamenu.c32 /mnt/isolinux/splash.png /var/lib/tftpboot/ #将图形模块和背景图片复制到菜单文件的目录中
[root@svr7 ~]# ls /var/lib/tftpboot/ #查看该目录
pxelinux.0 pxelinux.cfg splash.png vesamenu.c32
- 6.部署启动内核(vmlinuz)与驱动程序(initrd.img)
[root@svr7 ~]# cp /mnt/isolinux/vmlinuz /mnt/isolinux/initrd.img /var/lib/tftpboot/ #拷贝启动内核以及驱动程序
[root@svr7 ~]# ls /var/lib/tftpboot/ #查看该目录
initrd.img pxelinux.0 pxelinux.cfg splash.png vesamenu.c32 vmlinuz
#集齐这六样就可以召唤神龙啦!!!!!!!!!!!!!!!!
- 7.修改菜单文件
[root@svr7 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
1 default vesamenu.c32 #默认加载图形模块
2 timeout 600 #默认读秒时间(秒)
10 menu background splash.png #背景图片
11 menu title CentOS 7 #标题(可以自行修改)
64行以后dd掉, 64行变为 append initrd=initrd.img
61 label linux
62 menu label ^Install CentOS 7 #菜单的显示
添加:63 menu default #读秒之后默认的选择
64 kernel vmlinuz #加载内核
65 append initrd=initrd.img #加载驱动程序
初步测试:
- 1.必备的服务进行重起
[root@svr7 ~]# systemctl restart dhcpd
[root@svr7 ~]# systemctl restart tftp
- 2.新建一台虚拟机
以图形化方式装机,选择网络引导(PXE)
前进,内存选择2048M
前进,网络选择和提供PXE装机服务器的网络一样,选择private1
前进,出现以下界面:
三.web服务,提供光盘的所有内容
- 1.安装httpd软件
[root@svr7 ~]# yum -y install httpd
- 2.挂载方式
[root@svr7 ~]# mkdir /var/www/html/centos
[root@svr7 ~]# ls /var/www/html/centos
[root@svr7 ~]# mount /dev/cdrom /var/www/html/centos
mount: /dev/sr0 写保护,将以只读方式挂载
[root@svr7 ~]# ls /var/www/html/centos
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
- 3.重起httpd服务,测试访问
[root@svr7 ~]# systemctl restart httpd
[root@svr7 ~]# firefox 192.168.4.7/centos
四.生成应答文件,实现无人值守安装
- 1.图形工具system-config-kickstart
[root@svr7 ~]# yum -y install system-config-kickstart
- 2.以英文方式,运行图形的工具
[root@svr7 ~]# LANG=en system-config-kickstart
[root@svr7 ~]# vim /etc/yum.repos.d/local.repo
[development] #把yum仓库的名称改为development
name=CentOS-$releasever - Base
baseurl="ftp://192.168.4.254/centos-1804"
enabled=1
gpgcheck=0
再次执行
[root@svr7 ~]# LANG=en system-config-kickstart
点击软件包选择(Package Selection)
- 3.查看应答文件
[root@svr7 ~]# ls ~/ks.cfg
/root/ks.cfg #查看图形软件的所有设置保存是否成功
- 4.利用web传输应答文件
[root@svr7 ~]# cp /root/ks.cfg /var/www/html
[root@svr7 ~]# ls /var/www/html
centos ks.cfg
- 5.修改菜单文件,指定获取应答文件的路径及名称
61 label linux
62 menu label ^Install CentOS 7
63 menu default
64 kernel vmlinuz
65 append initrd=initrd.img ks=http://192.168.4.7/ks.cfg #让客户端找到192.168.4.7的装机文件
思路:
1.dhcp服务器------>IP地址 next-server filename pxelinux.0
2.tftp服务器----->pxelinux.0
3.pxelinux.0--------->菜单文件
/var/lib/tftpboot/pxelinux.cfg/default
4.default--------> 图形模块.驱动.内核.ks应答文件
5.ks应答文件------>时区 密码 软件包...
--url="httpd://192.168.4.7/centos"