Linux 中kickstart自动安装脚本
1.kickstart自动安装脚本的作用
#在企业中安装多台操作系统时面临的问题#
当安装Linux操作系统时,安装过程会需要回答很多关于设定的问题
这些问题必须手动选择,否则无法进行安装
当只安装1台Linux系统,手动选择设定工作量比较轻松
当安装多台Linux,这些设定需要重复多次,这些重复动作是效率底下的操作
#如何解决以上问题?#
用文件来记录所有安装过程中问题的答案,并让所有需要安装的主机自动读取
#kickstart作用#
以上解决方案中记录系统安装过程中所有问题答案的文件叫kickstart脚本
2.实验环境
1.主机名称 founation 66
2.ip 192.168.3.14
3.火墙,selinux关闭
4.httpd服务开启
5.配置软件仓库能正常工作
3.kickstart自动安装脚本的制作
在rhel7系统中提供图形的kickstart制作方式
在rhel8中已经把图形的工具取消,并添加到rhn网络中
在rhel8中如果无法通过rhn网络制作kickstart,可以使用模板生成
#通过模板生成kickstart文件#
在已经装好的rhel8中,/root/anaconda-ks.cfg 就是安装当前系统时回答的所有问题的答案
生成的kickstart,此文件为kickstart模板 将此文件复制到http服务的默认发布目录,实现资源共享。
编写运行脚本,执行
3.1配置yum仓库,安装http服务。安装dhcp服务,开启这两个服务,关掉selinux,关闭火墙,
vim /etc/selinux/config 改selinux=disabled reboot
关闭火墙
3.2修改答案文件,将其拷贝到http服务的默认发布目录下,让其可以共享,发布文件
,
答案文件 先修改答案文件 anaconda-ks.cfg
[root@localhost html]# cp /root/anaconda-ks.cfg .
chmod 644 /var/www/html 修改权限 可以直接设置为777,
chmod 644 /var/www/html/anaconda-ks.cfg
[root@localhost html]# cat anaconda-ks.cfg
#version=RHEL8
ignoredisk --only-use=vda #系统的第一块磁盘
# Partition clearing information
clearpart --all --initlabel --drives=vda #把sda硬盘中的所有内容删掉
# Use graphical install
#graphical #安装过程开启图形
text #安装过程不开图形
# 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=enp0s25 --onboot=on --ipv6=auto --no-activate
network --hostname=westos-linux.westos.org
repo --name="AppStream" --baseurl=http://192.168.3.14/rhel8.0/AppStream #软件资源安装 查看所配置的yum仓库
# Use network installation
url --url="http://192.168.3.14/rhel8.0" #系统安装资源
# Root password
rootpw --plaintext westos 系统默认开启加密认证方式
# X Window System configuration information
xconfig --startxonboot
# Run the Setup Agent on first boot
firstboot --enable
# System services
services --disabled="chronyd" --enabled="sshd" 默认开启和不开启的服务
# System timezone
timezone Asia/Shanghai --isUtc 时区
# Disk partitioning information 磁盘分区
part / --fstype="xfs" --ondisk=vda --size=1 --grow
part /boot --fstype="xfs" --ondisk=vda --size=300
part swap --fstype="swap" --ondisk=vda --size=500
%packages
@^graphical-server-environment
@virtualization-client
@virtualization-hypervisor
@virtualization-tools
%end
%addon com_redhat_kdump --disable --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
%packages
@base
lftp
%end
%post
touch /mnt/file{1..10}
%end
3.3 检测 文件是否发布成功== 在网页中 192.168.3.14/anaconda-ks.cfg 看是否能看到资源 能则成功 测试
4.编写打开虚拟机的脚本,运行脚本,看是否能进行自动安装。
[root@localhost html]# cat virt-install.sh
#!/bin/bash
virt-install \
--name $1 \
--memory 2000 \
--disk /var/lib/libvirt/images/$1.qcow2,size=8,bus=virtio \
--os-variant rhel8.1\
--location http://192.168.3.14/rhel8.0 \ 镜像挂载路径
--vcpus 1 \
--network bridge=br0,model.type=virtio \
--extra-args "ks=http://192.168.3.14/anaconda-ks.cfg" & 答案文件
/var/www/html就是dhcp的默认发布目录,在http协议中 =/
[root@localhost html]# sh virt-install.sh 0 创建名字为0的虚拟机
查看结果,如果虚拟机成功创建,且自动回答安装时的问题,则表示实验成功