linux之怎么在使用脚本快速创建虚拟机?怎么从别的主机拷贝一个虚拟机过来?


平常我们建立虚拟机需要自己在虚拟化工具里手动一个一个的设置各种选项。使用脚本可以解放我们的双手,让我们不用手动 在虚拟化工具里选择各种选项去建立虚拟机,快速自动建立虚拟机

使用脚本快速创建虚拟机

可以man virt-install查看脚本书写模板
在这里插入图片描述

关于下文出现的脚本内容的一些解释:

test			检测的意思
-z				zero,即检测后边的值是否为空
&&				成立则执行紧跟的语句,否则继续往下走
||				不成立则执行紧跟的语句,否则继续往下走
反斜杠\			意思是在shell里换行,但字符输出不会换行,注意在写脚本时后边不能有空格
$1				意思是脚本后面所跟的第一串字符
--memory 2048	内存大小,M单位
--vcpus 1		cpu核心数量
--disk 			硬盘设置
##size=8,bus=virtio,意为硬盘大小8G,硬盘用virtIO模式,走bus总线
--network		网络配置
--location		镜像位置
--os-variant	操作系统版本
&> /dev/null	意思是提示都扔垃圾箱,这样就不显示了,但在测试成功前最好先不要加,否则出问题都不知道哪儿错了
&				是打入后台运行,不占用shell
import			是引入快照的意思

建立虚拟机的脚本

先创建脚本
在这里插入图片描述
写入以下内容:
为了方便我们建立多个虚拟机,我们在脚本里使用$1来接收脚本后面所跟的第一串字符(即虚拟机名字),这样我们不用创建一次虚拟机改一次脚本!
##不建议直接复制,最好手敲一遍

#!/bin/bash
test -z $1 && {
    echo "Please input vmname following script"
    exit
}

test -e "/var/lib/libvirt/images/$1.qcow2" && {
    echo "$1 is exist"
    exit
}

qemu-img create -f qcow2 /var/lib/libvirt/images/$1.qcow2 8G -o lazy_refcounts=off

virt-install \
    --name $1 \
    --memory 2048 \
    --vcpus 1 \
    --disk /var/lib/libvirt/images/$1.qcow2,size=8,bus=virtio \
    --network bridge=br0,model=virtio \
    --location file:///isos/rhel8.2 \
    --os-variant rhel8.2 &> /dev/null &

在这里插入图片描述
使用该脚本建立虚拟机:sh lucky_vm.sh 虚拟机名字
在这里插入图片描述

给虚拟机拍快照的脚本

先创建脚本
在这里插入图片描述
写入以下内容:
##不建议直接复制,最好手敲一遍

#!/bin/bash
test -z $1 && {
    echo "Please input vmname following script"
    exit
}

test -e "/var/lib/libvirt/images/$1.qcow2" && {
    echo "$1 is exist"
    exit
}

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

virt-install \
    --name $1 \
    --memory 2048 \
    --vcpus 1 \
    --disk /var/lib/libvirt/images/$1.qcow2,bus=virtio \
    --network bridge=br0,model=virtio \
    --import \
    --os-variant rhel8.2 &> /dev/null &

在这里插入图片描述
使用该脚本建立虚拟机:sh lucky_node.sh 虚拟机名字
在这里插入图片描述

重建虚拟机的脚本

先创建脚本
在这里插入图片描述
写入以下内容:
##不建议直接复制,最好手敲一遍

#!/bin/bash
test -z $1 && {
    echo "Please input vmname following script"
    exit
}

test -e "/var/lib/libvirt/images/$1.qcow2" || {
    echo "$1 is not exist"
    exit
}

virsh destory $1

rm -fr /var/lib/libvirt/images/$1.qcow2

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

virsh start $1
virt-viewer $1 &

在这里插入图片描述
使用该脚本建立虚拟机:sh lucky_reset.sh 虚拟机名字
在这里插入图片描述

克隆别的主机的虚拟机

第一步:把要克隆的虚拟机(比如叫lucky)硬件信息文件和硬盘文件传到本主机上
		别的主机IP			硬盘文件/硬件信息文件						拷到本地相同目录
scp root@172.25.254.100:/var/lib/libvirt/images/lucky.qcow2 /var/lib/libvirt/images/lucky.qcow2
scp root@172.25.254.100:/etc/libvirt/qemu/lucky.xml /etc/libvirt/qemu/lucky.xml

第二步:在本机使用拷贝过来的文件创建虚拟机
cd /etc/libvirt/qemu/
virsh create lucky.xml			这种方式是临时的,一旦关闭就会消失在虚拟机列表里
virsh define lucky.xml			永久的,会一直在虚拟机列表里

两步搞定!

如果想删除该虚拟机:
virsh undefine lucky.xml		但这样不会删除硬盘文件需要手动删除硬盘文件
rm -fr /var/lib/libvirt/images/lucky.qcow2
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值