十四、Linux系统中的无人值守安装脚本kickstart

十四、Linux系统中的无人值守安装脚本kickstart

14.1、kickstart自动安装脚本的作用

企业中安装多台操作系统时面临的问题:
(1)当安装Linux操作系统时,安装过程会需要回答很多关于设定的问题。
(2)这些问题必须手动选择,否则无法进行安装。
(3)当只安装1台Linux系统,手动设定工作量比较轻松
(4)当安装多台Linux,这些设定需要重复多次,严重影响效率。

如何解决?
用文件来记录所有安装过程中问题的答案,并让所有需要安装的主机自动读取。

kickstart作用:
以上解决方案中,记录系统安装过程中遇到所有问题答案的文件叫kickstart脚本

14.2、实验环境

(1)主机名称:fake_node1
(2)ip 192.168.1.4
(3)火墙、selinux关闭
(4)httpd服务开启
(5)配置软件仓库能正常工作

14.3、kickstart自动安装脚本的制作

在rhel7系统中提供图形的kickstart制作方式
在rhel8中已经把图形的工具取消,并添加到rhn网络中
在rhel8中如果无法通过rhn网络制作kickstart,可以使用模板生成

14.3.1、通过模板生成kickstart文件

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

操作步骤:
(1)完成以下设置

dnf install httpd -y
systemctl enable --now httpd
systemctl disable --now firewalld
mkdir /var/www/html/ks
cp /root/anaconda-ks.cfg /var/www/html/ks/fake.cfg
vim /var/www/html/ks/fake.cfg

fake.cfg内容为

#ignoredisk --only-use=sda
# Partition clearing information
clearpart --all --initlabel  #清空系统中硬盘所有分区并清空分区上所有标签
# Use graphical install
#graphical
text                         #安装过程中不开启图形
repo --name="AppStream" --baseurl="http://192.168.1.4/fake/AppStream"  #安装应用时用到的源
# Use CDROM installation media
#cdrom
url --url="http://192.168.1.4/fake"   #指定安装系统安装源
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us' #指定系统所用键盘类型
# System language
lang en_US.UTF-8 --addsupport=zh_CN.UTF-8    #指定系统语言为英文并支持中文系统

# Network information
network  --bootproto=dhcp  --onboot=on       #系统中网卡工作模式为dhcp,并且在开机时启动网卡 
#network  --hostname=localhost.localdomain
# Root password
rootpw --plaintext 000000    #root用户密码为000000,并在kickstart文件中使用明文方式
# 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=fake --password=$6$OTXms0xdOupbAtb/$HuoDnt34BusZTvNToqIdl.yLv8OiB5yIsme0B25FMWLNGS6Eg73FNeiIhyLvH5jx.vNkugcYDnBK7Gen8NXZ3/ --iscrypted --gecos="fake"
# Disk partitioning information
part /boot --fstype="xfs"  --size=500        #设定boot分区大小为500M
part swap --fstype="swap"  --grow --size=1    #设定分区大小为站空所有空余容量  --grow的作用就是站空所有空余容量
part / --fstype="xfs"      --size=500        #swap分区大小为500M

reboot                            #系统安装完成后自动重启

%packages                         #系统中安装软件选择
@^graphical-server-environment    #@加上字符串 表示为组
@base                         
httpd                             #字符串 表示单个软件
%end

%post
touch /mnt/file{1..5}             #系统安装完成后自动执行的命令
%end

(2)使用ksvalidator语法检测工具对编写的fake.cfg文件进行查错

dnf whatprovides */ksvalidator  #找到文件
dnf install pykickstart-3.16.3-2.el8.noarch   #安装
ksvalidator /var/www/html/ks/fake.cfg  #查错

注:语法检测通过进代表语法没问题,不代表文件中的设定一定合理。
(3)通过浏览器访问查看安装源是否可以访问
十四、Linux系统中的无人值守安装脚本kickstart_第1张图片
访问出现错误
(4)执行ls -l /var/www/html/ks/fake.cfg查看文件权限
在这里插入图片描述
默认只能被超级用户读,修改权限

chmod 644 /var/www/html/ks/fake.cfg

(5)在浏览器中访问http://192.168.1.4/ks/fake.cfg发现可以查看
十四、Linux系统中的无人值守安装脚本kickstart_第2张图片
(6)编写虚拟机硬件设定脚本
vim /mnt/fake.sh

#!/bin/bash
virt-install \
        --name $1 \
        --vcpus 1 \
        --memory 1024 \
        --location http://192.168.1.4/fake \
        --disk /var/lib/libvirt/images/$1.qcow2,size=8,bus=virtio \
        --network bridge=br0,model=virtio \
        --extra-args "ks=http://192.168.1.4/ks/fake.cfg"

(7)测试
执行sh fake.sh test

你可能感兴趣的:(Linux基础,linux,运维)