Linux中使用无人值守安装脚本的一些注意事项及PXE环境搭建


前言

在企业中安装多台操作系统时面临的问题:
当安装 Linux 操作系统时,安装过程会需要回答很多关于设定的问题。这些问题必须手动选择,否则无法进行安装,当只安装 1 台 Linux 系统,手动选择设定工作量比较轻松。当安装多台 Linux,这些设定需要重复多次,这些重复动作是效率底下的操作
解决办法:
用文件来记录所有安装过程中问题的答案,并让所有需要安装的主机自动读取。以上解决方案中记录系统安装过程中所有问题答案的文件叫 kickstart 脚本

一、kickstart 自动安装脚本制作之前的准备工作

我们选择一台虚拟机,在其中制作kickstart脚本,实验之前我们需要保证:

1 虚拟机火墙,selinux 关闭
2 真机httpd 服务开启
3 配置软件仓库能正常工作

需要注意的是,我们在虚拟机中操作时,如果也选择将镜像挂载到本地,然后搭建本地仓库,再下载所需要的资源时,这种方式费时费力,并且对系统的资源会有一个极大的兄消耗,因此我们选择在真机中搭建好网络共享环境,这样我们在虚拟机中就可以直接访问共享资源,极大的提高了效率。当然,这样共享的前提是虚拟机和真机必须在同一局域网内,即二者ip必须是同一网段的。

二、具体步骤

1、用模板自作 kickstart

在已经装好的系统中,/root/anaconda-ks.cfg 就是安装当前系统时回答的所有问题的答案生成的 kickstart,此文件为 kickstart 模板。

cp /root/anaconda-ks.cfg /var/www/html/westos.cfg
vim /var/www/html/westos.cfg
此文件中需要对下面部分进行修改:
#version=RHEL8
ignoredisk --only-use=sda    ##只是用我们系统中的第一快硬盘
# Partition clearing information
clearpart --all --initlabel --drives=sda   ##把 sda 硬盘的所有内容删掉
# Use graphical install
#graphical ##安装过程开启图形
text    ##安装过程不开图形(推荐)
repo --name="AppStream" --baseurl=http://xx.xx.xx.x/xx/xx  ##软件安装
资源
# Use netsource installation media
url --url="http://xx.xx.xx.x/xxx"   ##系统安装资源
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us' ##键盘布局为美式键盘
# System language
lang en_US.UTF-8 --addsupport=zh_CN.UTF-8 ##系统支持的语言
# Network information
network --bootproto=dhcp --device=ens160 --onboot=on --ipv6=auto --no-activate ##网卡设定
network --hostname=localhost.localdomain ##主机名设定
# Root password
rootpw --plaintext westos
authselect --enableshadow --passalgo=sha512 ##系统默认开启的加密认证方式
# X Window System configuration information
#xconfig --startxonboot ##安装完成后开机启动图形
skipx   ##安装完成后开机不启动图形(推荐)
# Run the Setup Agent on first boot
firstboot --disable ##首次启动初始化禁止
# System services
services --disabled="chronyd,firewalld" --enabled="sshd" ##在开机时开启或关闭的服务
# System timezone
timezone Asia/Shanghai --isUtc --nontp ##系统时区,启用utc计时方式,不其同ntp时间同步
#user --name=westos --
password=$6$W8HmY8FoDLmjcv65$Xo.SIxQ4rAWK19QBUvXP1et1us191K5w6GlIZvyEMaKx1FBK
6EFTiwHC0X5DiktBfJzRsCyxDlmVemkSWfHlx1 --iscrypted --gecos="westos"
# Disk partitioning information
part / --fstype="xfs" --ondisk=sda --grow --size=1 ##让/分区使用全部空闲磁盘空间
part /boot --fstype="xfs" --ondisk=sda --size=200 ##/boot 分区大小为 200M
part swap --fstype="swap" --ondisk=sda --size=500 ##swap 分区大小为 500M
%packages
@base ##安装软件组 base
httpd ##安装单个软件 httpd
%end
#%pre ##系统安装前自动执行的脚本
#%end
%post ##系统安装后自动执行的脚本(非必要)
cat >> /etc/yum.repos.d/westos.repo <<EOF
[AppStream]
name=AppStream
baseurl=http://172.25.254.20/westos_8/AppStream
gpgcheck=0
[BaseOS]
name=BaseOS
baseurl=http://172.25.254.20/westos_8/BaseOS
gpgcheck=0
EOF
%end
ksvalidator /var/www/html/westos.cfg    ##检测westos.cfg语法
chmod 644 /var/www/html/westos.cfg     #赋予该文件必要权限

2、搭建 dhcpd 服务器

目的:让被安装的主机可以获得 ip 来访问网络资源及 kickstart 文件
整体搭建步骤:下载dhcpd服务,修改配置文件,启动该服务

3、测试

方法一:在已有虚拟机的关闭模式下添加光盘,将光盘启动设置为第一启动项,应用,启动,之后在系统安装界面选择:

Install Red Hat Enterprise Linux 8.0.0    <---- <TAB>键
ks=http://172.25.254.20/westos.cfg       <----<ENTER>键
查看效果
关闭虚拟机,选择硬盘为第一启动项,启动,会看到进入非图形界面,试验成功!

方法二:新建虚拟机时选择网络方式创建,选择安装源及自己编写的cfg文件路径,安装,查看效果,进入非图形界面,试验成功!

三、PXE环境搭建

PXE介绍:预启动执行环境(Preboot eXecution Environment,PXE)也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。
步骤
在这里插入图片描述
注意:其中挂载镜像为非必要步骤,可以将真机中该部分的文件复制到虚拟机中,还有在虚拟机中要开启dhcp服务,具体操作在上篇文章中已讲过。
验证方法:在已经装好的虚拟机的关闭模式下选择网卡为第一启动项,启动虚拟机,能够正常进入到无图形模式,试验成功!

四、具体操作

kickstart 自动安装脚本编写过程:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
验证:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
编写dhcp配置文件:
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/nk298120/article/details/109605942