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/config

setenforce 0
systemctl stop firewalld

systemctl disable firewalld

(2)配置双网卡

作用:一个作用是dhcp,一个是使用网络源安装环境包

1)添加硬件网卡

2)编辑网卡配置文件
#查看新添加网卡设备名
ip link show | grep ens

cd /etc/sysconfig/network-scripts/

cp ifcfg-ens33 ifcfg-ens36

vim ifcfg-ens36

3)重启网卡 
systemctl restart network

systemctl 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 dhcpd

systemctl 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 vsftpd

systemctl 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/tftp

service tftp
{
      socket_type		= dgram
      protocol			= udp
      wait				= yes   #yes表示客户机只能一台一台连接,no表示可以堕胎一起去连接
      user				= root
      server			= /usr/sbin/in.tftpd
      server_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 xinetd

systemctl start tftp && systemctl enable tftp

systemctl 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.cfg

vim /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/centos7

label linux text     #文本安装引导入口 出现boot:时输入linux text
kernel vmlinuz
append text initrd=initrd.img method=http://192.168.106.252/centos7

label 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/default

default 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.cfg

label 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.cfg

label 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服务器网络相通。

  • 20
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值