1.实现网络方式来实现安装操作系统
HTTP服务端
DHCP服务器
TFTP服务端
2.让网络装机实现自动化
手动安装
无人值守安装
准备装机环境 ——
HTTP服务端 (提供软件源和应答文件)
在真机上提供软件安装源 http://192.168.4.254/rh7dvd
1)启用httpd服务
# systemctl restart httpd
2)挂载RHEL7的ISO文件到 /var/www/html/rh7dvd
# mkdir -p /var/www/html/rh7dvd
# vim /etc/fstab
ISO文件的绝对路径 /var/www/html/rh7dvd iso9660 defaults 0 0
# mount /var/www/html/rh7dvd
# ls /var/www/html/rh7dvd/ //确认目录下有资源
3)检查,确认软件源可访问
浏览器访问 http://192.168.4.254/rh7dvd,可看到软件目录资源
常见问题:执行mount -a 挂载不成功
原因:同一个镜像挂载到多个位置,如果其中一个位置已经挂载,那么在执行mount -a时不再挂载新的位置
解决办法:
重启,
或者 mount 挂载点
或者 卸载这个设备的所有挂载点,再重新mount -a
DHCP服务器 (为客户机动态提供IP地址相关参数,告诉客户机要访问的下一个服务器和向服务器索取启动文件)
一台计算机如何从DHCP服务器获取IP地址
1)客户机 请求,DHCP DISCOVERY
2)服务器 提供,DHCP OFFER
3)客户机 选择,DHCP REQUEST
4)服务器 确认,DHCP ACK
快速搭建DHCP服务器(svr7) ——
1)装包 dhcp
# yum -y install dhcp
2)配置
# vim /etc/dhcp/dhcpd.conf
-
subnet
192.168
.4
.0 netmask
255.255
.255
.0 {
-
range
192.168
.4
.10
192.168
.4
.200;
-
next-server
192.168
.4
.7;
//PXE装机服务器地址
-
filename
”pxelinux.0”;
//启动文件
-
}
3)起服务 dhcpd
# systemctl restart dhcpd
4)确认监听状态
# netstat -anptu | grep :67
5)在客户机pc207上测试
# dhclient -d eth0
选项含义:
-a,所有连接
-n,以数字方式显示地址和端口
-p,列出对应的进程和PID
-t,列出TCP类型的连接
-u,列出UDP类型的连接
DHCP服务监听端口:UDP 67
BOOTROM 启动芯片
PXE 应用:
方式1:远程装操作系统
方式2:远程运行操作系统(无盘工作站)
实现PXE网络装机 ——
基本条件:
1. DHCP地址分配服务
2. yum 软件源
PXE引导配置:
TFTP服务端 (为客户机提供启动文件,装系统用的素材)
pxelinux.0 (网卡启动文件) rhel7/vmlinuz(内核文件) rhel7/initrd.img(初始化文件)
/var/lib/tftpboot/pxelinux.cfg/default(决定客户端显示界面如何显示)
vesamenu.c32 (模板文件) splash.png (背景图片)
3. 启用TFTP引导服务,提供用来启动客户机的文件资料
1)装包、起服务
# yum -y install tftp-server
# systemctl restart tftp
2)提供网卡启动文件 pxelinux.0
# yum -y install syslinux
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux.0
—— 建议在客户机pc207先测试,确保可以下载
# yum -y install tftp
!!! 测试方法:tftp 服务器地址 -c get 文件名
# tftp 192.168.4.7 -c get pxelinux.0
# ls -lh pxelinux.0 //确认下载结果
3)提供用来安装XX系统的内核文件(及运行内核所需的初始化文件)
#### 访问 http://192.168.4.254/isolinux/
#### 找到 vmlinuz、initrd.img 文件的下载地址,复制使用
# mkdir /var/lib/tftpboot/rhel7
# cd /var/lib/tftpboot/rhel7
# wget http://vmlinuz文件的下载地址
# wget http://initrd.img文件的下载地址
# ls /var/lib/tftpboot/rhel7/ //确认部署结果
initrd.img vmlinuz
4)提供pxelinux.0启动程序的配置文件(用来显示启动菜单)
#### 访问 http://192.168.4.254/isolinux/
#### 找到 isolinux.cfg 文件的下载地址,复制使用
# mkdir /var/lib/tftpboot/pxelinux.cfg/
# cd /var/lib/tftpboot/pxelinux.cfg/
# wget http://isolinux.cfg文件的下载地址 -O default (default这个文件决定客户端的PXE启动菜单的显示)
# cd /var/lib/tftpboot/
# wget http://vesamenu.c32图形模块支持文件的下载地址
# wget http://splash.png背景图片文件的下载地址
# ls /var/lib/tftpboot/ //确认部署结果
pxelinux.cfg rhel7 vesamenu.c32
pxelinux.0 splash.png
# ls pxelinux.cfg/ //确认菜单配置文件
default
TFTP服务的默认资源目录
/var/lib/tftpboot/
!!!! 查找哪一个软件包能够提供 XXXX 文件
# yum provides ”*/XXXX” 【查看哪个软件包能提供XX文件】
rpm -ql syslinux 【查询软件包装了哪些文件】
4. 提供装机菜单
手动安装
# vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamecu.cfg //菜单显示由vesa…负责
timeout 600 //倒计时等待时间(1/10秒)
label linux
menu label ^Install Red Hat Enterprise Linux 7.2
kernel rhel7/vmlinuz 【第63行】
append initrd=rhel7/initrd.img inst.stage2=http://192.168.4.254/rh7dvd 【第64行】
练习:新建一台虚拟机,测试PXE网络装机的效果
1)虚拟机定制:从网络安装、内存2G、硬盘20G、网络private1
2)启动后能成功看到选择菜单
3)选择第一项后,成功加载图形安装程序
4)手动指定分区方式、软件仓库(http://192.168.4.)
客户机的引导过程:
一台需要装RHEL7系统的客户机(裸机)
==》电源 ==》主板开机BIOS自检 ==》优先从网络启动
==》网卡芯片里的PXE Client程序
==》获取IP地址、按照DHCP指示去找TFTP服务器
==》向TFTP服务器索取 pxelinux.0 并下载
==》在内存中运行 pxelinux.0
==》从TFTP资源目录 pxelinux.cfg/default 下载到菜单配置
==》按照default文件配置显示一个选择界面
==》如果客户机的用户选择“Install Red Hat Enterprise Linux 7.2”,那么
==》找TFTP服务器的 rhel7/ 目录下载内核、初始化文件
==》在内存中运行vmlinuz内核文件,由内核获取系统控制权限
==》根据配置的inst.stage2参数指定的位置去获取安装程序
==》在客户机运行安装程序
==》由安装程序主导XX系统安装过程
kernel panic,内核 恐慌
常见错误:
1)配置文件 default 错写为 deafult
2)inst.stage2指定的软件源位置写错 http://…/rhdvd
3)DHCP服务配置中
subnet 192.168.4.0 netmask 254.254.254.0
4)tftp服务没开启
5)……
NIC,Network Interface Card,网卡
实现自动应答的关键配置:
1)在模板机上安装system-config-kickstart软件包
[root@svr7 ~]# yum -y install system-config-kickstart
2)调整模板机的yum仓库设置
清理掉无关的yum源,只保留为客户机安装RHEL7系统所必要的yum源,并且将源的ID修改 development,如果不指定ID为development,生成ks文件时就无法获取yum源地址。
-
[
root@svr7 ~]
# vim /etc/yum.repos.d/rh7dvd.repo
-
[
development]
-
name = Red Hat Enterprise Linux
7
-
baseurl = http:
//192.168.4.254/rh7dvd
-
gpgcheck =
0
应答文件的准备过程:
[root@dhcp_tftp_server yum.repos.d]# system-config-kickstart
1.设置默认语言,键盘,时区,root密码
2.设置安装方式,安装来源(设置http的ip地址和目录)
3.设置应到装载程序选项,安装类型选择安装新引导装载程序
4.引导装载程序选项 选择安装新引导装载程序
4.1 添加交换分区 文件系统类型选择swap,固定大小为4096M
4.2添加根分区 挂载点选择/ 大小选项选择使用磁盘上全部未用空间
5.网络配置中的网络设备选择eth0,网络类型选择DHCP
5.验证采用默认配置即可
6.防火墙配置 SELinux选择禁用,安全级别选择禁用防火墙
7.显示配置默认
8.软件包选择 桌面(除第二个不勾选,其他的都勾选)
9.添加安装后的脚本 自动配置yum源的脚本
然后点击左上角的文件,进行保存
应答文件ks_lijun.cfg下载地址
点击链接下载kickstart文件
1)需要一份提前准备好的应答文件,客户机必须能够下载
确认访问地址:http://192.168.4.254/ks-rhel7.cfg
2)修改 default 菜单配置使用这份应答文件
# vim /var/lib/tftpboot/pxelinux.cfg/default
label linux
.. ..
kernel rhel7/vmlinuz
append initrd=rhel7/initrd.img ks=http://192.168.4.254/ks-rhel7.cfg
全自动裸机装配(装系统、配置系统)
安装后脚本 —— 使PXE客户机在完成系统安装之后自动执行XX操作
比如:自动配置好yum源
# rm -rf /etc/yum.repos.d/*.repo
!!!!
### echo ‘yum源配置文件内容’ > /etc/yum.repos.d/rhel7dvd
# echo ’[rhel7]
name=Red Hat Enterprise Linux 7.2
baseurl=http://192.168.4.254/rh7dvd
gpgcheck=0’ > /etc/yum.repos.d/rhel7.repo
TFTP+DHCP启动服务器备份与恢复
备份 :
tar -zcPf pxeconfig.tar.gz /var/lib/tftpboot/ /etc/dhcp/dhcpd.conf
恢复:
yum -y install dhcp tftp-server
tar -xPf /opt/pxeconf.tar.gz
systemctl restart dhcpd tftp
vim末行模式,删除连续的多行文本
:73,144dd
配置default文件 加^RedHat7 可以定义快捷键