搭建dhcp服务器
首先,我们通过yum命令下载dhcp服务,并搭建dhcp服务。
关于如何搭建dhcp服务此处不再赘述,详情请戳我的博客DNS域名解析及DHCP动态分配网络
然后,开启dhcp服务,关闭防火墙,在一台虚拟机中测试看是否能动态分配到ip。
systemctl start dhcp //开启dhcp
systemctl enable dhcp //设置开机自启
systemctl stop firewalld //关闭防火墙
systemctl mask firewalld //锁住防火墙
分配成功
安装kickstart工具
什么是kickstart,有什么作用?
kickstart自动应答文件,是一种无人值守的安装方式,kickstart的工作原理是通过记录典型的安装过程中所需人工干预写的各种参数,并生成一个名为ks.cfg的文件,在其后的安装过程中(不只局限于生成ks.cfg的机器),当出现要求填写参数的情况,安装程序会首先去查找kickstart生成的文件,当找到合适的参数时,就采用找到的参数;当没有找到合适的参数时,才需要安装或者手工干预。这样,如果kickstart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情,等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
- 首先,我们先安装好system-config-kickstart
- 启动system-config-kickstart,按照下面操作进行设置:
kickstart安装方式,因为是执行一个全新的安装,我将我的安装源挂载到httpd服务下,这个地址要保证可以访问。
下图表示安装一个新的引导
注意分区不要分错了,/boot 200M,swap 500M,剩余的都分给/。
网络配置选择DHCP,网卡设备填eth0
防火墙的两个配置选择disable
虚拟机安装完成后要执行的脚本。
基本配置完成,我们把配置完的信息保存为ks.cfg文件,并放到可以被访问的服务目录下。
再次进入ks.cfg中写入以下内容:
ksvalidator ks.cfg //用于检测自动应答脚本中有没有语法错误,没有语法错误不代表没有其他错误。
注意:此文件跟网络挂载源一样,要求在浏览器中能访问的到。
创建自动安装虚拟机的脚本
cd /mnt
vim vm_create.sh
1 #!/bin/bash
2 virt-install \
3 --name $1 \
4 --ram 1024 \
5 --vcpus 1 \
6 --disk /var/lib/libvirt/images/$1.qcow2,bus=virtio,size=8 \
7 --network bridge=br0,model=virtio \
8 --location http://172.25.254.1/westos/ \
9 --extra-args "ks=http://172.25.254.1/ks.cfg" &> /dev/null &
安装并开启http服务
yum install httpd -y
systemctl start httpd
systemctl enable httpd
执行脚本,检测是否成功
sh vm_create.sh chifan
chifan自动安装成功!
典型错误
下图的错误之处在于磁盘分区分错了,分完/boot和swap,剩余的应全部分给/,在kickstart中应选择Fill all unused space on disk