• KVM环境下制作CentOS7 qcow2格式镜像


    下面介绍CentOS7 KVM环境下制作CentOS7 qcow2格式镜像

    如果是CentOS7 KVM环境是VMware虚拟机,需要CPU开启虚拟化

    1、配置yum镜像源

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
    yum clean all
    yum makecache
    

    2、安装kvm qemu-img libvirt kvm虚拟化所需环境组件

    yum -y install qemu-kvm  qemu-img kvm qemu-kvm-tools libvirt  bridge-utils
    另外还需要安装virt-*
    yum install virt-*

     

    3、启动libvirtd

    systemctl enable libvirtd
    systemctl start libvirtd
    echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
    sysctl -p
    

    4、上传原版CentOS ISO镜像到/data目录

    5、先创建qcow2镜像文件

    qemu-img create -f qcow2 /data/CentOS7_mini.qcow2 20G
    

    6、创建KVM虚拟机

    virt-install --name CentOS7_mini --ram 4096 --vcpus 4 --os-type linux --os-variant rhel7 --arch=x86_64 --network network=default,model=virtio --disk path=/data/CentOS7_mini.qcow2,format=qcow2 --location /data/CentOS-7-x86_64-Minimal-1908.iso --console pty,target_type=serial   --graphics vnc,listen=0.0.0.0,port=7788
    

    使用UltraVNC工具连接宿主机的VNC:7788端口,并完成系统的安装,就不详细介绍安装步骤了

     

     系统安装略... 安装完后 reboot。

    注意点击reboot,注意并不会重启,需要我们手动启动:

      1. virsh list --all 查看镜像

      2. virsh start xxx 启动镜像

    7、等待虚拟机安装完后,登录查看相关IP磁盘分区信息

     vnc连接宿主机7788端口

    8、ssh登录虚拟机进行定制、优化等等(可以省略)

    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
    curl -o /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
    yum install -y acpid net-tools
    sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth*
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    setenforce 0
    systemctl disable firewalld
    systemctl stop firewalld
    

    9、安装ACPI服务

    启动后,你可能需要手动配置你的虚拟机的网络。为了让虚拟化层能重启和关闭虚拟机,必须在虚拟机内安装并运行 acpid 服务。
    在 CentOS虚拟机内运行以下命令安装 ACPI 服务并配置为系统启动时自动启动。
    
    # yum install acpid
    # systemctl enable acpid
    

    10、配置获取metadata

    yum install cloud-init
    

    10、清除MAC地址信息

    操作系统会在/etc/sysconfig/network-scripts/ifcfg-eth0 和
    /etc/udev/rules.d/70-persistent-net.rules 这类文件记录下网卡MAC地址,但是,虚拟机的网卡MAC地址在每次虚拟机创建的时候都会不同,因此这些信息必须从配置文件删除掉。

    11、其他标准化操作..略

    12、收尾工作

    最后,你可以关闭虚拟机了,如果以后不在需要该虚拟机也可以直接删除。建议是保留,方便后期进行虚拟机镜像的定制。

     

    13、定制化之后关机

    history -c
    poweroff
    

    14、virt-sysprep -d 清理机器信息

    #如果没有virtsysprep命令,安装下
    yum whatprovides */virt-sysprep
    yum install libguestfs-tools -y
    #清理虚机信息
    virt-sysprep -d 虚拟机名
    virt-sysprep -d CentOS7_mini
    

    15、virt-sparsify compress压缩镜像

        virt-sparsify时可能因为默认的/tmp空间不足,会提示tmp不足,可以提前定义好tmp目录

    mkdir /data/tmp
    chmod 777 /data/tmp/
    export TEMP=/data/tmp
    export TMPDIR=/data/tmp
    echo 'export TEMP=/data/tmp' >> /etc/profile
    echo 'export TMPDIR=/data/tmp' >> /etc/profile
    source /etc/profile
    
    #镜像压缩
    virt-sparsify --compress /data/CentOS7_mini.qcow2 /data/centos7_mongodb4.2.qcow2
    ls
    #查看压缩后的镜像文件
    2.4G    CentOS7_mini.qcow2
    1.1G    centos7_mongodb4.0.qcow2
    

    可以看到压缩后的centos7_mongodb4.0.qcow2文件只有1.1G左右(备注,我这个系统镜像搭载了mongodb服务,不是单纯的系统镜像)

    16、测试镜像文件

    #测试镜像是否可用
    virt-install --virt-type kvm --name liuxd_image --ram 4096 --vcpus=4 
     --import 
     --disk path=/data/centos7_mongodb4.0.qcow2,format=qcow2 
    --network network=default,model=virtio 
     --graphics vnc,listen=0.0.0.0,port=7799 
     --os-type=linux

    vnc连接登录后,qcow2镜像正常可用,那么qcow2镜像就制作完成了

    17、上传镜像到Glance

    # glance image-create --name "CentOS-7-x86_64" --disk-format qcow2 --container-format bare --file /tmp/CentOS-7-x86_64.qcow2 --visibility public --progress

    18、备注相关

    通过virt-install 安装镜像后,后面启动镜像,直接 virsh start image-name即可。
    #查询镜像
    virsh list --all
    #启动镜像
    virsh start xxx
    #网络
    通过桥接的方式,宿主机可以和虚机直接通信。
    查看宿主机网络,可以看到有一个 virbr0 ,虚机的网段跟他是一个网段。
    
    

     

    **************************************************************************************
    当你的才华还撑不起你的野心的时候,你就应该静下心来学习;当你的能力还驾驭不了你的目标时,就应该沉下心来,历练;梦想,不是浮躁,而是沉淀和积累,只有拼出来的美丽,没有等出来的辉煌,机会永远是留给最渴望的那个人,学会与内心深处的你对话,问问自己,想 要怎样的人生,静心学习,耐心沉淀,送给自己,共勉。
    **************************************************************************************
  • 相关阅读:
    SQL Server 2008中的FileStream支持 (转)
    解决SQL Server (MSSQLSERVER) 服务因 3417 (0xD59) 服务性错误而停止 .
    SQL Server 2008: CDC和Change Tracking
    无法升级数据库 'SchoolPlatForm1',因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。 (Microsoft SQL Server,错误: 3415)
    在eclipse中将android项目生成apk并且给apk签名
    Android实现左右滑动效果
    Java Web开发中路径问题小结
    java的事务处理
    离线安装Eclipse的Android ADT开发插件
    jsp母版页组装
  • 原文地址:https://www.cnblogs.com/macoffee/p/14080781.html
Copyright © 2020-2023  润新知