如何在Linux下对虚拟机实现管理与自动化安装

1.虚拟机管理命令

命令含义
virt-manager开启虚拟机管理器
virsh list显示正在运行的虚拟机
virsh list --all查看所有虚拟机
virsh start desktop打开虚拟机
virsh shutdown desktop正常关闭虚拟机
virsh destroy desktop强行关闭虚拟机
virt-viewer desktop显示虚拟机

举例:
<1>先在真实主机中切换到root用户下
在这里插入图片描述
<2>开启虚拟机管理器
在这里插入图片描述
<3>显示正在运行的虚拟机
在这里插入图片描述
<3>查看所有的虚拟机
在这里插入图片描述
<4>打开名字为bai的虚拟机
在这里插入图片描述
<5>正常关闭名字为bai的虚拟机
在这里插入图片描述
<6>强行关闭名字为bai的虚拟机
在这里插入图片描述
<7>显示名字为bai的虚拟机
在这里插入图片描述
注意:显示虚拟机之前必须打开虚拟机

2.如何在别人主机中转移一个虚拟机

1.在别人主机中发现1个已经安装好的虚拟机(可以先切换到别人的主机,打开别人的虚拟机管理器,查看想要转移的虚拟机的硬盘的目录在哪里,具体的“克隆步骤”如下)
假设主机中存在已经安装好的虚拟机“gege”,其硬盘所在的目录为/var/lib/libvirt/images/gege.qcow2,其硬件所在的信息的目录为/etc/libvirt/qemu/uc.xml(管理硬件资源)
2.复制虚拟机所需文件(将别的用户的硬盘转移到自己的目录下)

scp root@172.25.154.28:/var/lib/libvirt/images/uc.qcow2 /var/lib/libvirt/images/         ##硬盘所在目录
scp root@172.25.154.28:/etc/libvirt/qemu/uc.xml /mnt/un.xml  ##硬件信息       

在这里插入图片描述
在这里插入图片描述
3.对虚拟机进行恢复
<1>virsh create /mnt/gege.xml ##用虚拟机硬件文件一次性开启虚拟机,关闭则没有了(临时开启)
输入临时开启的命令:
在这里插入图片描述
在图形管理下看可以看见虚拟机gege已经存在
在这里插入图片描述
使用关闭命令对虚拟机gege进行关闭的命令如下
在这里插入图片描述
发现使用关闭命令后图形管理器下的虚拟机gege也消失了
在这里插入图片描述
<2>virsh define /mnt/gege.xml ##永久恢复(永久开启)
输入永久开启的命令,当输入关闭命令时,发现无法关闭,因为还没有使虚拟机开机
在这里插入图片描述
在图形管理下看可以看见虚拟机gege已经存在’
在这里插入图片描述
使用关闭命令对虚拟机gege进行关闭的命令如下
在这里插入图片描述
发现使用关闭命令后图形管理器下的虚拟机gege不会消失
在这里插入图片描述
注意:
<1>如果先开始传输硬件信息,必须通过在virt-manager下新建一个虚拟机来导入别人的虚拟机。
<2>如果硬件的位置没有在本来应该在的目录下,就需要复制到应该在的目录下.
补充:
<1>IDE Disk 1 是它的硬盘
<2>超文本标记语言是html5,可扩展标记语言是xml(一般用作数据封装)。
<3>尝试在硬件中手动删除光驱后,再次查看硬件信息内的文件内是没有光驱的设置的

3.虚拟机的快照

(1)简单步骤:
<1>qemu-img create -f qcow2 -b /var/lib/libvirt/images/gege.qcow2 /var/lib/libvirt/images/node1.qcow2
<2>把生成的快照导入到虚拟机图形控制器中
<3>虚拟机可以使用
<4>快照虚拟机损坏,那么删除快照从新制作快照即可
<5>当使用快照后请不要对母盘做任何操作
(2)举例:
<1

>[root@foundation28 ~]# qemu-img create -f qcow2 -b /var/lib/libvirt/images/gege.qcow2 /var/lib/libvirt/images/node1.qcow2        ##生成快照
Formatting '/var/lib/libvirt/images/node1.qcow2', fmt=qcow2 size=8589934592 backing_file='/var/lib/libvirt/images/gege.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off 

在这里插入图片描述
<2>

[root@foundation28 ~]# ls /var/lib/libvirt/images    ##进入目录下查看是否生成了快照
bai.qcow2                rh124-desktop-vdb.ovl    rh124-server-vdb.ovl
gege.qcow2               rh124-desktop-vdb.qcow2  rh124-server-vdb.qcow2
node1.qcow2              rh124-desktop.xml        rh124-server.xml
rh124-desktop-vda.ovl    rh124-server-vda.ovl     yyy.qcow2
rh124-desktop-vda.qcow2  rh124-server-vda.qcow2

在这里插入图片描述
<3>将快照导入虚拟机:
-1

-[kiosk@foundation28 ~]$ su - root
Password: 
Last login: Fri Jan 18 11:32:21 CST 2019 on pts/2
[root@foundation28 ~]# virt-manager       ##首先进入虚拟机图形控制器

在这里插入图片描述
-2-点击Create a new virtual machine
在这里插入图片描述
-3-然后点击import existing disk image
在这里插入图片描述
-4-将快照的硬盘导入
在这里插入图片描述
-5-设置RAM,name
在这里插入图片描述
在这里插入图片描述
-6-设置成功后,在虚拟机图形控制器中便可以看见新创建的快照
在这里插入图片描述
<4>在虚拟机图形控制器中
改变快照的大小
首先在真实主机中查看快照的容量大小

[root@foundation28 images]# cd /var/lib/libvirt/images
[root@foundation28 images]# ls
bai.qcow2                rh124-desktop-vdb.ovl    rh124-server-vdb.ovl
gege.qcow2               rh124-desktop-vdb.qcow2  rh124-server-vdb.qcow2
node1.qcow2              rh124-desktop.xml        rh124-server.xml
rh124-desktop-vda.ovl    rh124-server-vda.ovl     yyy.qcow2
rh124-desktop-vda.qcow2  rh124-server-vda.qcow2
[root@foundation28 images]# du -sh node1.qcow2
28M	node1.qcow2

在这里插入图片描述
再次在快照中查看快照的容量大小

[root@foundation28 images]# cd /var/lib/libvirt/images
[root@foundation28 images]# ls
bai.qcow2                rh124-desktop-vdb.ovl    rh124-server-vdb.ovl
gege.qcow2               rh124-desktop-vdb.qcow2  rh124-server-vdb.qcow2
node1.qcow2              rh124-desktop.xml        rh124-server.xml
rh124-desktop-vda.ovl    rh124-server-vda.ovl     yyy.qcow2
rh124-desktop-vda.qcow2  rh124-server-vda.qcow2
[root@foundation28 images]# du -sh node1.qcow2
33M	node1.qcow2

在这里插入图片描述
<5>如果快照出现了问题,重新建立一个快照即可
首先删除快照中根目录下的所有内容,会发现快照无法正常启动了
在这里插入图片描述
然后删除已经崩溃掉的快照
在这里插入图片描述
最后重新建立一个快照(具体的建立过程可以看上述)
简单的过程如下:
在这里插入图片描述
注意:
<1>生成快照中,-f是指类型,-b是指母盘的目录
<2>对快照进行内容的改变时,快照的容量大小也会发生改变
<3>更改的内容都在一个虚拟机(相当于快照)中,查看的在另外一个虚拟机中。
<4>如果在原始虚拟机中已经有了一个快照,那尽量就不要再动原始虚拟机了,否则快照也会崩溃

4.使用命令删除虚拟机

使用方法:
virsh underfine 虚拟机名称(只删除了前端文件,前端文件较小)
rm -fr /var/lib/libvirt/images/虚拟机硬盘.qcow2
<1>首先在真实主机下切换到root用户并打开虚拟机图形控制器
在这里插入图片描述
<2>使用命令虚拟机名称为node1.qcow2的快照,删除前端文件
在这里插入图片描述
<3>查看虚拟机硬盘下的目录下是否还存在快照的相关内容
在这里插入图片描述
<4>之后删除快照中的存在的硬盘文件
在这里插入图片描述
<5>查看虚拟机硬盘的目录,发现没有了node1.qcow2文件,说明已经彻底删除了名称为node1.qcow2的快照
在这里插入图片描述
注意:
图形是不能进行批量操作的,使用命令做比较快

5.自动安装虚拟机及快照

(1)自动安装虚拟机(指定虚拟机的名称)
<1>新建一个/scripts目录,进入目录并在目录下创建vm_creath.sh文件(shell脚本)

[root@foundation28 ~]# mkdir /scripts
[root@foundation28 ~]# cd /scripts
[root@foundation28 scripts]# vim vm_create.sh

在这里插入图片描述
<2>在vm_create.sh文件下对自动安装虚拟机进行配置
配置的内容如下:

#!/bin/bash          ##指此文件在shell下运行
virt-install \         ##安装虚拟机
--cdrom /home/kiosk/Desktop/rhel-server-7.3-x86_64-dvd.iso \     ##导入光驱的目录
--memory 1000 \               ##内存的大小为1000
--vcpus 1 \           ##设置cpu为1个
--disk /var/lib/libvirt/images/wo.qcow2,size=8,bus=virtio \        ##导入硬盘的地址,设置其大小为8,其总线为virtio(快),8是指硬盘的大小为8GB
--network bridge=br0,model=virtio \     ##设置网关中的网桥,将设备模式设为虚拟
--name wo &        ##设置名字为所输入的字符中的第一个,“wo”是虚拟机指定的名称

在这里插入图片描述
<3>再次输入其命令,发现会报错,因为已经存在了一个名为“wo”的虚拟机
在这里插入图片描述
<4>运行创建的shell脚本

[root@foundation28 scripts]# sh vm_create.sh

在这里插入图片描述
注意:
<1>$1是一个占位符,指的是所跟的第一串字符,$2指的是所跟的第二串字符
<2>\指的是换行符,换行符后面不能有空格
<3>装机过程的自动化和虚拟化管理不同
补充:光驱的目录可以通过以下命令进行查询
在这里插入图片描述

(2)自动安装虚拟机(不指定虚拟机的名称)
要解决随时设定虚拟机名称,主要是通过添加一个占位符即可实现。
<1>新建一个/scripts目录,进入目录并在目录下进入vm_creath.sh文件

[root@foundation28 ~]# mkdir /scripts
[root@foundation28 ~]# cd /scripts
[root@foundation28 scripts]# vim vm_create.sh

在这里插入图片描述
<2>在vm_create.sh文件下对自动安装虚拟机进行配置
配置的内容如下:

#!/bin/bash            ##指此文件在shell下运行
virt-install \         ##安装虚拟机
--cdrom /home/kiosk/Desktop/rhel-server-7.3-x86_64-dvd.iso \     ##导入光驱的目录
--memory 1000 \               ##内存的大小为1000
--vcpus 1 \           ##设置cpu为1个
--disk /var/lib/libvirt/images/$1.qcow2,size=8,bus=virtio \        ##导入硬盘的地址,设置其大小为8,其总线为virtio(快),,8是指硬盘的大小为8GB
--network bridge=br0,model=virtio \     ##设置网关中的网桥,将设备模式设为虚拟
--name $1 &        ##设置名字为所输入的字符中的第一个

在这里插入图片描述
<3>运行创建的shell脚本

[root@foundation28 scripts]# sh vm_create.sh po

在这里插入图片描述

[root@foundation28 scripts]# sh vm_create.sh test

在这里插入图片描述

(3)自动安装快照(不指定快照的名称)
要解决随时设定虚拟机名称,主要是通过添加一个占位符即可实现。
<1>新建一个/scripts目录,进入目录并在目录下进入vm_snapshot.sh文件

[root@foundation28 scripts]# vim vm_snapshot.sh

在这里插入图片描述
<2>在vm_create.sh文件下对自动安装虚拟机进行配置
配置的内容如下:

#!/bin/bash   ##指此文件在shell下运行
qemu-img create -f qcow2 -b \    ##生成快照
/var/lib/libvirt/images/$1.qcow2 \      ##导入母盘的目录
/var/lib/libvirt/images/$2.qcow2 &> /dev/null    ##导入快照的目录

virt-install \     ##安装快照
--name $2 \          ##设置快照名字
--memory 1000 \        ##内存的大小为1000MB
--vcpus 1 \       ##设置cpu为1个
--disk /var/lib/libvirt/images/$2.qcow2,bus=virtio \    ##导入硬盘的目录,总线的设置
--network bridge=br0,model=virtio \      ##设置网关,将设备模式设为虚拟
--import  &>/dev/null &             ##导入快照,相当于图形界面中的Import existing disk image

在这里插入图片描述
<3>运行创建的shell脚本
[root@foundation28 scripts]# sh vm_snapshot.sh bai liu
在这里插入图片描述
注意:
在配置文件中加入“&>/dev/null”表示将所有报错都放入回收箱中

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值