#!/bin/bash ##指定运行环境
virt-install \ ##安装虚拟机
--name $1 \ ##虚拟机的名字
--ram 1024 \ ##虚拟机的内存
--file /var/lib/libvirt/images/$1.qcow2 \ ##硬盘的位置
--file-size 8 \ ##磁盘的大小为8G
--cdrom /home/kiosk/Desktop/rhel-server-7.2-x86_64-dvd.iso \ ##将镜像文件插入运行
--vcpus 1 & ##CPU为1核,并将进程打入后台运行
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
如下图所示:
注意:(1)其中 \表示换行,&表示将虚拟机安装进程打入后台进行。
(2)脚本语言编辑结束需要加x权限,否则使用脚本会报错:没有权限。
(3)shell窗口运行脚本,需要在脚本后面加上虚拟机的名字(即$1的内容)。
(4)运行脚本前可使用sh -x对脚本进行排错。
(2)脚本语言网络安装
需要配置yum源,http服务。
#!/bin/bash
virt-install \ ##安装虚拟机
--name $1 \ ##虚拟机的名字
--ram 1024 \ ##虚拟机的内存
--file /var/lib/libvirt/images/$1.qcow2 \ ##虚拟机的前端文件存放位置
--file-size 10 \ ##虚拟机的磁盘大小
--vcpus 1 \ ##内核个数
--location http://172.25.254.3/rhel7.2 & ##安装位置,网络安装
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
2.管理
virt-manager ##开启图形管理工具
virsh list ##列出正在运行的vm
virsh list –all ##列出所有vm
virsh start vmname ##运行指定vm
virt-viewer vmname ##显示指定的vm
virsh shutdown vmname ##正常关闭指定vm
virsh destroy vmname ##强行结束指定vm
virsh create vmname.xml ##临时恢复指定vm,当关闭virt-manager命令打开的图形窗口后,该vm将不再存在。vmname表示前端管理文件
virsh define vmname.xml ##永久恢复vm
virsh undefine vmname ##删除vm的前端管理,不会删除存储
3.恢复虚拟机
(1)复制两个文件:
cd /var/lib/libvirt/images ##/var/lib/libvirt/images为磁盘文件存放目录
mv node2.qcow2 /mnt/ ##移动硬盘上的数据文件
cd /etc/libvirt/qemu/ ##/etc/libvirt/qemu/为前端文件存放目录
cp node2.xml /mnt/ ##复制前端配置文件
注意:移动node2.qcow2和备份node2.xml是为删除node2虚拟机及恢复虚拟机做准备。删除node2虚拟机后,应将node2.qcow2从/mnt/下移回/var/lib/libvirt/images,再进行恢复虚拟机。
(2)删除node2虚拟机
virsh undefine node2
(3)恢复
virsh define node2.xml ##永久性恢复node2虚拟机,关闭后仍存在
virsh create node2.xml ##临时恢复node2虚拟机,关闭虚拟机就不存在
快照文件恢复虚拟机:
(一)编写脚本,脚本内容为:
#!/bin/bash
qemu-img create -f qcow2 -b /var/lib/libvirt/images/vm_storage.qcow2 \
/var/lib/libvirt/images/$1.qcow2 ##根据磁盘文件/var/lib/libvirt/images/vm_storage.qcow2生成快照文件/var/lib/libvirt/images/$1.qcow2,-f表示快照文件的类型,-b表示目标文件
virt install \ ##安装虚拟机
--name $1 \ ##虚拟机的名字
--ram 1024 \ ##虚拟机的内存
--file /var/lib/libvirt/images/$1.qcow2 \ ##指定快照文件的地址
--file-size 8 \ ##虚拟机的磁盘大小
--import & ##跳过安装过程,并将安装打入后台
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
(2)快照文件图形界面恢复虚拟机
选择“Import existing disk image”方式建立虚拟机。
4.虚拟机快照
快照的原理:快照产生文件,读取的是磁盘上的本文件,数据存取用的是快照文件。虚拟机重置就是删除快照文件。
生成快照文件:qemu-img create -f qcow2 -b vm2.qcow2 node1.qcow2
重置虚拟机:即删除前端文件,用磁盘文件做快照文件,使用快照文件恢复虚拟机。
脚本内容如下:
#!/bin/bash
virsh destroy $1 &> /dev/null ##强行关闭虚拟机
virsh undefine $1 &> /dev/null ##删除虚拟机(仅删除前端文件,磁盘文件不会删除)
qemu-img create -f qcow2 -b /var/lib/libvirt/images/ \
\$1.qcow2 /var/lib/libvirt/images/\$2.qcow2 &> /dev/null ##生成快照文件
virt-install \ ##安装虚拟机
--name $2 \ ##命名虚拟机
--ram 1024 \ ##指定内存大小
--disk /var/lib/libvirt/images/$2.qcow2 \ ##使用快照文件安装虚拟机
--import &> /dev/null &
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
free -m ##内存剩余量查询
xml ##可扩展标记语言(数据封装,虚拟机前端)
html ##超文本可编辑语言(写网页文件)
注意:
1.图形界面安装方式选择
(1)Local install media(ISO image or CDROM) ##从官网下载的镜像文件选用该安装方式
(2)Network install(HTTP,FTP,or NFS) ##网络安装,需要配置yum源,http服务,dhcp等。
(3)Network boot(PXE)
(4)Import existing disk image ##当使用快照文件或磁盘文件时选用该安装方式
2.脚本安装虚拟机设置NIC,Device model,Disk bus
#!/bin/bash
qemu-img create -f qcow2 -b /var/lib/libvirt/images/vm_storage.qcow2 \
/var/lib/libvirt/images/$1.qcow2
virt-install \
--name $1 \
--ram 1024 \
--file /var/lib/libvirt/images/$1.qcow2,bus=virtio \ ##Virtual Disk的Advanced options设定
--file-size 8 \
--network source=br0,model=virtio \ ##Virtual Network Interface的network source和Device model设定
--import &
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
问题1:脚本网络安装虚拟机
原因:未安装dhcp
解决方法:下载dhcp并启动dhcp。
问题2:安装虚拟机成功后,直接进入到文字界面,无法调整到图形界面
原因:选择minimal安装,选择GUI安装成功之后就有图形界面