一、安装网络引导服务器的rhel8系统
说明:
1、此次实验是在VMWware16虚拟机下进行的;
2、使用的系统镜像是rhel8系统;
1、pxe服务器硬件配置
2、pxe服务器的系统
A、安装系统:pxe服务器系统安装的是rhel8,采用默认安装方式安装
B、系统安装完成后,简单初始化配置
# 1、检查系统网络与防火墙、SELinux状态
[root@linuxprobe ~]# systemctl status firewalld.service # 状态为:active
[root@linuxprobe ~]# getenforce # 状态为:Enforcing
root@linuxprobe ~]# nmcli con show # 状态:启动状态
[root@linuxprobe ~]# ifconfig ens160 # 检查地址是否正确:正确
# 2、设置时间同步
[root@linuxprobe ~]# vim /etc/chrony.conf
#内容如下:设置中国时间同步服务器
pool 0.cn.pool.ntp.org iburst
pool 1.cn.pool.ntp.org iburst
pool 2.cn.pool.ntp.org iburst
pool 3.cn.pool.ntp.org iburst
[root@linuxprobe ~]# systemctl start chronyd # 启动时间同步
[root@linuxprobe ~]# systemctl enable chronyd # 开机自启动
[root@linuxprobe ~]# systemctl status chronyd # 查看服务状态:active
[root@linuxprobe ~]# systemctl is-enabled chronyd # 检查是否开机自启 :enabled
# 3、配置本地yum源(光盘镜像处于启动状态)
# step1:挂载关盘镜像
[root@linuxprobe ~]# mkdir /media/cdrom # 新建光盘挂载目录
[root@linuxprobe ~]# mount /dev/cdrom /media/cdrom # 临时挂载光盘
[root@linuxprobe ~]# echo "/dev/sr0 /media/cdrom iso9660 defaults 0 0" >> /etc/fstab # 永久挂载
[root@linuxprobe ~]# lsblk # 查看是否挂载成功
# step2:配置yum源
[root@linuxprobe ~]# vim /etc/yum.repo.d/redhat.repo
# 内容如下:
[BaseOS]
name=BaseOS
baseurl=file:///media/cdrom/BaseOS
enabled=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///media/cdrom/AppStream
enabled=1
gpgcheck=0
[root@linuxprobe ~]# yum clean all
[root@linuxprobe ~]# yum makecache
[root@linuxprobe ~]# yum repolist # 检查
二、配置pxe网络引导安装系统相关服务
1、DHCP Server
DHCP服务器主要用于向需要网络引导安装系统的客户端分配IP地址,并告知tftp服务器的ip地址和引导文件位置(pxelinux.0文件或 shimx64.efi文件)
# step1:安装 dhcp-server 服务
[root@linuxprobe ~]# yum -y install dhcp-server # A、安装
[root@linuxprobe ~]# systemctl enable dhcpd # B、设置开机启动
[root@linuxprobe ~]# systemctl is-enabled dhcpd # 检查是否开机启动
[root@linuxprobe ~]# firewall-cmd --permanent --add-service=dhcp # C、防火墙放行dhcp服务
[root@linuxprobe ~]# firewall-cmd --reload # 重新加载防火墙
[root@linuxprobe ~]# firewal-cmd --list-all # 查看dhcp服务是否被防火墙放行
# step2: 配置DHCP服务
[root@linuxprobe ~]# vim /etc/dhcp/dhcpd.conf
# (要配置的模板内容在:/usr/share/doc/dhcp-server/dhcpd.conf.example文件中第47到55行内容)
# 内容如下:
subnet 192.168.50.0 netmask 255.255.255.0 { # 指定分配IP的地址段和子网掩码
range 192.168.50.130 192.168.50.150; # 指定分配IP地址的范围
option routers 192.168.50.2; # 指定路由地址
option broadcast-address 192.168.50.255; # 指定广播域
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.50.228; # 指定tftp服务的IP地址
filename "pxelinux.0"; # 指定引导文件(该文件放在tftp服务的共享根目录下)
}
# step3:启动DHCP服务
[root@linuxprobe ~]# systemctl start dhcpd
[root@linuxprobe ~]# systemctl status dhcpd
2、tftp Server
TFTP服务器向网络中需要安装系统的客户端提供引导文件(如:pxelinux.0)、对客户端的pxelinux.cfg或grub.cfg以及vimliuz、initrd文件,并告知客户端ks应答文件的位置。
# step1:安装 tftp-server、xinetd;并配置启动tftp服务
# (原因:tftp服务是由xinetd服务管理的,故需安装xinetd服务)
# A、安装 --> B、配置xinetd服务以管理tftp服务 --> C、设置xinetd服务开机启动 --> D、防火墙放行tftp服务 --> E、启动xinetd服务
[root@linuxprobe ~]# yum -y install tftp-server xinetd # A、安装
[root@linuxprobe ~]# cd /etc/xinetd.d/ # B、配置xinetd服务以管理tftp服务
[root@linuxprobe ~]# touch tftp # 创建tftp
[root@linuxprobe xinetd.d]# vim tftp # 配置tftp服务
#(要配置tftp服务的模板内容在:/usr/share/doc/xinetd/sample.conf文件中第142到149行内容)
# 内容如下:
service tftp
{
socket_type = dgram
wait = yes
user = root
server = /usr/sbin/in.tftpd # tftp服务位置
server_args = -s /var/lib/tftpboot # tftp默认根目录
disable = no # xinetd启动tftp服务
}
[root@linuxprobe xinetd.d]# cd # C、设置xinetd服务开机启动
[root@linuxprobe ~]# systemctl enable xinetd # xinetd 开机自启
[root@linuxprobe ~]# firewall-cmd --permanent --add-service=tftp # D、防火墙放行tftp服务
[root@linuxprobe ~]# firewall-cmd --reload # 重新加载防火墙
[root@linuxprobe ~]# systemctl start xinetd # E、启动xinetd服务
[root@linuxprobe ~]# systemctl status xinetd # 检查是否启动成功
# 1、状态为 active;说明xinetd服务启动
# 2、有这样信息:Started working: 1 available service,说明xinetd管理的一个服务启动
[root@linuxprobe ~]# netstat -tlunp # 检查69端口是否启动
# 3、查看有一个69端口的xinetd服务,说明tftp服务启动(tftp的端口是69)
# step2:向tftp服务根目录中添加网络安装系统所需文件
# 1、添加 “引导文件(pxelinux.0)” (注:所需要的引导文件在 syslinux 这个软件包中;故需要安装该包并将其中引导文件复制到tftp根目录中)
[root@linuxprobe ~]# yum -y install syslinux # A、安装syslinux软件包
[root@linuxprobe ~]# cd /var/lib/tftpboot/ # B、进入tftp服务的根目录下
[root@linuxprobe tftpboot]# cp -r /usr/share/syslinxu/* ./ # C、将syslinux目录下的所有引导文件复制到tftp服务根目录下
# 2、添加vimliuz、initrd文件和安装时消息提示信息文件boot.msg
# (vimliuz、initrd文件可以从光盘的系统镜像中复制:/media/cdrom/images/pxeboot/
# boot.msg文件在 /media/cdrom/isolinux/目录下)
# A、将光盘中images/pxeboot目录下的vimliuz、initrd拷贝到tftp根目录下
[root@linuxprobe tftpboot]# cp -p /media/cdrom/images/pxeboot/* ./
# B、将光盘中消息提示文件boot.msg拷贝到tftp根目录下
[root@linuxprobe tftpboot]# cp -p /media/cdrom/isolinux/boot.msg ./
# 3、添加系统响应文件(pxelinux.cfg/default),并配置指定系统镜像位置和ks应答文件位置等信息
# (default文件内容可以从光盘的ioslinux/pexlinux.cfg文件拷贝)
[root@linuxprobe tftpboot]# mkdir pxelinux.cfg
[root@linuxprobe tftpboot]# cd pxelinux.cfg
[root@linuxprobe pxelinux.cfg]# cp -p /media/cdrom/isolinux/isolinux.cfg default
[root@linuxprobe pxelinux.cfg]# chmod 644 default
[root@linuxprobe pxelinux.cfg]# vim default
# 修改内容如下:
# 第1~2行改为如下内容:
default linux # 表示用以linux为名的标签下的内容引导系统
timeout 0 # 表示不用等待,立即引导
# 第61~64行改为如下内容:
label linux
menu label ^Install Red Hat Enterprise Linux 8.0.0
kernel vmlinuz
append initrd=initrd.img inst.stage2=http://192.168.50.228/rhel8 inst.ks=http://192.168.50.228/rhel8.ks
# (inst.stage2指定系统镜像位置;inst.ks指定kickstart应答文件位置)
[root@linuxprobe pxelinux.cfg]# cd
[root@linuxprobe ~]#
3、HTTP/FTP/NFS Server
以HTTP服务为例,它是用于向客户端提供系统镜像文件和kickstart响应文件,用于客户端正式安装操作系统。
# step1、安装 httpd 服务,启动并设置开机自启动,且防火墙放行httpd服务
[root@linuxprobe ~]# yum -y install httpd
[root@linuxprobe ~]# systemctl enable httpd
[root@linuxprobe ~]# systemctl start httpd
[root@linuxprobe ~]# firewall-cmd --permanent --add-service=http
[root@linuxprobe ~]# firewall-cmd --reload
# step2、向httpd服务的共享目录下放置系统镜像文件
[root@linuxprobe ~]# cd /var/www/html/
[root@linuxprobe html]# mkdir rhel8
[root@linuxprobe html]# cp -rp /media/cdrom/* rhel8/
# step3、向httpd服务的共享目录下放置kickstart响应文件rhel8.ks;并修改配置
[root@linuxprobe html]# cp ~/anaconda-ks.cfg rhel8.ks
[root@linuxprobe html]# vim rhle8.ks
# 修改内容如下:
#version=RHEL8
ignoredisk --only-use=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel
# Use graphical install
#graphical
text
repo --name="AppStream" --baseurl=http://192.168.50.228/rhel8/AppStream
# Use HTTP SERVER installation media
url --url=http://192.168.50.228/rhel8/BaseOS
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=ens160 --onboot=on --ipv6=auto --activate
network --hostname=redhat.com
# Root password
rootpw --iscrypted $6$z1KOHiwhfiqfiSvR$AHzRkayszpNknUI6rIX.kkybgc3ik6FH89jmNaPUybgqUkQyV3pmfkGbfQ7foXT8SMNwO9YEMnsa.RsQx8vVv/
# X Window System configuration information
xconfig --startxonboot
# Run the Setup Agent on first boot
firstboot --disable
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
user --name=linuxprboe --password=$6$Tx8evCFyqElPOcXn$kNCG58vUBVH/BUQwCp6Fj.urwhZcB.lIawYqQChkmdv26p1YIb6yH9hnTJFmkT5FqnKfTEBF9IufmGletGrA10 --iscrypted
reboot
%packages
@core
vim
net-tools
%end
%addon com_redhat_kdump --disable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
[root@linuxprobe html]# chmod 644 rhel8.ks # 给rhel8.ks可读权限