前言:
在前面我们学会了用镜像和快照创建虚拟机,它们有一个共同特点是都是要手动安装,在安装过程中要人为的做出一定的选择,那么我们是否可以实现自动安装虚拟机呢,其实是可以的,那么如何做到呢,当然是脚本啦。
我们可以将我们在手动安装虚拟机的中的所有选择项写入脚本,然后在安装虚拟机时让真机调用这个脚本执行,这样就可以实现自动安装虚拟机了,具体做法是怎样呢?让下面我们进入自动安装虚拟机之旅。
在应答主机上的操作,即我们设定的虚拟机上:
(1)为了能够自动安装,我们要先在应答主机上安装kickstart;(注意:httpd服务已经安装,这里不再安装)
使用kickstart,系统管理员可以创建一个包含安装期间所有常见问题的答案的文件,以可以直接安装虚拟机。
软件包 system-config-kickstart
安装 yum install syatem-config-kickstart
(2)在终端输入system-config-kickstart 打开虚拟机安装选择界面,进行配置以保证虚拟机可以自动安装。
############(1) BasicConfiguration 设置高级用户密码、并且后面两个选中;
######(2)installation Method ---设置http服务的地址及挂载镜像的共享目录,
######(3)Boot Loader Options下type栏选择install new boot loader
######(4)Partition information 选择每个选项中的第一个,并add添加分区:只有swap在Filesystemtype下,其他分区都在mountpoint下;
手动添加分区步骤相对简单,和之前手动操作分区的大小一样,即/boot--->200,swap--->500,/--->剩余所有空间 。
这里就不一一粘贴图片了,没意义还浪费空间。
#####(5)network下添加动态网络,设置network device为eth0
######(6)Authentication设置不变,选择默认状态
#######(7)关闭防火墙
######(8)后面的都默认即可,然后将生成的ks.cfg文件保存到路径/var/www/html,然后关闭界面;
(3) vim /var/www/html/ks.cfg ----在生成的ks.cfg文件中再添加内容;
####################################################
%packages #
@base 组的安装包 #
lftp 单个安装包 #
%end #
######################################################
(4)使用命令ksvalidator ks.cfg查看生成文件是否有语法错误,无输出则表示正确。
(5)给文件可执行权限 ------chmod +x /var/www/html/ks.cfg
(6)打开共享服务,关闭火墙后, 在真机浏览器中输入http://应答主机ip/ks.cfg,看是否共享成功;
在真机上的操作:
(1)vim vm_creat.sh --------切换到高级用户并编写脚本
###########################################################
#!/bin/bash #virt-install \ #
--ram 1024 \ #
--cpus 1 \ #
--disk/var/lib/libvirt/images/$1.qcow2,size=9,bus=virtio \ #
--name $1 \ #
--network source=br0,model=virtio\ #
--location http://172.25.254.10/rhel7.2\ #
--extra-args"ks=http://172.25.254.100/ks.cfg" & #
###########################################################
注意:
和之前的不同是最后加上--extra-args "ks=http://172.25.254.100/ks.cfg" 这一行,表示虚拟机自动配置的文件。
(2)给脚本可执行权限; --chmod +x /mnt/vm_creat.sh
(3) 执行此脚本/mnt/vm_creat.sh newvmname -------即可自动安装虚拟机
(4)如果出现此界面,表示可以成功自动安装;
注意:如果在自动安装过程中出现错误,首先看脚本编写是否出现正确,其次看应答主机中ks.cfg是否编写正确,最后检查共享是否成功开启。