Liunx中的无人职守安装脚本kickstart
1.kickstart自动安装脚本的作用
在企业安装多台操作系统时,面临的问题是,当安装Linux操作系统时,安装过程需要回答许多有关设定的问题,这些问题必须手动选择,否则无法安装,当只安装1台liunx系统,手动选择设定工作量比较轻松,当安装多台liunx,这些设定需要重复多次,这些重复设定效率低下,如何解决上述问题? 用文件来记录所有安装过程中需要回答的问题,并让所有需要重复多次安装的主机自动读取,以上解决方案中记录系统安装过程中所有问题答案的文件叫kickstart脚本。
2.实验环境的搭建
(1)配置主机node1的IP为172.25.254.20
火墙关闭:systemctl disable --now firewalld
selinux关闭 用setenforce 0 可临时解决问题
开启httpd资源共享服务,需安装httpd服务,
dnf install httpd
systenctl enable --now httpd
操作如下
(2)编写yum文件
首先创建目录 /var/www/html/westos_8
然后挂载文件 mount /dev/cdrom /var/www/html/westos_8
编写/etc/yum.repos.d/westos.repo 将其中的baseurl改写为http://172.25.254.20/var/www/html/westos_8/
操作如下:
上述实验环境的搭建,是为了资源共享,在安装操作系统时,每个被安装的操作系统都要有安装资源,如果使用镜像安装,每个安装的系统都要加载一个镜像,这样会浪费存储,通过网络来共享资源,让安装系统的主机能通过网络访问的方式被共享的资源,这样就可以解决多台主机需要多个镜像安装的问题。
3.kickstart自动安装脚本的制作
在rhel7中提供自动安装脚本的制作,在rhel8中已经把图形的工具取消,并添加到rhn网络中,在rhel8中如果无法用rhn网络制作kickstart,那么可以使用模版生成
(1)通过模版生成kickstart文件
在已经安装的rhel8系统中 /root/anaconda-ks.cf就是安装当前系统时回答的所有问题的答案,生成的kickstart文件为kickstart模版。
(2)将 /root/anaconda-ks.cf文件复制到/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://172.25.254.20/westos_8/AppStream ##软件安装资源
# Use netsource installation media
url --url="http://172.25.254.20/ westos_8" ##系统安装资源
# 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 --noactivate ##网卡设定
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.SIxQ4rAWK19QBUvXP1et1us191K5w6GlIZvyEMaKx1FBK6EFTiwHC0X5DiktBfJzRsC --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
修改好文件之后 需要检测文件的语法 此时要安装 dnf install pykickstart.noarch
然后通过 kisvalidator /var/www/html/westos.cfg 检验是否有语法错误。
4.根据修改的文件 重新创建新的虚拟机 运行kickrestart脚本
安装过程简单。需要实验操作。
测试:
(1)需要配置好DHCP服务,配置操作流程前面内容有体现,让被安装的主机可以获得ip来访问网络资源及kickstart文件
(2)在配置好系统硬件后,开启虚拟机,进入安装界面,按TAB键,然后输入ks=http://172.25.254.20/westos.cfg
(3)点击enter 直接进入自动化安装界面
5.在虚拟机中用运行kickrestart脚本安装虚拟机
(1)虚拟机中的虚拟化工具
kvm的安装条件条件:inter cpu vmx; amd cpu svm 两者中有一个即可 用命令 cat /proc/cpuinfo 可查看信息
(2)kvm虚拟化安装: 安装3个插件 : dnf group install “Virtualization Client” -y dnf group install “Virtualization Tools” -y
dnf group install “Virtualization Hypervisor” -y
注意开机前要将下面3个选项打开
(3)KVM虚拟化相关信息
服务名称:libvirtd
虚拟化内核:qemu
(4)在虚拟机中用运行kickrestart脚本安装虚拟机
a) 在虚拟机中打开工具
b)点击新建虚拟机
c)选择kickstart脚本文件安装
注意:安装前先检测挂载情况 DHCP服务开启情况,需要将 /var/www/html/westos.cfg 文件中的sda改成vda
d)开始安装
点击进入之后,有几种模式可选,当选择NAT模式时安装会出问题,需要设置网桥模式(br0)
两种模式的原理图:
NAT模式
br0模式
首先运用bridge link list 查看有没有br0,建立br0过程如下:
编写两个文件
重启服务: nmcli connection reload 下面情况表示网桥建立成功
进入安装环境
给定内存至少2个G
选择配置好的br0
点击完成后进入系统安装,运行KICKstart脚本 自动安装。
安装好的界面如下图: