虚拟机的安装| 自动应答文件 kickstart | 修改自动应当文件 ks.cfg | 批量自动安装虚拟机

时间:2024-03-25 10:20:09

一,生成自动应答文件

   由于安装虚拟机的过程中我们使用到了自动应答文件,而这个文件本身写起来比较复杂,所以我们在已有的虚拟机里面生成一个文件,然后在上面做修改。

1,虚拟机里面安装httpd,system-config-kickstart,启用httpd,关闭防火墙

[[email protected] ~]# yum install httpd

[[email protected] ~]# systemctl start httpd
[[email protected] ~]# systemctl enable httpd

[[email protected] ~]# yum install system-config-kickstart
[[email protected] ~]# systemctl stop firewalld.service
[[email protected] ~]# systemctl disable firewalld.service

2,虚拟机执行system-config-kickstart生成应答脚本

##在真机系统中存在这样一个文件 anaconda-ks.cfg,这个东西就是一个应答文件,这个文件中记录着装机过程中要做的应答##

虚拟机的安装| 自动应答文件 kickstart | 修改自动应当文件 ks.cfg | 批量自动安装虚拟机

##encrypt root password是在应答文件中不以明文显示

##perform installtion     图形还是纯文本安装界面

虚拟机的安装| 自动应答文件 kickstart | 修改自动应当文件 ks.cfg | 批量自动安装虚拟机

##HTTP Server 这里我们选用真机共享yum源的方式进行安装

##HTTP Directory 这里是镜像挂载点的目录source7.0是在/var/www/html下面的,注意这个挂载点就是可以作为镜像使用的

虚拟机的安装| 自动应答文件 kickstart | 修改自动应当文件 ks.cfg | 批量自动安装虚拟机

虚拟机的安装| 自动应答文件 kickstart | 修改自动应当文件 ks.cfg | 批量自动安装虚拟机

##点击add添加分区

##Mount Point 选择/boot        Fixed size 输入200        OK

##点击add添加分区

##File System Type选择swap        Fixed size 输入500        OK

##点击add添加分区

##Mount Point 选择/        选择Fill all unused space on disk        OK

虚拟机的安装| 自动应答文件 kickstart | 修改自动应当文件 ks.cfg | 批量自动安装虚拟机

##由应答文件生成的虚拟机是可以再次修改的,所以像这样的项可以大概写一下,安装好之后可以再次修改

虚拟机的安装| 自动应答文件 kickstart | 修改自动应当文件 ks.cfg | 批量自动安装虚拟机

虚拟机的安装| 自动应答文件 kickstart | 修改自动应当文件 ks.cfg | 批量自动安装虚拟机

##防火墙可以关闭

剩下的四项默认

3,ctrl+s保存应答文件为ks.cfg,保存在/var/www/html/

虚拟机的安装| 自动应答文件 kickstart | 修改自动应当文件 ks.cfg | 批量自动安装虚拟机

二,浏览器查看

生成的这个文件放在虚拟机的/var/www/html/,用浏览器查看是否成功

虚拟机的安装| 自动应答文件 kickstart | 修改自动应当文件 ks.cfg | 批量自动安装虚拟机

成功!

三,修改自动应答文件,ksvalidator检查错误

1,

虚拟机的安装| 自动应答文件 kickstart | 修改自动应当文件 ks.cfg | 批量自动安装虚拟机

##在生成ks.cfg图形化过程中由于它本身存在bug所以不能设置安装虚拟机的类型,比如最小化安装就是纯文本系统,或者在安装系统的同时安装软件,这需要在这个文件手动输入

%packages  ##指定软件包

@base  ##安装系统的基本组建,这个类型最终虚拟机是纯文本的
lftp ##安装系统同时安装lftp软件服务

%end

2,检测修改文件的语法错误(注意:这个命令不检查逻辑错误)

[[email protected] ~]# cd /var/www/html/
[[email protected] html]# ls
ks.cfg

[[email protected] html]# ksvalidator ks.cfg

四,真机编写虚拟机全自动安装脚本

虚拟机的安装| 自动应答文件 kickstart | 修改自动应当文件 ks.cfg | 批量自动安装虚拟机

注意:

1,这里的--location http://172.25.254.156/source7.0 就是--cdrom /home/kiosk/Desktop/rhel-server-7.0-x86_64-dvd.iso ,只不过我们把镜像挂载到source7.0下,并用url的方式来写

2,rhel7.0里面network的写法

3,--extra-args "ks=http://172.25.254.100/ks.cfg"就是导入自动应答文件,这个的作用相当于我们手动配置system-config-kickstart的过程,原来脚本这里是--import

4,脚本里面这两个地址存在并且能够使用就行,也就是说这个地址可以是别人的,我们拿来用就好,这样在安装多个虚拟机时,提高了效率,不必自己一个一个手动安装

五,实验与排错

1,调用脚本

[[email protected] Desktop]# chmod +x vm_create.sh

[[email protected] Desktop]# sh vm_create.sh redhat ##创建一个redhat虚拟机

2,如果安装过程中是出现让你选择redhat的版本时卡住了,那么说明前面8行安装程序没问题,后面的自动应答文件写的有问题。

3,当出现这样时,只需要等待就好

虚拟机的安装| 自动应答文件 kickstart | 修改自动应当文件 ks.cfg | 批量自动安装虚拟机

4,

虚拟机的安装| 自动应答文件 kickstart | 修改自动应当文件 ks.cfg | 批量自动安装虚拟机

纯文本安装成功!!!!(如果需要图形化安装,在%package 里面改@的内容)

同时我们可以看到由于修改了自动应答文件,lftp已经安装成功(lftp只是一个例子,也可以安装其他软件)

5,如果确定脚本没有问题,大部分情况是ip冲突的问题,此时要重新配置dhcp池,因为在这个安装过程中我们是选择的动态ip,可能会出现ip冲突的情况,详见dhcp池篇。

六,批量安装虚拟机

这个脚本适合批量自动安装虚拟机,只要其中一台主机上面有镜像,有虚拟机并且能够按上面的步骤生成自动应答文件,网络连通,那么就可以在每台主机上面安装虚拟机。





##########如果ip存在,网络位也相同,但是虚拟机与真机之间网络不连通的解决方法#############

1,virt-manger删除网卡(NIC右健remove),

2,右健重新添加,注意把Device model变成virtio