文章目录
- 1.虚拟机管理命令
- 2.从其他同网主机copy虚拟机
- 3.半自动脚本建立虚拟机(未安装)
- 4.自动安装虚拟机的脚本(同一网络下 批量安装虚拟机 无图形)
- 5.全自动安装虚拟机脚本
- 6.快照
1.虚拟机管理命令
命令 | 作用 |
virsh --help | 查看virsh命令的帮助 |
virsh create xxx.xml | 一次性恢复虚拟机xxx |
virsh define xxx.xml | 永久恢复虚拟机xxx |
virsh undefine xxx | 删除xxx虚拟机的硬件信息 |
virsh list | 查看正在运行的虚拟机 |
virsh list --all | 查看所有虚拟机 |
virsh start xxx | 启动xxx虚拟机 |
virsh shutdown xxx | 关闭虚拟机 ,可能会被阻塞 |
virsh destroy xxx | 强行关闭虚拟机xxx(相当于poweroff 不会被阻塞) |
virt-viewer xxx | 显示虚拟机xxx(会占用终端) |
virt-manager | 虚拟机管理器 |
2.从其他同网主机copy虚拟机
(1)copy虚拟机硬盘
硬盘存储路径:/var/lib/libvirt/images/
- eg:假设将要从2号主机copy虚拟机 将虚拟机文家全部存放到本机的/mnt目录
scp root@172.25.254.2:/var/lib/libvirt/images/westos.qcow2 /mnt
(2)copy硬件信息 (管理虚拟机在系统中的文件 )
虚拟机硬件信息存储路径:/etc/libvirt/qemu
(xml可扩展标记语言–>数据的封装)
- eg:
scp root@172.25.254.2:/etc/libvirt/qemu/westos.xml /mnt
- (3)此时执行
virsh create westos.xml
会出现报错,因为文件没有存储在相应路径,系统无法恢复虚拟机
vim /mnt/westos.xml 根据文本内容 将/mnt/westos.qcow2 移动到相应位置
mv /mnt/westos.qcow2 /var/lib/libvirt/images/ - (4)
virsh create westos.xml
一次性恢复虚拟机westosvirsh define westos.xml
在真机上永久恢复虚拟机westos
3.半自动脚本建立虚拟机(未安装)
(1)准备工作:下载好虚拟机iso镜像安装包 建议单独存放在根目录下
(2)建立virt-install虚拟机安装脚本文件 vim vm_create.sh
借助man 1 virt-install编写脚本:
test -z "$1" &&{
echo "Error:Please input VNAME following scritps!!!"
exit } ##判断$1是否为空 若为空数输出错误提示(echo 相当于 printf)且直接结束脚本不再执行
virt-install \
--name $1 \ ##虚拟机的名字
--cdom /iso/rhel-server-7.3-x86_64-dvd.iso \ ##表示使用镜像安装 iso镜像的绝对路径
--memory 1024 \ ##硬件大小
--vcpus 1 \ ##cpu的个数
--disk /var/lib/libvirt/images/$1.qcow2,size=6,bus=virtio \
##硬盘的选择:硬盘的绝对路径,硬盘的大小=6,硬盘总线选择virtio
--network source=br0,model=virtio &> /dev/null &
##网络的选择:网络来源=br0,模型=virtio "&> /dev/null"表示输出内容重定向到垃圾箱 "&"表示安装过程在后台进行
*注:
\ 换行符 连接下一行
$1 占位符 脚本后面所跟的的第一个字符
eg: sh vm_cteate.sh test 此时a"="$b" && echo yes || echo no 结果为yes
(相当于if语句,等式成立执行 && 与之后的命令;否则,执行 ||非之后的语句)
(3) chmod +x vm_create.sh
sh vm_create.sh
可以看到只是选择建立了虚拟机但并未安装
4.自动安装虚拟机的脚本(同一网络下 批量安装虚拟机 无图形)
原理:将安装虚拟机的步骤选项根据命令生成脚本,对脚本进行修改之后,利用httpd将脚本分享到网上,需要安装虚拟机的客户机可以利用网上共享资源自动安装虚拟机,需要注意的是客户机的dhcpd服务必须开启为将要安装的虚拟机分配ip网络。
(1)yum install system-config-kickstart -y
如果系统中没有这个软件可能需要安装
system-config-kickstart
打开虚拟机安装选择配置文件窗口
选择各项配置之后 选择脚本保存位置 保存脚本ks.cfg (这里保存到/下)
脚本生成步骤:
(2)在保存脚本的位置打开脚本进行修改
最后添加 :
%packages
@base ##虚拟机基础工具组建的安装
xxx ## 表示你想安装的软件在虚拟机安装后系统会自动安装
%endxu
(3)ksvalidator ks.cfg
检测脚本语法是否正确
(4)在确保脚本正确性的前提下 将脚本分享到网络上
systemctl start httpd
打开httpd阿帕奇服务 将资源共享
systemctl stop firewalld
关闭防火墙
cp /ks.cfg /var/www/html/
注:这里只能使用cp
在浏览器中搜索 看是否存在分享的资源;若分享成功如下图
(4) 客户机测试:
1)systemctl startd dhcpd
这里需要dhcpd服务 给待安装的虚拟机分配ip (在安装虚拟机时需要访问网络共享资源 而访问网络就需要ip 只能通过dhcp服务给虚拟机自动分配)
virt-manger
打开虚拟机管理器 选择如下安装的信息进行安装,安装后虚拟机是不用选择其他设置的
如果未开启dhcpd服务安装过程中会出现如下错误:
2)按照如下步骤开始安装虚拟机
5.全自动安装虚拟机脚本
(1)准备:搭建好yum源 httpd(apache)资源共享成功
vim vm_create.sh
virt-install \
--name $1 \
--location http://172.25.254.1/rhel7.3 ##表示选择网络http资源安装
--memory 1024 \
--vcpus 1 \
--disk /var/lib/libvirt/images/$2.qcow2,size=6,bus=virtio \
--network source=br0,model=virtio \
--extra-args "ks=http://172.25.254.70/ks.cfg" \
(2)sh vm_create.sh
执行脚本 一步安装虚拟机
出现如下界面表示安装配置正常
6.快照
(1)概念:虚拟机数据的可用拷贝,虚拟机数据的复制品
(2)cd /var/lib/libvirt/images
到虚拟机硬件管理目录下
qemu-img create -f qcow2 -b westos.qcow2 node1.qcow2
快照生成虚拟机的硬件信息
在 /var/lib/libvirt/images 目录下查看是否新建了快照文件node1.qcow2
(3)若新建则按照如下步骤安装快照:
脚本执行
(1) vim vm_create_shot.sh
(2)脚本内容:
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 1024 \
--vcpus 1 \
--disk /var/lib/libvirt/images/$2.qcow2,bus=virtio \
--network source=br0,model=virtio \
--import &> /dev/null &
如若将虚拟机文件删除导致虚拟机不能正常启动 rm -fr /var/lib/libvirt/node1.qcow2
再重新建立快照即可