虚拟机自动创建脚本、 虚拟机快照脚本、kickstart工具自动化安装linux虚拟机

一、自动创建虚拟机脚本:

#!/bin/bash
echo "virtual machine is creating ..."
virt-install \
--cdrom  /home/kiosk/iso/rhel-server-7.0-x86_64-dvd.iso  \
--vcpus  1 \
--memory 1000 \
--disk /var/lib/libvirt/images/$1.qcow2,size=10,bus=virtio \
--network source=br0,model=virtio \                                             
--name $1 &>/dev/null  &

1.下面简要说明每行的含义:

第二行代表安装时在shell中输出 “virtual  machine is creating ...”  。

第三行表示镜像文件在系统中的存放路径。

第四行表示给cpu分配的核心数。

第五行表示给内存分配的大小。

第六行表示硬盘采用虚拟化的方式,大小为10.0GB,模拟的硬盘文件以.qcow2形式的文件放在目录 /var/lib/libvirt/images/ 下面。

第七行代表网卡采用虚拟化的方式,虚拟化真机的网卡br0。

第八行代表虚拟机的名字为变量$1,

2.编写玩脚本后,给该文件加上执行权限,chmod   +x    virtual_creat.sh;   接着以直接路径运行该脚本,并在命令末尾加上变量的值; 运行完后结果如下图:

二、自动化创建快照脚本:

#!/bin/bash
echo "virtual machine's snopshot is creating ..."
qemu-img create -f qcow2 \
-b /var/lib/libvirt/images/$1.img \
/var/lib/libvirt/images/$2.qcow2

virt-install \
--vcpus  1 \                                                                    
--memory 1024 \
--disk /var/lib/libvirt/images/$2.qcow2,bus=virtio \
--network source=br0,model=virtio \
--name $2  \
--import

##1.脚本分为两部分:

(1)创建$1虚拟机的快照$2,占据代码块的二、三、四、五行,其实就是下方的一个命令,中间用换行符隔开了而已:

    

 qemu-img    create     -f qcow2       -b    /var/lib/libvirt/images/$1.img     /var/lib/libvirt/images/$2.qcow2

        参数-f 代表 指定的文件类型-b参数意思是 将名为$1.img的虚拟机快照为名为$2.qcow2的虚拟机,这里一定要准确的输入源虚拟机的模拟硬盘文件的文件名!

(2)将该快照导入虚拟机,并为其分配硬件资源。这一步和上一个脚本最大的差别是安装方式不同,上一个脚本是采用导入系统iso镜像的方式;而因为我们脚本的第一步已经创建好硬盘文件,所以脚本第二部分只需要导入我们的快照文件即可,即命令--import;其它都没什么区别。

## 2.整个过程的步骤:

(1)编写快照脚本:


(2). 给快照文件加执行权限:

(3). 以绝对路径执行该脚本,以下为执行脚本前后的对照图:

三、使用kickstart工具自动化安装linux虚拟机

         kickstart是一个定义了Linux安装过程的配置文件的工具,比如要在系统中使用的时区、如何对磁盘进行分区、或者应该安装哪些软件包。有了这个文件可以解放双手,让Linux安装过程按照我们预先定义的要求进行自动化安装,还在同时部署大量主机时十分有用。

        下面我们通过利用kickstart 工具实现自动化部署虚拟机,来体会一下技术进步的魅力:

整个过程我们分为四个大阶段:1.准备实验环境阶段,2.利用kickstart工具制作自动安装系统的配置文件阶段,3.编写整体实现过程的脚本阶段,4.测试结果阶段。

########第一阶段##########

       第一阶段是试验的环境准备阶段,在这一阶段,我们需要做两件事:一是在真机搭建共享yum源,二是下载安装system-config-kickstart 这个软件工具。

      在上一部分的内容中,我们已经搭建好了共享yum源。

      现在我们只需要下载安装好 system-config-kickstart 这个工具就可以开始正式的实验部分。

##########第二阶段##########

      下来我们使用下载好的kickstart工具来制作安装系统的配置文件。

1. 首先我们在shell中输入system-config-kickstart,出现一个图形窗口如下图,在这个窗口中最左面的部分有11个选项,分别代表安装系统所需要的11个大的模块,比如分区模块、网络模块、引导模块等等,在完成配置后,这些配置将会以文件的形式存在,我们可以将其自定义保存到任何路径:

2. 第一个模块为一些基本信息的配置,比如语言、时区、键盘格式等,中间是设置root密码的,按下图配置即可:

3.第二个选项为安装方式,上方的选项选择执行新的安装;下方选择超文本的传输方式,因为我们会将yum源和ks.cfg挂载到http上。

4.第三个模块为boot引导选项,按照下图进行配置。

5.第四个选项为分区模块,先按下图所示选择选项,再选择添加分区/boot    swap    /    。

6.第五个选项为网络配置模块,选择添加网络设备,按如下图配置

7.第六个选项为认证方面的配置,我们遵从默认配置,继续下一步。

8.第七个选项为防火墙模块,两个都选择不开启。

9.第八个选项按下图选择,表示在安装界面显示配置信息。

10.剩下的三个选项先按默认选择,我们这一步将配置好的模块保存在/mnt目录下,点击左上角的file进行保存并选择路径。

11.现在去/mnt目录下看我们配置生成的文件,没错那个ks.cfg文件就是我们生成的文件。

12.大家还记得我们在刚刚配置模块的时候最后三个模块我们没有进行操作吗?最后两个模块倒是不重要,但到数第三个模块得我们自己在文件里头进行配置,如下图在最后几行的配置:

然后用ksvalidator检测该文件有没有语法错误:

13.接下来我们将配置好的文件也共享到网络上,博主把它放在172.25.254.13主机的 /var/www/html/ 目录下,如图:

14.最后一步进行测试,我们在相同网段的主机上访问该文件看是否能够访问。

########第三阶段########

1.第一步我们需要写安装脚本,下面的脚本是博主已经写好的,大家可以参考一下。

#!/bin/bash
echo "linux_virtual-machine is installing ..."                                  
echo "..."
echo ".."

virt-install \
--location http://172.25.254.13/rhel7.0 \
--vcpus  1 \
--memory 1000 \
--disk /var/lib/libvirt/images/$1.qcow2,size=10,bus=virtio \
--network source=br0,model=virtio  \
--name $1 \
--extra-args "ks=http://172.25.254.13/ks.cfg"

需要稍做解释的是第五行和最后一行:

第五行意思就是通过http协议去共享yum源的地址处去下载镜像;

最后一行就是通过http协议去13这台主机的html目录下下载配置文件;

2.执行该脚本,等待安装结果。

猜你喜欢

转载自blog.csdn.net/qq_40628106/article/details/83247029