脚本安装虚拟机

Source
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_41982425/article/details/86602358

一、编辑脚本
vim virtinstall.sh

#!/bin/bash   ##指明翻译脚本的shell
virt-install   \
--cdrom  /var/ftp/pub/ios/rhel-server-7.3-x86_64-dvd.ios     \    ##指明虚拟机镜像位置的位置
--ram  1024    \    ##指定虚拟机的内存
--cpus   1      \       ##指定虚拟机的cp数u
--disk  /var/lib/libvirt/images/test.qcow2,bus=virtio,size=9    \  ##指明虚拟机硬盘位置并规定硬盘名字,虚拟机的网卡,虚拟机大小  (test为自己规定的硬盘名字.qcow2可有可无)
--name  test   \      ##指定虚拟机的名称
--network   bridge=br0,model=virtio    &  \   

sh virtinstall.sh :运行脚本
chmod +x virtinstall.sh
./virtinstall.sh :表示运行文件

虚拟机的硬盘:/var/lib/libvirt/images/vm-rsy.qcow2
硬件信息:/etc/libvirt/qemu/vm-rsy.xml

二、模拟恢复虚拟机
将虚拟机的相关文件移除,表示删除虚拟机
cd /var/lib/libvirt/images/
mv vm-rsy.qcow2 /mnt/#硬盘
mv /etc/libvirt/qemu/vm-rsy.xml /mnt#硬件信息

模拟恢复过程
cd /mnt
virsh create vm- rsy.xmL#用硬件信息文件启动虚拟机(一次性的)
在操作过程中会报错
virsh create vm- rsy. xml
error: Failed to create domain from vm- rsy. xml
error: Cannot access storage file ‘/var/lib/libvirt/images/vm- rsy. qcow2’( as uid: 107, gid: 107): No such file or directory
解决方案

mv /mnt/vm- rsy. qcow2 /var/Lib/Libvirt/images :将虚拟机文件恢复原位
virsh define vm- rsy.xmL#永久恢复虚拟机

三、虚拟机的快照#
qemu-img create -f qcow2 -b dd. qcow2 vm1
vm1:快照的名称
dd.qcow2:虚拟机的硬件文件
qcow2:快照的文件类型

脚本安装虚拟机快照
vim virtinstall.sh
#!/bin/bash
qemu-img create -f qcow2 -b
/var/lib/libvirt/images/$1.qcow2 /var/lib/libvirt/images/$2.qcow2
virt-install
–name $2
–ram 1024
–cpus 1
–disk /var/lib/libvirt/images/$2.qcow2,bus=virtio
–network bridge=br0,model=virtio
–import &
sh $1 $2 :运行脚本 ($1 $2表示形参)

重置虚拟机的脚本
vim virtinstall.sh
#!/bin/bash
virsh destory $1 :关闭$1虚拟机(为虚拟机快照)
rm -rf /var/lib/libvirt/images/$1.qcow2 删除虚拟机(虚拟机快照)
qemu-img create -f qcow2 -b /var/lib/libvirt/images/$2.qcow2 /var/lib/libvirt/images/$1.qcow2 (重新生成虚拟机快照)
virsh start $1
virt-viewer $1 &

四、虚拟机管理命令
virt-manager :开启虚拟机管理器
virsh list :显示正在运行的虚拟机
virsh list --all :查看所有的虚拟机
virsh start dd :打开虚拟机
virsh shutdown dd :关闭虚拟机
virsh destory dd : 强行关闭虚拟机
virt-viewer dd :显示虚拟机
virsh undefine dd :删除虚拟机(删除虚拟机是不删除虚拟机的硬盘,只删除虚拟机的硬件信息文件)

五、进程的信号
常用信号级别
1 ## 进程重新加载配置
2 ## 删除进程在内存中的数据
9 ## 强行结束,单个进程不可被阻塞
15 ## 正常关闭进程,可能会被阻塞
18 ## 运行暂停的进程
19 ## 暂停某个进程不能被阻塞
20 ## 把进程打入后台
kill -信号 进程PID
killall -信号 进程的名字
pkill -u student -信号