一、kickstart自动安装脚本制作
此实验中,使用Rhel7.9,并开启图形化系统
1.设置实验环境
1.使用Rhel7.9
2.需要打开图形化系统
[root@pxe ~]# hostnamectl # 查看当前系统是否为图形化
Static hostname: pxe
Icon name: computer-vm
Chassis: vm
Machine ID: 8d41e45d0484463ab5cc573fe257c740
Boot ID: 0b58de8f3bea437b87c2513711a788b1
Virtualization: vmware
Operating System: Red Hat Enterprise Linux Server 7.9 (Maipo)
CPE OS Name: cpe:/o:redhat:enterprise_linux:7.9:GA:server
Kernel: Linux 3.10.0-1160.el7.x86_64
Architecture: x86-64
[root@pxe ~]# init 5 # 若系统中存在图形化界面,可使用此命令切换到运行级别5,进入到多用户模式并启动图形用户界面
在系统中的运行级别如下:
0:关机
1:单用户模式(用于系统维护)
2:多用户模式,不带网络(不常用)
3:多用户模式,带网络(常用于服务器)
4:用户自定义(不常用)
5:多用户模式,带网络和图形界面(GUI)
6:重启
#若系统中不存在图形化界面,则需要进行下载
[root@pxe ~]# yum groups list # 列出所有可用的软件包组,找到图形化软件包组进行下载
Available Environment Groups:
. . .
Server with GUI -- 图形化软件包组
[root@pxe ~]# yum install group "Server with GUI" -y # 下载图形化软件包组
[root@pxe ~]# systemctl set-default graphical.target # 指定开机进入到多用户图形化界面
[root@pxe ~]# reboot # 重启系统
3.配置网络可用
[root@pxe ~]# cd /etc/sysconfig/network-scripts/ # 进入主机网卡配置目录
[root@pxe network-scripts]# vim ifcfg-eth0 # 配置IP
[root@pxe network-scripts]# cat ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.254.101
NETMASK1=255.255.255.0
DNS1=114.114.114.114
GATEWAY1=172.25.254.2
NAME=eth0
4.关闭VMware dhcp功能
2.查看系统在安装过程中的所有设定
[root@pxe ~]# cat /root/anaconda-ks.cfg # 此系统文件是在系统安装好后自动生效的,这个文件记录了系统在安装过程中的所有设定
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512 -- 系统用户加密的算法
# Use CDROM installation media
cdrom -- 安装系统时的安装源(相当于光驱)
# Use graphical install
graphical -- 安装过程时的图形化界面
# Run the Setup Agent on first boot
firstboot --enable -- 在系统安装完成时,需要系统进行首次设定
# Keyboard layouts -- 键盘选择
keyboard --vckeymap=cn --xlayouts='cn'
# System language -- 系统支持语言
lang zh_CN.UTF-8
# Network information -- 网络
network --bootproto=dhcp --device=ens33 --ipv6=auto --activate
network --hostname=localhost.localdomain
repo --name="Server-ResilientStorage" baseurl=file:///run/install/repo/addons/ResilientStorage -- repo在安装软件读取软件包的路径
# Root password -- 超级用户root密码
rootpw --iscrypted $6$KEh23FJG924g0Yn4$k9RVbmqAw6vzbSF5GJyhnN9eDSzwABXD5CQXqqooigNO8XK0XQ7p4eRlR3mmG2gacS3gPxF4qqo8skah/AqEs1
# System services -- 系统在安装过程需要开启哪些服务
services --enabled="chronyd"
# System timezone --
timezone Asia/Shanghai --isUtc
user --name=haha --password=$6$HYfZRCtQNCFwYrLL$eILzEcxQ477p.leATJzlOQ6keD0OdAhA6rbzstEAzOFcWUVxyu1nEizLY9ylHt.UFtHGxKyc2Q9seuorfKJvh/ --iscrypted --gecos="HaHa" -- 创建的普通用户
# X Window System configuration information
xconfig --startxonboot -- 在安装好系统后是否启动图形
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda -- 引导方式
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel -- 清理磁盘,注释磁盘化标签
%packages -- 安装包
@^graphical-server-environment -- ^尖括号表示大写 @ 表示软件包组 若没有则为软件包
@backup-server
@base
ftp-server
%end
%addon com_redhat_kdump --enable --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
3.kickstart自动安装脚本
安装kickstart
[root@pxe ~]# yum install system-config-kickstart -y # 安装kickstart
[root@pxe ~]# system-config-kickstart # 启动图形化制作工具
按照此过程进行操作
1.Basic Configuuration – 基本配置
2.Installation Method – 安装方法
测试网络引导
[root@pxe ~]# ln -s /rhel7/ /var/www/html/ # 创建软链接到httpd的网页发布目录;注-此处的/rhel7 为主机的挂载点,
[root@pxe ~]# ls /var/www/html/
rhel7
[root@pxe ~]# systemctl stop firewalld # 关闭防火墙
[root@pxe ~]# setenforce 0 # 设置seLinux为宽容模式
网页测试
3.Boot Loader Options – 引导装载程序选项
4.Partition Information – 分区信息
选择/ xfs 时需要选择Fill all unused space on disk(使用磁盘上全部未用空间)
其它分区按照下图来操作即可
5.Network Configuration – 网络配置
6.Authentication – 验证
7.Firewall Configuration – 防火墙配置
8.Display Configuration – 显示配置
9.Package Selection – 软件包选择
10.Pre-Installation Script – 预安装脚本
11.Post-Installation Script – 安装后脚本
12.选择保存
13.添加软件包选择
[root@pxe ~]# vim ks.cfg # 配置脚本文件,添加软件包选择
42 %packages
43 @base
44 httpd
45 %end
[root@pxe ~]# ksvalidator ks.cfg # 检测配置脚本文件中是否有语法错误
[root@pxe ~]# cp /root/ks.cfg /var/www/html/ # 将脚本文件添加到httpd的网页发布目录,进行共享
测试
1.测试脚本文件是否可共享
由此看出,自动化脚本文件可进行共享,因此当他人进行系统安装时,可通过给访问此网络地址进行网络镜像安装
2.使用VMware建立新的虚拟机进行测试
通过在系统安装界面可以看到有三个选项,此时按住键盘的Tab键进行输入访问前面所做的ks.cfg安装引导文件,输入完成后点击Ent键进行安装
ks=http://172.25.254.101/ks.cfg
进入系统安装界面后,此时还不能进行安装,需要在服务器端进行dhcp软件包的下载进行配置后才能进行访问此服务通过ks.cfgi通过网络的方式进行系统安装
二、搭建dhcp服务并测试kickstart脚本
1.安装配置DHCP
[root@pxe ~]# yum search dhcp # 查找dhcp安装包
[root@pxe ~]# yum install dhcp.x86_64 -y # 安装dhcp服务器为其他服务器提供分配ip的功能
[root@pxe ~]# rpm -qc dhcp # 查找DHCP的主配置文件
/etc/dhcp/dhcpd.conf
. . .
[root@pxe ~]# cat /etc/dhcp/dhcpd.conf # 但此时查看配置文件时,里面为空,可根据里面提供的帮助进行添加
[root@pxe ~]# \cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf # 根据配置文件帮助的提供,将模板文件复制到该配置文件下,生成配置文件,但在此需要加\ 为\cp(告诉系统执行的时真实命令)
[root@pxe ~]# vim /etc/dhcp/dhcpd.conf # 编辑dhcp配置文件,因为此配置是从模板复制过来的,在这个实验中不需要用到所有文件,因此需要将37行后面删掉。
7 option domain-name "HaHa.org"; -- 公司域名(此时为主机域名)
8 option domain-name-servers 114.114.114.114; -- dhcp工作模式的网络主机获得的DNS的地址(对外分发的DNS地址)
-- 将27,28行注释
27 #subnet 10.152.187.0 netmask 255.255.255.0 {
28 #}
32 subnet 172.25.254.0 netmask 255.255.255.0 { -- IP网段和子网掩码
33 range 172.25.254.30 172.25.254.40; -- 地址池(分发IP范围)
34 option routers 172.25.254.2; -- 网关
35 }
[root@pxe ~]# systemctl enable --now dhcpd # 在系统启动时启用并立即启动dhcp
# 若想知道主机中获得的IP是不是服务机通过dhcp下发的IP可使用以下命令查看,查看内容时,当ip和客户端的子网掩码相对应,就是服务机通过dhcp下发的
[root@pxe ~]# cat /var/lib/dhcpd/dhcpd.leases # 记录 DHCP 服务器分配的 IP 地址及其租约信息文件
2.测试kickstart脚本
1)、创建新的虚拟机
2)、开机进入界面,按住键盘的Tab键进行输入访问前面所做的ks.cfg安装引导文件,输入完成后点击Ent键进行安装
显示在调用kickstart
等待安装过程…
安装完成,kicktart脚本测试成功