Linux系统下脚本对虚拟机的安装重置

来源:互联网 发布:国外视频软件 编辑:程序博客网 时间:2024/05/16 17:41

脚本对虚拟机的安装管理

摘要:本次博文主要涉及Linux系统主机使用脚本进行安装、快照和重置虚拟机,如此,克服了镜像法安装Linux系统虚拟机的步骤繁多的缺点,提高了工作效率。

一、安装虚拟机

  在这里主要介绍两种快速安装虚拟机的情况,第一种在孤立无援下,独立安装速度最快的方法。第二种是得到其他主机安装好虚拟机后产生的两个文件时,神速安装。

(一)普通脚本安装虚拟机

原材料:主机、安装源

脚本如下:

#empty#!/bin/bash                  命令运行环境的指定virt-install                        安装虚拟机--name $1 \                         虚拟机名称的指定,$1表示脚本后的第一串字符--ram 1024 \                                内存--file /var/lib/libvirt/images/$1.qcow2 \   硬盘文件--file-size 8 \                             硬盘大小--cdrom /home/kiosk/Desktop/work/rhel-server-7.2-x86_64-dvd.iso \   安装源指定--vcpus 1  &    

举例演示:

首先转到超级用户

 

通过ps可以查看当前进程,使用which bash看出系统命令是储存在/usr/bin/下,最后也可以将写好的脚本,和系统命令放在一起,方便调用。


使用vim命令开始编程脚本,名称形如Creat_vm.sh其中.sh表示脚本的意思

如下,是我已经写好的安装虚拟机的脚本,其中反斜杠及其前的空格表示换行。

 

然后赋予该脚本可执行能力,即chmod +x Creat_vm.sh 

最后把Creat_vm.sh移动到/usr/bin/目录下,如此调用起来和原系统命令一样快捷

 

效果如下:


大功告成,表示虚拟机安装启动

 

(二)具有硬盘文件与前文件的超速安装虚拟机

原材料:

        (1)  vm.qcow2   硬盘文件

        绝对路径:/var/lib/libvirt/images

        (2)  vm.xml    前端文件

        绝对路径:/etc/libvirt/qemu

        (3)主机

:vm表示虚拟机名称

分别得到两个文件后,开始对主机超速安装:

步骤有三:

(1)将硬盘文件移动到主机 /var/lib/libvirt/images

(2)将硬盘文件移动到主机 /etc/libvirt/qemu

(3)显示虚拟机的存在:

暂时性:virsh create vm.xml  

永久性:virsh define vm.xml

举例演示:

注:这里我得到了某台主机虚拟机redhat的两个文件,并且保存在目录/mnt中。

移动redhat.qcow2到指定路径即mv redhat.qcow2 /var/lib/libvirt/images/  

可以看到,redhat.qcow2添加成功


移动redhat.xml到指定路径即mv redhat.xml /etc/libvirt/qemu


可以看到,redhat.xml添加成功

 

进行永久生效显示 


如此,成功。


二、虚拟机的管理

虚拟机管理命令如下,建议读者尝试,截图,不再赘述。

##########################################################################################

virt-manager                      开启图形管理工具

virt-viewer vmname                  显示虚拟机,vmname表示虚拟机名称

virsh list                       列出正在运行的vm

virsh list --all                   列出所有vm

virsh start vmname                  运行指定vm

virsh shutdown vmname                正常关闭指定vm

virsh destroy vmname                 强行结束指定vm

virsh create vmname.xml               临时恢复指定vm,vmname.xml表示前端管理文件

virsh define vmname.xml               永久恢复vm

virsh undefine vmname                删除vm的前端管理,但不会删除储存

##########################################################################################

三、虚拟机的快照

   虽然虚拟机身份卑微,但也是来之不易。因而对虚拟机进行快照操作,有了快照,大可以任意操作,玩坏了一个快照再弄一个就行,毕竟虚拟机母本平安无事。

 1、建议现在将母本虚拟机隐藏起来保护,避免被误删。

隐藏的方法:

方法一:直接undefine母本前端文件,并更改母本硬盘文件名称。

        (1)virsh undefine redhat

 

       (2)在指定同一路径下 mv redhat.qcow2 vm_storage.qcow2  等价于修改其名称


 

方法二:在virt-manager下慎重删除虚拟机但注意去掉硬盘选项,然后修改名字和上述(2)一样,不再赘述

  


 2、脚本快速实现虚拟机的快照

代码如下:

#!/bin/bashqemu-img create -f qcow2 -b /var/lib/libvirt/images/vm_storage.qcow2 \/var/lib/libvirt/images/$1.qcow2 &>/dev/null virt-install \--name $1 \--ram 1024 \--file /var/lib/libvirt/images/$1.qcow2 \--file-size 8 \--import  &>/dev/null  &echo Successfully !!!

&>/dev/null表示不显示过程中的繁琐信息,& 表示后台运行,不占用终端,vm_storage.qcow2表示母本虚拟机的硬盘文件。

举例演示:

使用vim命令开始编程脚本,名称形如Creat_snap.sh其中.sh表示脚本的意思

如下,是我已经写好的安装虚拟机的脚本,其中反斜杠及其前的空格表示换行。


然后赋予该脚本可执行能力,即chmod +x Creat_snap.sh 

最后把Creat_snap.sh移动到/usr/bin/目录下,如此调用起来和原系统命令一样快捷



四、重置虚拟机快照

当一个虚拟机快照损坏时,我们可以直接调用一个脚本命令去重置它,省略不必要的麻烦。

程序如下:

#!/bin/bashvirsh destroy $1 &>/dev/nullrm -fr /var/lib/libvirt/images/$1.qcow2 \qemu-img create -f qcow2 -b /var/lib/libvirt/images/vm_storage.qcow2 \/var/lib/libvirt/images/$1.qcow2 &>/dev/null virsh start $1   &>/dev/nullvirt-viewer $1   &>/dev/null   &echo Successfully !!!empty

&>/dev/null表示不显示过程中的繁琐信息,& 表示后台运行,不占用终端,vm_storage.qcow2表示母本虚拟机的硬盘文件。

(一)配置演示:

使用vim命令开始编程脚本,名称形如Reset_vm.sh其中.sh表示脚本的意思

命令:vim Rest_vm.sh

如下,是我已经写好的安装虚拟机的脚本,其中反斜杠及其前的空格表示换行。


然后赋予该脚本可执行能力,即chmod +x Reset_vm.sh 


最后把Reset_vm.sh移动到/usr/bin/目录下,如此调用起来和原系统命令一样快捷


(二)功能演示:

在终端试图调用快照node1

快照node1已经损坏,无法开机了!


利用写好的Resetvm.sh重置虚拟机快照,而后可以恢复其正常


如图,快照node1 可以正常开机使用,方便,简单。


原创粉丝点击