虚拟机的管理

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 一次性恢复虚拟机westos
    virsh 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 此时 1 = t e s t a = 1 , b = 1 t e s t " 1=test a=1,b=1 test " 1=testa=1,b=1test"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 再重新建立快照即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值