Kickstart自动安装脚本
1 为什么要使用Kickstart?
安装linux操作系统时,每次安装都需要手动的选择很多关于设定的问题,当对多台主机安装linux操作系统时,需要重复的选择,任务量比较大。为了解决这个问题,我们可以在文件中所有记录安装过程中的答案,并让所有需要安装的主机自动的读取,而用来记录安装过程中问题答案的文件叫kickstart
2 实验环境
- 主机名称:westos
- ip:172.25.254.44
- 关闭防火墙,selinux
systemctl stop firewalld
systemctl stop firewalld
- 开启httpd服务
- 配置软件仓库能正常工作
3 kickstart自动安装脚本的制作
在rhel8中取消了图形的工具,并添加到rhn网络中,在rhel8中如果无法通过rhn网络制作kickstart,可以通过模板的方式生成
3.1 通过模板生成kickstart文件
在已经安装好的rhel8中,/root/anaconda-ks.cfg时安装当前系统时回答所有问题的答案,也就是kickstart模板
3.2 操作步骤
(1)共享资源:开启httpd systemctl start httpd
- 挂载镜像
- 共享资源成功
在安装操作系统时,每个要安装操作系统的主机都使用镜像,那么每安装一个操作系统就需要加载一个镜像,这样会浪费存储。如果利用网络来共享镜像中的资源,让安装系统的主机能通过网络访问被共享的资源,这样就可以解决多台主机需要多个镜像安装的问题
- 编辑westos.cfg文件
生成密码:westos
openssl passwd -6
(2)搭建dhcpd服务器
让被安装的主机可以获得ip来访问网络资源及kickstart文件
修改westos.cfg文件的权限: chmod 644 westos.cfg
- 安装pykickstart
- 查看pykickstart的配置文件
- 检测westos.cfg的语法错误:
ksvalidator westos.cfg
- 手动选择虚拟机的配置
3 测试
进入系统安装界面后选中: Install Red Hat Enterprise Linux 8.0.0按键:输入ks=http://172.25.254.44/westos.cfg
, 然后按键
等待虚拟机安装完成即可
4 全自动化安装虚拟机
#!/bin/bash
virt-install \
--name $* \
--memory 2048 \
--vcpus 1 \
--disk /var/lib/libvirt/images/$*.qcow2,size=8,bus=virtio \
--network bridge=br0,model=virtio \
--location http://172.25.254.44/westos \
--extra-args "ks=http://172.25.254.44/westos.cfg"