本文主要是介绍PXE + Kickstart 无人值守装机,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
一、简介
二、PXE工作流程
三、搭建 PXE 远程安装服务器
1.安装包准备
2.环境准备
3.搭建PXE远程安装服务器
(1)关闭 firewalld 和 selinux
(2)配置双网卡
1)添加硬件网卡
2)编辑网卡配置文件
3)重启网卡
(3) 安装并启动 DHCP 服务
1)安装DHCP
2)配置DHCP服务
3)启动DHCP
(4)安装并启动 ftp 服务
1)安装 ftp 服务
2)配置共享目录
3)启动 ftp 服务
4)检查 ftp 服务启动状态,以及镜像共享情况
(5)安装并启动TFTP服务
1)安装TFTP
2)配置TFTP服务
3)启动 TFTP 服务
(6)准备 PXE 引导程序
1)查找pxelinux.0是哪个软件包安装的
2)安装syslinux服务
3)复制系统引导文件至共享目录
4)将内核文件、引导菜单文件放到tftp共享目录下
(7)配置启动菜单文件
4.实现Kickstart无人值守安装
(1)准备安装应答文件
(2)打开“Kickstart 配置程序”窗口
(3)配置kickstart选项
1)基本配置
2)安装方法
3)引导装载程序选项
4)分区信息
5)网络配置
6)防火墙配置
7)安装后脚本
8)保存自动应答文件
9)配置需要安装的软件包
10)编辑引导菜单文件 default,添加 ks 引导参数
(4)验证无人值守安装
一、简介
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。PXE协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统(共享的操作系统引导程序)通过网络下载到本地运行。PXE在其启动过程中,客户端请求服务器分配IP地址,之后PXE Client使用TFTP Client通过TFTP(Trivial File Transfer Protocol)协议下载启动安装程序所需的文件。
PXE网络安装:客户机通过支持PXE的网卡向网络中发送请求DHCP信息的广播请求IP地址等信息,DHCP服务器给客户端提供IP地址和其它信息(TFTP服务器、启动文件等),之后请求并下载安装需要的文件。
Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录需要人工干预填写的各种参数,并记录生成一个名为anaconda-ks.cfg的文件。
二、PXE工作流程
PXE工作流程:
1.PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP和安装相关文件
2.DHCP 服务器返回分配给客户机的IP地址,以及PXE文件的存放位置(TFTP服务器的地址)
3.PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件(启动引导程序,选择内核版本,过 程不可见)
4.PXE Client 取得pxelinux.0 文件后之执行该文件
5.根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统
6.进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装相关软件包
7.pexlinux:启动菜单(选择操作系统) vmliunx(内核文件) initrd(辅助文件)
三、搭建 PXE 远程安装服务器
1.安装包准备
vsftpd //用来放置安装镜像,通过ftp访问镜像安装
dhcp.x86_64 12:4.2.5-7pd-3.0.2-27.el7.x86_64.r9.el7.centos //用来给客户机分配ip
syslinux-4.05-15.el7.x86_64.rpm //用来提供pxe的引导程序
tftp-server.x86_64 0:5.2-22.el7.rpm //用来提供引导镜像文件的下载
xinetd.x86_64 2:2.3.15-14.el7 //用来托管tftp
system-config-kickstart.noarch 0:2.9.7-1.el7.rpm //用来无人值守安装
2.环境准备
一台作为pxe服务器,一台作为测试安装客户机
主机服务器地址:192.168.94.19主机名:localhost
一台主机:1)配置双网卡 一个作用是dhcp,一个是使用网络源安装环境包
2)DHCP部署
3)tftp-server 服务器通过 TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。
4)syslinux //用来提供pxe的引导程序
5)xinetd //用来托管tftp
6)vsftpd //用来放置安装镜像,通过ftp访问镜像安装
7)kickstart //用来无人值守安装
3.搭建PXE远程安装服务器
(1)关闭 firewalld 和 selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/configsetenforce 0
systemctl stop firewalldsystemctl disable firewalld
(2)配置双网卡
作用:一个作用是dhcp,一个是使用网络源安装环境包
1)添加硬件网卡
2)编辑网卡配置文件
#查看新添加网卡设备名
ip link show | grep ens
cd /etc/sysconfig/network-scripts/cp ifcfg-ens33 ifcfg-ens36vim ifcfg-ens36
3)重启网卡
systemctl restart networksystemctl status network
(3) 安装并启动 DHCP 服务
1)安装DHCP
yum -y install dhcp
#将dhcp配置模板复制到dhcp配置文件中
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
2)配置DHCP服务
vim /etc/dhcp/dhcpd.conf
subnet 192.168.188.0 netmask 255.255.255.0 {range 192.168.132.200 192.168.132.249;option domain-name-servers 114.114.114.114,8.8.8.8;option routers 192.168.188.2;default-lease-time 600;max-lease-time 7200;next-server 192.168.188.100; #填写tftp服务器IP地址(本机)filename "pxelinux.0"; #填写引导文件名称
}
3)启动DHCP
systemctl start dhcpd && systemctl enable dhcpdsystemctl status dhcpd
(4)安装并启动 ftp 服务
在http的网页共享目录下创建新目录,并将光盘挂载到此目录,实现光盘内容共享.
主要目的是操作系统安装的最后一个步骤需要安装软件。
1)安装 ftp 服务
yum -y install vsftp
2)配置共享目录
# 创建共享目录
mkdir /var/ftp/centos7
#挂载本地光盘镜像
vim /etc/fstab
/dev/sr0 /mnt/centos7 iso9660 defaults 0 0#挂载
mount -a#复制文件至 ftp 共享目录
cp -rf /mnt/centos7/* /var/ftp/centos7
3)启动 ftp 服务
systemctl start vsftpd && systemctl enable vsftpdsystemctl status vsftpd
4)检查 ftp 服务启动状态,以及镜像共享情况
#查看端口监听情况
ss -tlunp|grep vsftpd文件管理器访问
ftp://192.168.106.252/centos7
(5)安装并启动TFTP服务
1)安装TFTP
#安装tftp服务
yum install -y tftp-server.x86_64#安装xinetd对TFTP服务进行管理,tftp被xinet所托管,xinetd默认没有安装
#xinetd是新一代的网络守护进程服务程序,又叫超级Internet服务器。
#经常用来管理多种轻量级Internet服务。xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。
yum install -y xinetd
2)配置TFTP服务
vim /etc/xinetd.d/tftpservice tftp
{socket_type = dgramprotocol = udpwait = yes #yes表示客户机只能一台一台连接,no表示可以堕胎一起去连接user = rootserver = /usr/sbin/in.tftpdserver_args = -s /var/lib/tftpboot #共享文件的路径(放在此目录下) disable = no #开启tftp服务per_source = 11 #通过限制一个主机的最大连接数,从而防止某个主机独占某个服务,这里每个IP地址的连接数是11个cps = 100 2 #表示服务器最多启动100个连接,如果达到这个数目将停止启动新服务2秒。在此期间不接受任何请求flags = IPv4
}
3)启动 TFTP 服务
systemctl start xinetd && systemctl enable xinetdsystemctl start tftp && systemctl enable tftpsystemctl status xinetd.service && netstat -atnulp | grep xinet
(6)准备 PXE 引导程序
说明:
pxelinux.0是个二进制文件,主要作用相当于一个系统安装步骤的指引,引导客户端如何安装系统
yum provides /pxelinux.0 #查找这个文件是由哪个软件包安装的,当不是一个路径和一个软件包时用/
yum -y install syslinux
rpm -ql syslinux | grep pxelinux #查找pxe引导程序的位置
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #拷贝到tftp的根目录下,系统引导文件
注:只有安装了 system-config-kickstart 软件包,才会有/usr/share/syslinux/目录及目录中的文件
1)查找pxelinux.0是哪个软件包安装的
yum provides */pxelinux.0
2)安装syslinux服务
yum -y install syslinux
3)复制系统引导文件至共享目录
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
4)将内核文件、引导菜单文件放到tftp共享目录下
#用来预加载的内核和驱动文件,然后使用预加载内核进行系统安装
cp -a /var/ftp/centos7/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
(7)配置启动菜单文件
启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载驱动。默认的启动菜单文件为 default,应放置在 tftp 根目录的 pxelinux.cfg 子目录下,典型的启动菜单配置可参考以下操作自动或手动建立。至于为什么要是/var/lib/tftpboot/pxelinux.cfg/default文件,因为是由pxelinux.0这个文件决定好的
mkdir /var/lib/tftpboot/pxelinux.cfg #默认pxelinux.cfg是没有的需要手动创建,注意它是一个目录而非文件虽然是以.cfg结尾
mkdir /var/lib/tftpboot/pxelinux.cfgvim /var/lib/tftpboot/pxelinux.cfg/default
default auto #指定默认入口名称,对应下面的label auto
prompt 1 #设置是否等待用户选择,“1”表示等待用户控制,0表示不等待用户控制,安装时会出现boot:如果按回车表示选择auto模式label auto #图形安装(默认)引导入口,label 用来定义启动项
kernel vmlinuz #kernel 和 append用来定义引导参数
append initrd=initrd.img method=http://192.168.106.252/centos7label linux text #文本安装引导入口 出现boot:时输入linux text
kernel vmlinuz
append text initrd=initrd.img method=http://192.168.106.252/centos7label linux rescue #救援模式引导入口出现boot:时输入linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=http://192.168.106.252/centos7
4.实现Kickstart无人值守安装
(1)准备安装应答文件
#准备安装应答文件
yum install -y system-config-kickstart
(2)打开“Kickstart 配置程序”窗口
通过桌面菜单“应用程序”–>“系统工具”–>“Kickstart” 打开
或
执行 “system-config-kickstart” 命令打开
(3)配置kickstart选项
1)基本配置
默认语言设为“中文(简体)”
时区设为“Asia/Shanghai”
设置root密码
高级配置中勾选“安装后重启”。
2)安装方法
3)引导装载程序选项
“安装类型”:安装新引导装载程序
“安装选项”:在主引导记录(MBR)中安装引导装载程序
4)分区信息
主引导记录:不清除主引导记录
分区:删除所有现存分区
磁盘标签:初始化磁盘标签
布局:添加分区
挂载点:/boot,文件系统类型:xfs,固定大小:500M
文件系统类型:swap,固定大小:4096M
挂载点:/home,文件系统类型:xfs,固定大小:4096M
挂载点:/,文件系统类型:xfs,使用磁盘上全部未使用空间
5)网络配置
添加网络设备“ens33”
网络类型设为“DHCP”
6)防火墙配置
禁用 SELinux、禁用防火墙
7)安装后脚本
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
echo “[local]
name=local
baseurl=ftp://192.168.188.100/centos7
enabled=1
gpgcheck=0” > /etc/yum.repos.d/local.repo
8)保存自动应答文件
选择“Kickstart 配置程序”窗口的“文件”–>“保存”命令,选择指定保存位置,文件名为ks.cfg
默认保存在/root/ks.cfg
9)配置需要安装的软件包
将文件放到/var/ftp下
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$CqygEHhD$j13QTJ13yN.ZK0llPk70U/
# System language
lang zh_CN
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled# Firewall configuration
firewall --disabled
# Network information
network --bootproto=dhcp --device=ens33
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# Use network installation
url --url="ftp://192.168.188.100/centos7"
# System bootloader configuration
bootloader --location=mbr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=500
part /home --fstype="xfs" --size=4096
part swap --fstype="swap" --size=4096
part / --fstype="xfs" --grow --size=1%packages
@^gnome-desktop-environment #安装桌面环境(需要保证共享的操作系统镜像包含这些组件集合)
@base ##安装基础软件包
@core
@desktop-debugging
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
%end#最小化安装(当共享镜像为简洁版时,采用最小化安装)
#%packages
#@core
#%end%post
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
echo “[local]
name=local
baseurl=ftp://192.168.188.100/centos7
enabled=1
gpgcheck=0” > /etc/yum.repos.d/local.repo
%end
10)编辑引导菜单文件 default,添加 ks 引导参数
vim /var/lib/tftpboot/pxelinux.cfg/defaultdefault auto #指定默认入口名称,对应下面的label auto
prompt 0 #设置是否等待用户选择,“1”表示等待用户控制,0表示不等待用户控制,安装时会出现boot:如果按回车表示选择auto模式label auto #图形安装(默认)引导入口,label 用来定义启动项
kernel vmlinuz #kernel 和 append用来定义引导参数
append initrd=initrd.img method=ftp://192.168.188.100/centos7 ks=ftp://192.168.188.100/ks.cfglabel linux text #文本安装引导入口 出现boot:时输入linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.188.100/centos7 ks=ftp://192.168.188.100/ks.cfglabel linux rescue #救援模式引导入口出现boot:时输入linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.188.100/centos7 ks=ftp://192.168.188.100/ks.cfg
(4)验证无人值守安装
新建虚拟机内存至少为2G,网卡需要与dhcp服务器网络相通。
这篇关于PXE + Kickstart 无人值守装机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!