kickstart实现全自动安装虚拟机
概述:
Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。
如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,
如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中
可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件, 然后就去忙自己的事情。等安装完毕,
安装程序会根据ks.cfg中的设置重启系统,并结束安装。全自动安装一般用于解决批量安装虚拟机
实现前提:找一个与真机版本(7.2)相同的虚拟机做此实验,并且真机yum源和yum源的共享已经搭建完成
配置虚拟机:
(1)检查实验环境
##查看虚拟机的版本
[root@localhost ~]# hostnamectl
##检测虚拟机是否可以安装软件
[root@localhost ~]# yum clean all
[root@localhost ~]# yum repolist
(2).安装apache并开启服务
[root@localhost ~]# yum install -y httpd
[ro[root@localhost ~]# systemctl start httpd
[ro[root@localhost ~]# systemctl enable httpd
(3).关闭防火墙
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewall
(4).安装kickstart
[root@localhost ~]# yum install -y system-config-kickstart.noarch
(5). 打开设置问题答案界面,并设定虚拟机的安装信息
[root@localhost ~]# system-config-kickstart
[root@localhost ~]# cd /var/www/html
##生成了ks.cfg文件
[root@localhost html]# ls
ks.cfg
(6)更改时区,选择安装包(手动设置图形界面无法选择安装虚拟机的必要信息)
[root@localhost html]# vim ks.cfg
#####################
10 timezone Asia/Shanghai #设定时区
50 %packages #添加安装包信息
51 @base #基本的系统套件;以@开头的表示软件组
52 lftp #单个lftp软件
53 %end
##检测语法,但不能检测合理性
[root@localhost html]# ksvalidator ks.cfg
测试:
在真机中输入172.25.254.134/ks.cfg
配置真机:
(1).搭建dhcp服务;因为kickstart自动安装虚拟机设定的获取ip的方式为DHCP
[root@foundation34 dhclient.d]# cd /etc/dhcp
[root@foundation34 dhcp]# ls
dhclient.d dhcpd6.conf dhcpd.conf
[root@foundation34 dhcp]# cp /usr/share/doc/dhcp*/dhcpd.conf.example dhcpd.conf
cp: overwrite ‘dhcpd.conf’? y
[root@foundation34 dhcp]# vim dhcpd.conf
[root@foundation34 dhcp]# systemctl start dhcpd
(2).编写脚本
[root@foundation34 ~]# cd /mnt
[root@foundation66 mnt]# vim vm_create.sh
#####################
#!/bin/bash
virt-install \
--name $1 \ #虚拟机名字
--ram=1024 \ #内存
--vcpus=1 \ #cpu个数
--disk /var/lib/libvirt/images/$1.qcow2,size=9,bus=virtio \ #硬盘信息
--network source=br0,model=virtio \ #网络设定
--location http://172.25.254.66/source7.2 \ ##安装源
--extra-args "ks=http://172.25.25.134/ks.cfg" &>/dev/null & ##kickstart自动安装脚本
测试:
#执行脚本
[root@foundation66 mnt]# chmod +x vm_create.sh
[root@foundation66 mnt]# sh vm_create.sh nodes
此过程较慢需耐心等待..........
排错:
1.如果安装虚拟机的黑色界面出不来,说明是脚本写的有问题
2.如果安装虚拟机的黑色界面出来了但并没有完成安装,说明可能是yum源指向或者是dhcp服务搭建的有问题