-
RHEL7系列的常见安装流程-(2)
————网络安装部分
by lblneva
2018.12.20
-
前言
基于网络的安装,大体变化为安装介质从本地的转移及安装程序的启动。由于安装文件转移到网络位置,故启动安装程序需要指定网络位置。
整个网络安装可以基于有人值守及无人值守方式进行安装,差别在于有人值守可能需要本地安装介质,或已经配置好网络引导,但安装过程中需要手动输入必要项。无人值守在于整个安装流程中,计算机从网络引导并提前创建好配置有文件,用以自动配置安装需要内容(如磁盘的划分,安装的软件等等)。
本文简要记录无人值守安装的过程
-
引导流程
计算机启动过程中,如计算机本身没有启动项,系统是启动不了的。如果一台新机器想要无人值守,那么必须有引导介质。考虑到无人值守,并且面对大量机器环境下,通过网络安装是个不错的选择。
网络安装中,目前主要用的技术是pxe。简单来说就是计算机支持PXE,开机时候运行PXE固件,使用dhcp获得IP地址及网络中引导文件的路径与文件名,通过tftp协议下载这个文件并执行,由该程序来进行系统的安装(可以加载配置文件用来无人值守安装)。
做下总结,PXE安装系统的前提如下:
-
计算机支持PXE
-
有PXE环境:
-
环境中有dhcp服务器,并正确配置支持PXE(主要是告诉PXE客户端要启动文件的路径与名字)
-
环境中有tftp服务器(存放启动文件及配置文件)
-
环境中有可以通过网络访问方式获取的系统安装源
-
环境
参考上篇文章。本机为Linux,使用KVM作为虚拟化环境,本机提供必要的网络服务
-
无人值守系统安装:
-
拓扑
-
无人值守下的配置及验证
-
无人值守配置文件的生成:
系统安装时候需要输入各种必要信息,要无人值守安装系统,需提前设置好系统在安装时必要的信息,将其存放在服务器供安装程序调用。用到的配置文件主要有两个:
-
kickstart配置文件
-
pxe引导配置文件
-
kickstart文件
这个配置文件的作用为系统安装过程中的各种必要设定,如系统的语言,系统账户的密码等等。这个文件是个文本文件,可以自行编写也可以使用工具进行生成。
笔者这里使用kickstart这个软件生成配置文件,以RHEL7为例:
01.配置本地光盘为yum源。用以方便的安装软件。
02.建立yum的缓存
03.安装软件
04.运行软件来设置安装中需要设置的各个项目,并将其生成为kickstart配置文件(笔者这里生成的配置文件名字为ks.cfg,名字可以自定义)
最后附笔者生成的配置文件内容,大意为设置了ftp服务器(ftp://192.168.200.1)中的rhel-server-7.2-x86_64-dvd.iso镜像为安装源,做了磁盘的划分等:
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard ‘us’
# Root password
rootpw –iscrypted $1$O1C5z8p5$IfO9rqzeicd70F4G9g28/.
# System timezone
timezone Asia/Shanghai
# Use network installation
url –url=”ftp://192.168.200.1/rhel-server-7.2-x86_64-dvd.iso”
# System language
lang en_US
# Firewall configuration
firewall –disabled
# System authorization information
auth –useshadow –passalgo=sha512
# Use text mode install
text
# SELinux configuration
selinux –disabled
# Do not configure the X Window System
skipx
key –skip
# Network information
network –bootproto=dhcp –device=eth0
# Reboot after installation
reboot
# System bootloader configuration
bootloader –location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart –all –initlabel
# Disk partitioning information
part /boot –asprimary –fstype=”xfs” –size=500
part /home –fstype=”xfs” –size=2048
part pv.01 –size=14192
volgroup Rei pv.01
logvol / –vgname=Rei –size=14192 –fstype=”xfs” –name=root
%packages
@base
@core
@dial-up
@fonts
@print-client
-vim
%end
-
PXE文件及其配置文件
PXE需要引导PXE程序,这个程序可以由syslinux这个软件获得。
流程大体是通过PXE固件引导的计算机通过dhcp获得pxelinux.0这个文件的网络路径,下载执行后加载配置文件中的设置。对于linux来说就是通过它的执行来下载并启动一个linux的内核,内核加载kickstart配置文件来实现无人值守的安装。
Syslinux中的文件如下图:
这里我将必要的PXE文件打包为tftpboot.zip,并将其释放到PXE环境中TFTP服务器上。其中pxelinux.cfg是个文件夹,用来存放PXE的配置文件(名字为default),用来配置启动网络中操作系统的安装程序。
PXE的配置文件可以修改Linux的安装光盘中isolinux文件夹里的isolinux.cfg这个文件,只需要在菜单处添加PXE启动菜单即可。笔者对其主要的修改为添加了如下内容:
label Pex
menu label ^Install RHEL 7.2 ON PEX
menu default
kernel vmlinuz
append initrd=initrd.img inst.stage2=tftp://192.168.200.1 inst.ks=tftp://192.168.200.1/ks.cfg quiet
大意为建立了个标题为”Install RHEL 7.2 ON PEX“的引导项,kickstart配置文件为tftp服务器(192.168.200.1)中的ks.cfg文件.
-
PXE环境的搭建
-
FTP
这里笔者选用的是vsftp这个软件作为FTP服务器, 需要和上面kickstart配置文件中安装源对应。配置(大意是设置ftp的匿名用户主目录为/ReiR0/ftproot,在这个目录中放入RHEL7.2的镜像文件)如图:
-
TFTP
这里笔者选用的是aftpd这个软件作为TFTP服务器, 用来存放PXE引导文件及内核文件。需要和上面PXE程序的配置文件对应。配置(大意是设置tftp的主目录为/ReiR0/tftpdir,将PXE用到的文件存放到这个目录中的RHEL7.2目录中。文件是在RHEL7.2中打包的tftpboot.zip里的文件)如图:
-
DHCP
最后需要配置网络中的dhcp,这里笔者使用dhcpd作为DHCP服务器。配置(大意是本机IP 192.168.200.1/24,,分配该网段100到200的IP,PXE引导tftp服务器是192.168.200.1,pxe的文件是服务器中RHEL7.2目录下的pxelinux.0文件)如图:
-
PXE验证
-
客户端的创建
设定虚拟机的安装方式为PXE:
新建虚拟机,如图:
指定新虚拟机的磁盘大小与存储位置:
指明虚拟机的网络设置,这里设置为virbr1这个桥对应的网络:
PXE的提供由本机提供,显示的不支持PXE可以忽略
虽说启动顺序是磁盘高于网络,但是因为新磁盘,故虚拟机启动时会进入网络引导,在安装完系统后会进入磁盘内安装好的操作系统:
-
效果的演示
启动虚拟机,可以看到已经进入到PXE:
可以看到设置的pxe引导的内核加载的配置文件,里面有笔者创建的引导项:
进入到引导项,自动无人值守安装开始:
这里又创立了新的虚拟机,开机后自动进入到系统的安装:
安装结束后重启,进入到已安装到磁盘中的操作系统引导:
引导结束,进入到系统:



















