在封装虚拟机时我们首先应该明白,什么是封装?封装的目的是为了什么?
虚拟机封装
首先在超级用户下输入命令 virt-manager 命令来打开虚拟机管理界面,也可以用图形的方式打开;然后点击如图圈出的位置;
然后设定内存为 1024 M,由于后面的使用不需要开启图形,可以最小安装就可以,如果需要开启图形,至少需要 2948M ,否则虚拟机会比较卡;
内存设定为 20G ,方便后面虚拟机中做实验;
为当前安装的虚拟机七个名称 ,此处命名为 rhel7.6-new ;
此处选择默认,然后开始安装;表示安装时的语言默认是英文;
此处取消选择 kdump ,kdump 是内存载量恢复,当内核突然出问题时,会将数据存在这里面,由于内存只有1G,所以不要选择这个;
选择自动划分磁盘大小,手动设置建议设定为 lvm 形式, lvm 是可以拉伸的类型。
完成以上操作之后便可以开始安装虚拟机;设定超级用户的密码;
在该模式中写入 selinux=0 ,然后按 ctrl+x 开启系统;selinux =0 表示关闭加强型火墙;
进入系统之后,用超级用户登陆,此前在建立用户时也只默认了超级用户,并没有添加别的用户;查看当前主机名和 selinux 的状态;
在 /etc/sysconfig/network-scripts/
目录下编辑网卡文件 ifcfg-eth0 ,内容如图所示,此处编辑的过程默认没有安装 vim ;需要用 vi 来编辑文件内容;设定该主机的工作模式为静态网络的模式, IP 为172.25.25.1 ,网关为真实主机的 IP 172.25.25.250 ,DNS 为 114.114.114.114 ;
然后输入命令systemctl disable --now NetworkManager
,虚拟机不使用 wifi ,可以选择关闭 NetworkManager;
然后输入命令 systemctl restart network
重启网络;
输入命令 ip addr 来查看 IP 是否设定成功;
在 /etc/yum.repo.d/ 目录中编辑软件仓库文件 dvd.repo ;内容如图所示,使用真实主机上搭建的网络软件仓库;
注:真实主机上软件库的搭建可参考https://editor.csdn.net/md/?articleId=113775860
完成之后输入命令 yum repolist 来列出库中的所有软件软件包,当出现数字时,表示网络和软件库的文件都编辑成功;
然后输入yum install -y vim bash-* lftp
来安装相关的几个软件,为以后的饰演奠定基础;
编辑本地解析文件,当别的主机连接该主机时有解析的时候就比较快;此处可以多写几个,方便在后面增加虚拟机数量时备用;第一个 250 为真实主机的 IP 对应真实主机的主机名;
设定万成之后,便可以在真实主机上来连接虚拟机;设定虚拟机的名称为 server1 ;
由于开机设定 selinux 只是临时的,需要编辑 /etc/selinuc/config
文件,内容如下所示,将SELINUX修改为 disbaled ;(如果 selinux 开启对后期的服务组件有很大的影响);CE 中必须开启selinux,到了生产环境必须关闭,开启了selinux,就会有很多的安全策略,后期部署的服务都是开源软件,源码需要编译的,在系统上根本不存在相匹配的 selinux 的安全策略,因此,默认全部禁用的。
然后输入命令 systemctl disable --now firewalld
关闭火墙;然后输入命令 poweroff
来关闭这个母镜像,此后不需要再开启。
输入命令 virt-sysprep -d rhel7.6-new
来删除所有缓存;根据提示需要安装闭 bug 的指令,依次安装完毕即可删除所有缓存;
注:rhel7.6-new 是虚拟机的真实名字,如果不记得要打开虚拟机管理界面来查看。
清理完成之后的母镜像还是 21G ,此时输入命令 virt-sparsify --compress rhrl7.6-new.qcow2 new.qcow2
将母镜像压缩为 new.qcow2 ;
如图所示压缩之后的大小只有 558M,此时便可以删除未压缩的母镜像来缓解内存压力;还需要用在虚拟机管理界面中删除 21G 的虚拟机;
根据压缩后的母镜像来创建虚拟机的快照,需要几个就可以照几个;
输入命令 qemu-img info demo2
便可以查看快照信息,可以看到其是来源是 new.qcow2 ;此时查看其大小只有 196k;
注:用 qemu-img info demo2
便可以查看快照信息时,虚拟机不能开启。
选择要安装的快照文件;依次选择 demo1 和 demo2 ;
由于快照后安装的虚拟机的信息都是和母镜像内容一致的存在,所以此处只为 demo 2 做修改;用超级用户登陆,修改主机名为 server2;
修改 IP 为172.25.25.2 ,和之前在封装虚拟机时写入 /etc/hosts
中的内容相对应;
然后输入命令 systemctl restart network
来重启网络。
至此,虚拟机的封装完毕,根据压缩后的母镜像安装了两台虚拟机,后面根据需要可以继续根据母镜像做快照,来满足需求。