通常云服务商提供的多为基础镜像主机,无法定制系统环境。

本篇主要为了解决项目上云过程有自定义镜像需求以达到快速部署集群需求以节约时间成本的场景

如:项目镜像需要集成k8s、agent脚本等各种集成场景。

本篇为新手入门向的基础教程,详细命令可参考:

libvirt命令帮助手册——筑梦之路_筑梦之路的博客-CSDN博客

准备环节:

一个VNC工具,强烈建议用mobax

一个vmware

1,电脑上装个vmware,并且用镜像起个linux系统。建议单独给这个台机器再单独挂个50G的盘把一会起虚机用镜像放里面(注意在处理器那里打开虚拟化)

Index of /centos-vault/7.6.1810/isos/x86_64/ 上古镜像下载地址

附,阿里云镜像站CENTOS7.9镜像下载地址:https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso

2.建议装个GUI界面,系统安装结束,进入系统,这里用要改用阿里的yum源的话建议先用原来yum源install一个wget,install -y install wget

然后直接

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

或自行更改/etc/yum.repos.d源(可以使用rm -rf /etc/yum.repos.d/*清空原系统自带yum源)

注(如没有,可无视这段跳到3.):如果你像我一样还没yum wget就先把yum的.repo文件全删了,导致vmware-tools也没法安装,就建议改一下vmware当前虚拟机的网卡配置,改成仅主机模式和你个人电脑在同一个网络内,然后配置一下linux的/etc/sysconf/network-scripts/目录下的ifcfg-xxx;我这里是ifcfg-ens33,网卡配置文件。

然后BOOTPROTO=如果是none的话改成static(静态IP)

prefix改成24或者其他,只要别是默认的32位掩码就行..

onboot=yes(开机时候启动本网卡)

IPADDR=192.168.110.110(改一个IP,和你本机电脑的vmware虚拟网卡要在同一个网段)

然后wq!保存

systemctl restart network重启网卡

再配一下你个人电脑vmware的虚拟网卡就OK,注意掩码别搞错,或者和虚拟机IP冲突建议用24掩码,就是255.255.255.0,能ping通就OK,然后用xshell或者xmoba ssh过去可以复制粘贴yum源了,灰常方便。

3.yum kvm虚拟化组件

这里命令照搬参考CentOS7 KVM环境下制作qcow2格式镜像 - 云+社区 - 腾讯云

简单解释一哈kvm:kvm(底层虚拟化)qemu(辅助kvm虚拟化)libvirt(承载于kvm-qemu之上负责管理虚拟机) virt(最小化虚拟机控制台)

yum -y install qemu-kvm qemu-img kvm qemu-kvm-tools libvirt bridge-utils

yum install virt-*

systemctl enable libvirtd (默认启动虚拟机管理服务)

systemctl start libvirtd (启动服务)

echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf (ip转发)

sysctl -p (重新加载本机系统参数)

4.上传要做的qcow2镜像源iso文件到这台主机(我上传到的目录是/data)

试了一下没有办法直接调用qume-kvm 软连接一下

ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm

创建一个给一会启动的虚拟机存储的地方 我这里创建的40G 一会镜像也这么大

(设定的大小决定上云后系统盘大小,以预防系统盘满了无法写入扩容增加成本,建议40G+,)

qemu-img create -f qcow2 CentOS7.6_x86.qcow2 40G

这里写三种虚拟机网络的情况:

1.default (默认)2.bridge(网桥)3.bridge(网桥模式访问公网)

其中网卡启动时候使用default比较无脑就带过了

重点在bridge适用场景更广一些,和宿主机共享同一网络,可操作性性更高

(一)default (默认)情况

启动虚拟机(蓝色背景文字,请根据自己路径或情况写)

virt-install --name centos7.6 --ram 2048 --vcpus 2 --os-type linux --os-variant rhel7.6 --arch=x86_64 \
--network network=default,model=virtio --disk path=/data/CentOS7.6_x86.qcow2,format=qcow2 --location /data/CentOS-7-x86_64-Minimal-1810.iso\
--console pty,target_type=serial\
--graphics vnc,listen=0.0.0.0,port=7788

这里我用mobax启动虚拟机时候启动X服务自动弹出VNC;或者用其他vnc工具连接宿主机的7788端口都可以,下文就不赘述了。

(二)bridge (网桥)情况

本段网桥配置参考版权声明:CSDN博主「wayees」,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41248237/article/details/115443878

首先确定宿主机的virbr0 NAT网卡是否正常

ifconfig virbr0   没有ifconfig可以用 ip a 看看有没有这张网卡就可以

没起来的话就 ifup 网卡名 起来

确定virbr0网卡正常之后 因为在装组件的时候不会自动生成他的配置文件 故需要手动写入一下网卡的配置文件

vi /etc/sysconfig/network-scripts/ifcfg-br0

BOOTPROTO=static
NAME=br0
DEVICE=br0
TYPE=Bridge
IPADDR=(建议和你个人电脑相同的网段)
NETMASK=255.255.255.0(根据网络场景写)
GATEWAY=(根据网络场景写)
ONBOOT=yes

然后配置宿主机原生lo之外的另一张网卡,我这里网卡名叫ens33

配置ens33

TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0

systemctl restart network 重启网卡

virt-install --name centos7.6 --ram 2048 --vcpus 2 --os-type linux --os-variant rhel7.6 --arch=x86_64 \
--network bridge=br0,model=virtio --disk path=/data/CentOS7.6_x86.qcow2,format=qcow2 --location /data/CentOS-7-x86_64-Minimal-1810.iso\
--console pty,target_type=serial\
--graphics vnc,listen=0.0.0.0,port=7788

注:网桥模式的虚拟机可以配置虚拟机网卡和宿主机br0同一网段IP,同时宿主机和个人电脑也是同一个网段,便可以达到个人电脑可以访问到虚拟机效果

#宿主机
BOOTPROTO=static
NAME=br0
DEVICE=br0
TYPE=Bridge
IPADDR=192.168.110.110
NETMASK=255.255.255.0(根据网络场景写)
#GATEWAY=(根据网络场景写)
ONBOOT=yes
--------------------
#虚拟机
BOOTPROTO=static
NAME=ens3
DEVICE=ens3
TYPE=Ethernet
IPADDR=192.168.110.111
NETMASK=255.255.255.0(根据网络场景写)
#GATEWAY=(根据网络场景写)
ONBOOT=yes

随后重启虚拟机网卡

我的环境(供参考)

宿主机br0:192.168.110.110

虚拟机ens3 :192.168.110.111,

个人电脑vm网卡:192.168.110.252

左侧宿主机        右侧个人电脑

能ping通 此刻个人电脑可以访问到虚拟机

(三)bridge(网桥模式访问公网)

VMware宿主机的br0网卡变更为可以访问到公网的状态

可以在物理直连模式使用网关上网,我这里用的NAT模式

宿主机能够上网之后开始配置虚拟机上网

虚拟机也有多种情况可配置上网,NAT、直连网关等等

这里只记录桥接这一种情况

vi /etc/sysconfig/network-scripts/ifcfg-br0  如(二)写一下配置文件 ,不同点在于模式改为DHCP

BOOTPROTO=DHCP
NAME=br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes

接下来如(二)将vm自带的网卡ens33绑到br0    ↓

TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0

systemctl restart network重启网卡后

启动主机  详见(二)的virt-install bridge模式主机拉起命令

安装步骤这里就略过了,进入后查看ens3网卡配置

然后测试ping 8.8.8.8

network根据自己情况可以选择网桥或者其他模式;

5.根据自己情况对虚拟机定制一下配置,可以改改yum文件或者关闭selinux之类的。

6.清一下虚拟机历史记录history -c,然后poweroff关机即可

7.宿主机 用virsh list --all看虚拟机名字

virt-sysprep -d 虚拟机名 清一下机器信息

而后对镜像进行空隙压缩

virt-sparsify --compress /data/CentOS7.6_x86.qcow2 /data/centos.7.6.qcow2

virt-sparsify --compress /xxx/源镜像.qcow2 /xxxx/压缩生成镜像.qcow2

8.测试压缩后镜像是否能启动virt-install --virt-type kvm --name Centos7.6 --memory 2048 --vcpus=4  --import --disk path=/data/centos.7.6.qcow2,format=qcow2  --graphics vnc,listen=0.0.0.0,port=7788 --os-type=linux

(如提示ERROR    internal error: qemu unexpectedly closed the monitor: Cannot set up guest memory 'pc.ram': Cannot allocate memory
Domain installation does not appear to have been successful,则代表本宿主机启动虚拟机所需的内存不足,须将memory调小)

测试了一下登陆没问题,这一步我的vnc卡住了..

在宿主机virsh shutdown 虚机名 可以给虚机关机,同理virsh start 主机名 可以把离线的主机拉起来

virt-sysprep -d 主机名 再清一哈

弹出VNC的login界面,即代表测试无误。

附vritsh基础指令

virsh list --all 可以查看当前主机上所有虚拟机

将虚机拉起:virsh start 虚机名————仅在虚机关机的情况下

关机:virsh shutdown 虚机名————正常关机

断电:virsh destroy 虚机名————可以理解为强制关机 直接把虚机干碎关机

删除虚拟机:virsh undefine 虚机名    将虚拟机从宿主机删除

9.到此qcow2就搞完了,拖出去用就可以。

windows个人电脑上用vmware作为宿主机制作qcow2镜像相关推荐

  1. 通过共享文件夹实现虚拟机VMware与宿主机文件共享

    通过共享文件夹实现虚拟机VMware与宿主机文件共享 说明: 虚拟机系统:Ubuntu 16.04 宿主机系统:Windows 10 通过共享文件夹实现虚拟机VMware与宿主机文件共享 第1步:宿主 ...

  2. VMware与宿主机文件夹共享、虚拟机磁盘映射

    文章目录 一.要解决的问题 二.虚拟机磁盘映射 三.VMware与宿主机文件夹共享 一.要解决的问题 在VMware的win7虚拟机上使用phpstudy搭建网站服务器(使用wordpress模板), ...

  3. Vmware 占用宿主机硬盘空间只增不减

    问题: vmware 占用硬盘空间只增大不减少.即使你删除虚拟机系统里面的文件,占用宿主机的硬盘空间也不释放.用了一段时间后空间不够了. 解决办法: 方法一: 把一部分*sxxx.vmdk文件剪切到其 ...

  4. docker连不上宿主机mysql_宿主机连接docker中的mysql

    宿主机连接docker中的mysql dokcer安装mysql docker run \ --name mysql \ -v $PWD/mysql:/var/lib/mysql \ -p 3306: ...

  5. Vmware Esxi宿主机及虚拟机网络配置

    1.网络规划 ESXI管理网段==>10.10.10.0/24==>vlan10 虚拟机网段==>10.10.20.0/24==>vlan20 2.当前ESXi主机使用两块物理 ...

  6. 虚拟机VMware和宿主机连接

    文章目录 一.NAT连接 1.查看宿主机IP地址 2.设置VMnet8信息 2.设置虚拟机模式 3.设置虚拟网络 4.设置虚拟机内系统IP(Centos8.2为例) 4.1.图形化操作 4.1.1DH ...

  7. 【VMware】宿主机连接wifi,虚拟机中的Linux系统配置连接wifi

    环境描述 宿主机:Windows 10 64bit 虚拟机:Centos 第一步:虚拟机设置 选择连接方式为NAT 第二步:设置宿主机的wifi 控制面板>>网络和Internet> ...

  8. VMware与宿主机实现共享文件

    1.右键点击设置 2.进行相关配置 3.进入虚拟机,配置hgfs共享文件夹的权限是当前普通用户(因为我的开发环境不是root) cd /mnt // 使用ll命令查看是否有hgfs文件夹,如果没有则 ...

  9. 如何在Windows上的VMware上安装macOS High Sierra Final

    在最近的WWDC17活动中,苹果公司做出了一些重大的公告.其中之一是macOS High Sierra 10.13 Final的发布.它已经过改进,可以为用户提供任何Mac上最可靠和最响应的功能.它可 ...

最新文章

  1. R语言构建回归模型并获取对于新数据预测的预测区间实战:给出预测区间而不是一个具体的预测值、置信区间与预测区间的异同
  2. zabbix mysql 表空间_Zabbix监控达梦数据库表空间
  3. Qt lnk1158 无法运行rc.exe 解决
  4. 解决 502、504 Gateway Time-out(nginx)
  5. getbean方法找不到bean_iphone手机静音找不到怎么办 iphone静音找不到解决方法【图文】...
  6. 从BIOS自检报警声判断电脑故障
  7. 使用javamail 发送邮件
  8. Linux内存管理:分页
  9. Java游戏开发 —— 俄罗斯方块
  10. CRMEB商城公众号H5前端模板修改,nodejs使用教程
  11. tms320c54x汇编语言,TMS320C54x DSP原理及应用
  12. 干货资源共享之阿里云大学的学习路线和免费课程
  13. 分类器集成和非均衡分类
  14. UDA/语义分割-ColorMapGAN: Unsupervised Domain Adaptation for Semantic Segmentation Using Color Mapping G
  15. Android自动背光调节机制分析
  16. Ubuntu12.10 使用DNW传数据 进行ARM开发板烧写
  17. 可喜可贺,暴雪即将收购第一家工作室Proletariat,魔法吃鸡停运
  18. 华为路由器:GRE技术
  19. 网上书城(搜索页,购物车)
  20. 关于引用elasticsearch-rest-high-level-client版本冲突问题

热门文章

  1. Mysql 数据库中怎么实现分页?
  2. android 华为手机导航栏适配
  3. vue页面的渲染过程
  4. 为什么阿里巴巴不喜欢招聘应届生?
  5. python之后台管理员管理前台会员信息
  6. linux tail -f命令
  7. 「架构」全链路异步模式
  8. 使用IDEA打jar包步骤
  9. Python灰帽子:黑客与逆向工程师的Python编程之道
  10. 【MATLAB】通过MATLAB提供的函数产生矩阵