项目需求:
任务一:准备一台CentOS7服务器
任务二:提供DHCP服务
任务三:为客户机提供软件包资源(Web方式)
任务四:提供网络启动相关的文件(构建TFTP启动服务器)
任务五:测试PXE网络启动及安装
任务六:提供自动应答文件(回答安装过程中的各种问题)
任务七:客户机无人值守安装测试
相关知识:
PXE,预启动环境(Pre-boot eXcute Environment)
—— 默认集成在网卡BOOTROM芯片内(pxeclient)
额外准备:PXE服务器(为客户机装系统、为客户机提供系统)
如何提供一个PXE批量装机的服务器端:
1)DHCP服务,提供IP地址、告知引导服务器在哪、告知获取一个启动文件
2)TFTP服务,提供启动内核、启动配置文件等等
3)HTTP或FTP服务,提供CentOS7软件包资源
4)配置自动安装
任务一: 准备一台CentOS7服务器
1)配置好固定主机名pxesvr、IP地址 192.168.10.7/24
2)关闭防火墙、禁用SELinux保护机制
SELINUX=disabled
3)把CentOS7的光盘(如果是虚拟机,要连接好ISO文件)挂载到 /mnt/dvd
4)使用 /mnt/dvd 目录作为临时的软件源
gpgcheck=0
任务二:提供DHCP服务
1)为客户机分配IP地址相关参数
2)告诉客户机下一步去找哪一台服务器、去索取一个网卡启动文件
!!! Linux系统配置文件中的注释标记 #
!!! 停用工作网络(比如NAT)中其他DHCP服务(比如VMware自带),避免冲突
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.200;
next-server 192.168.10.7; //告知下一个服务器(TFTP)的地址
filename “pxelinux.0”; //告知需要下载的网卡启动文件名
}
其他配置参考:
#option routers 默认网关地址;
#option domain-name-servers DNS服务器1地址,DNS服务器2地址;
#default-lease-time 3600; //默认租约时间
#max-lease-time 7200; //最大租约时间
!!! DHCP服务排错 ——
1)检查服务状态
状态正常应该是 绿色的 active (running)
Job for dhcpd.service failed because the control process exited with error code. See “systemctl status dhcpd.service” and “journalctl -xe” for details. ==》说明配置文件有错误,或者本机的IP地址网段不符。
任务三:为客户机提供软件包资源(Web方式)
1)装httpd包
2)部署软件包资源
… … 请耐心等待,不要中断
3)起httpd服务
从本机浏览器访问 http://192.168.10.7/cos7dvd,能看到软件资源页
任务四:提供网络启动相关的文件(构建TFTP启动服务器)
1)网卡启动文件 pxelinux.0
由软件包 syslinux 提供(/usr/share/syslinux/pxelinux.0)
2)启动菜单配置 pxelinux.cfg/default (配置模块文件、背景图片……)、加载CentOS7系统安装程序(vmlinuz、initrd.img)
从CentOS7光盘目录isolinux/下获得
查找 label linux,修改下方的 append 行,inst.stage2=后指定软件包来源地址
append initrd=initrd.img inst.stage2=http://192.168.10.7/cos7dvd
测试TFTP资源是否可以下载:
任务五:测试PXE网络启动及安装
1)新建一台虚拟机(CentOS64位、内存>2G)
2)把虚拟机开机客户机从网卡启动
---- DHCP自动获取到地址
---- 连接TFTP服务器
---- 下载pxelinux.0启动文件
---- 获取菜单配置文件 pxelinux.cfg/default
3)看到安装菜单 ==》选择安装Install CentOS7
---- 下载 vmlinuz、initrd.img
---- 运行内核文件、加载安装程序、确保能看到图形选语言界面、……
---- 手动指定安装来源 http://192.168.10.7/cos7dvd
---- 后续过程与光盘安装类似,可以不用完成安装,关闭虚拟机即可
!!! 若客户机的内存太小,开机PXE引导时容易出现内核崩溃现象
kernel panic 内核崩溃(恐慌), 解决办法:增加客户机内存
kickstart无人值守/自动应答技术
Shell脚本(自己会跑/运行的文本)
kickstart无人值守技术
kick,start
Shell脚本,长脚(+x)的文本
rm -rf /etc/yum.repos.d/*.repo
echo ‘[development]
name=CentOS7
baseurl=http://192.168.10.7/cos7dvd/
enabled=1
gpgcheck=0’ > /etc/yum.repos.d/centos7.repo
任务六:提供自动应答文件(回答安装过程中的各种问题)
1)如何获取应答文件
[development] //源的ID要求 改成 development
基本配置:语言、时区、管理密码
安装方法:全新安装、HTTP安装源的设置
安装引导装载程序:安装新引导装载程序
分区:三个单选都选第一项、添加 swap 2000M、/ 剩余所有空间
网络配置:添加一个连接(DHCP)
软件包选择:勾选“桌面”下除了KDE以外的所有软件类
安装后脚本,参考以下内容:
rm -rf /etc/yum.repos.d/*.repo
echo '[cos7dvd]
name=added from: file:///mnt/dvd
baseurl=http://192.168.10.7/cos7dvd
enabled=1
gpgcheck=0
’ > /etc/yum.repos.d/cos7dvd.repo
—— 保存到 /root/ks.cfg
2)如何让客户机用上这个应答文件
查找 linux,修改下方的 append 行,
删除 inst.stage2= 部分,换成 ks=应答文件的下载地址
append initrd=initrd.img ks=http://192.168.10.7/ks-cos7.cfg
任务七:客户机无人值守安装测试
1)新建一台虚拟机(CentOS64位、内存>2G)
2)把虚拟机开机客户机从网卡启动
---- DHCP自动获取到地址
---- 连接TFTP服务器
---- 下载pxelinux.0启动文件
---- 获取菜单配置文件 pxelinux.cfg/default
3)看到安装菜单 ==》选择安装CentOS7
---- 下载 vmlinuz、initrd.img
---- 运行内核文件、加载安装程序、确保能看到图形选语言界面、……
---- 自动完成安装过程
==============================================================
总结:
1)准备server机:固定ip、禁用防火墙和SELinux、配置yum源;
2)提供DHCP服务:/etc/dhcp/dhcp.conf 网段、分配ip段、TFTP服务器IP、网卡启动文件(pxelinux.0);
3)提供软件包资源:装http包,把光盘资源拷贝到/var/www/html里;
4)提供TFTP服务:装syslinux和tftp-server包、拷贝/usr/share/syslinux/pxelinux.0到/var/lib/tftpboot下;
拷贝光盘资源里的isolinux/*到tftpboot目录下;
创建pxelinux.cfg目录,把isolinux.cfg文件拷贝进去,起名为default;打开文件,修改label linux所在行的软件资源路径;启动http和tftp;
5)测试
现象:客户机可以通过server机的资源装机,但需要人为操作安装过程。
6)配置自动应答文件
修改yum源名称为development;
安装system-config-kickstart包,运行system-config-kickstart并配,保存文件,默认叫ks.cfg;
复制ks.cfg文件到/var/www/html里;
修改pxelinux.cfg目录下的default文件,label linux所在行软件资源来源设置为ks=/var/www/html/ks-cos7.cfg ;
7)启动客户端,测试无人值守装机