linux之怎么在使用脚本快速创建虚拟机?怎么从别的主机拷贝一个虚拟机过来?
Posted Tuki_a
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
以上是关于linux之怎么在使用脚本快速创建虚拟机?怎么从别的主机拷贝一个虚拟机过来?的主要内容,如果未能解决你的问题,请参考以下文章