1.14 Linux中的无人值守安装脚本Kickstart

Linux中的无人值守安装脚本kickstart

  • Kickstart脚本的作用
  • 需要注意的实验环境设置
  • Kickstart自动安装脚本的制作
    • 相较之前版本的变动
    • 通过模板生成kickstart文件

Kickstart脚本的作用

安装系统时初次启动需要设置很多自定义选项,他们会指定系统采用的语言,键盘格式,硬盘分区和附加下载项目等等.这些问题大部分必须进行选择才能继续进行系统安装.当对多台主机/服务器进行Linux系统啊安装时,传统的手动安装方法显然是重复而且低效的,同时还可能出现人工操作问题.Kickstart自动安装脚本就是用来解决这个问题的.
通过用文件记录安装过程中所需要的所有问题的答案,让所有需要安装的主机自动进行读取和设置,以解决批量安装的问题,这就是Kickstart自动安装脚本的实现原理.

需要注意的实验环境设置

  • 能够识别的内网IP
  • 一如既往的临时关闭火墙
  • 服务端需要配置httpd服务
  • 确认服务端的软件仓库能够正常运作

Kickstart自动安装脚本的制作

相较之前版本的变动

本身在RHEL7之前的系统中提供了图形化的生成kickstart的制作方式,但是在RHEL8之后该程序成了收费项目.但我们依旧可以通过使用并修改模板来进行kickstart脚本的制作.

通过模板生成kickstart文件

首先需要提的是,在已经安装好的RHEL系统中本身就已经存在了kickstart脚本.其内容是我们安装系统时所回答的所有问题的答案.
通过比对该文件内容,并参照注释,我们可以自定义生成想要的kickstart文件.换言之,这就是我们的模板.

/root/anaconda-ks.cfg								##模板所在的位置
cp /root/anaconda-ks.cfg /var/www/html/Test.cfg		##复制模板至Apache服务器,方便进行分发
vim /var/www/html/Test.cfg							##编辑模板来进行自定义

以下为对于精简过的模板的展示和注解

# version=RHEL8									##系统标注
# Partition clearing information				##分区信息清理选项
clearpart --none --initlabel					##清理硬盘中所有内容
# Use graphical install							##安装模式选择
# graphical										##这里我们不选择图形化界面而选择命令行
text
# Use CDROM installation media
# cdrom											##指定系统安装源
url --url="http://192.168.50.214/Test"			##我们选择网络源的方式,指定为内网的Apache服务器
# Keyboard layouts								##键盘布局设置
keyboard --vckeymap=us --xlayouts='us'			##设置为美式布局
# System language								##系统语言支持设置
lang en_US.UTF-8 --addsupport=zh_CN.UTF-8		##采用美式英语,UTF-8格式,但同时支持中文简体

# Network information							##网络设置部分
network  --bootproto=dhcp --onboot=on			##网卡设置为DHCP分配,开机时自启动
# network  --hostname=Node2.westos.org			##主机名设置,这里略过
repo --name="AppStream" --baseurl="http://192.168.50.214/Test/AppStream"		##设置软件仓库的源,这里同样选择配置好的内网Apache服务器
# Root password									##Root用户密码设置
rootpw --plaintext Test							##设置为明文密码,后者为密码内容
# X Window System configuration information		##是否在开机时开启图形化界面
# xconfig  --startxonboot						##由于主要用于服务器部署,我们关闭该选项,采用命令行模式
firstboot --disable								##系统安装后自动设定首次启动的所有现象
# System services								##安装完成后服务额外开启的设定
# services --enabled="chronyd"					##原本有额外开启"chronyd"服务,这里取消掉
# System timezone								##系统时区设置
timezone Asia/Shanghai --isUtc --nontp			##设置为上海时区,系统时间与UTC时间同步,不设置NTP时间同步
# Disk partitioning information					##硬盘分区设置
part /boot --fstype="xfs" --size=1024			##设定boot分区所用硬盘为xfs格式,大小1G
part swap --fstype="swap" --size=500			##设置swap分区所用硬盘为swap格式,大小500M
part / --fstype="xfs" --grow --size=1			##设定/目录分区所用硬盘为xfs格式,占用所有剩余硬盘空间
												##--grow参数的含义即为占用所有硬盘容量
reboot											##安装设定完成后自动重启

%packages										##系统中安装软件的选项,从上面的软件仓库中选取安装
@base											##带@的项目为软件组,这里为Base组的所有软件
httpd											##Apache服务器所需要的httpd服务

%end											##结束标示

%post											##系统安装后需要执行的命令,⬅这里留空可不写.

打眼一看,这么长一个配置文件.
还好写错了也有专用的工具进行检查.ksvalidator可以帮我们做到这个功能.但是和往常的检测工具一样,他只会检测语法错误,并不会指出你的设置错误.

dnf whatprovides */ksvalidator					##搜寻含有该命令的包
dnf install pykickstart-3.16.11-1.el8.noarch	##安装指定的包

ksvalidator /var/www/html/Test.cfg				##检测刚刚写好的Test.cfg文件

chmod 0644 /var/www/html/Test.cfg				##保证其权限可读

最后的最后,已经写完了这么一个Kickstart安装脚本,放在这里是不会自动生效的.
需要将其添加到我们上一章写好的创建虚拟机的Shell脚本中保证生效.

	--extra-args "ks=http://192.168.50.214/ks/Test.cfg"		##指定kickstart配置文件

最后再进行创建验证.
1.14 Linux中的无人值守安装脚本Kickstart_第1张图片
1.14 Linux中的无人值守安装脚本Kickstart_第2张图片
图形化的自动安装配置也是可以实现的.
1.14 Linux中的无人值守安装脚本Kickstart_第3张图片

1.14 Linux中的无人值守安装脚本Kickstart_第4张图片
当然,也不一定非要在自动化Shell脚本中直接写入,也可以手动安装时在系统安装基面选择安装选项,如Install Red Hat Enterprise Linux 8.2.0后,手动加入ks参数.

ks=http://192.168.50.214/Test.cfg		##手动加入ks参数

这样在保存并开始运行后也能起到和在Shell脚本中直接添加附加参数同样的作用.

附加内容
在文中示例的自动安装脚本中,预装的软件只有:

%packages										##系统中安装软件的选项,从上面的软件仓库中选取安装
@base											##带@的项目为软件组,这里为Base组的所有软件
httpd											##Apache服务器所需要的httpd服务

因此很显然这台机器安装好后是无法启用图形界面的,如果需要预安装时就配置图形界面,需要额外安装^graphical-server-environment软件组
即如下配置.

%packages										##系统中安装软件的选项,从上面的软件仓库中选取安装
@^graphical-server-environment					##图形化界面软件组
@base											##带@的项目为软件组,这里为Base组的所有软件
httpd											##Apache服务器所需要的httpd服务

你可能感兴趣的:(运维入门,RH124,Linux系统基础操作)