• Linux (redhat)封装虚拟机镜像


    Linux (redhat)封装虚拟机镜像


    一、修改主机名

    • 虚拟机
    [root@localhost ~]# hostnamectl set-hostname server1
    [root@localhost ~]# vi /etc/selinux/config
    "SELINUX=enforcing  ->  SELINUX=disabled"
    [root@localhost ~]#
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    二、配置网络

    • 虚拟机
    [root@server1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
    [root@server1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
    NAME=eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=none
    IPADDR=192.168.0.1
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.250
    [root@server1 ~]# vi /etc/resolv.conf
    [root@server1 ~]# cat /etc/resolv.conf
    nameserver 114.114.114.114
    [root@server1 ~]# echo "server1 192.168.0.1" >> /etc/hosts
    [root@server1 ~]# systemctl disable --now firewalld
    [root@server1 ~]# systemctl restart network
    [root@server1 ~]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    三、配置 yum 源

    • 真实主机
    [root@localhost ~]# yum install -y httpd
    [root@localhost ~]# systemctl start httpd
    [root@localhost ~]# mkdir /var/www/html/repo-local/
    [root@localhost ~]# mount /iso/rhel-7.6.iso /var/www/html/repo-local/
    [root@localhost ~]# echo "/iso/rhel-7.6.iso	/var/www/html/repo-local	iso9660		defaults	0	0" >> /etc/fstab
    [root@localhost ~]# firewall-cmd --permanent --add-masquerade
    [root@localhost ~]# firewall-cmd --permanent --add-service=http
    [root@localhost ~]# firewall-cmd --reload
    [root@localhost ~]# 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 虚拟机
    [root@server1 ~]# vi test.repo
    [root@server1 ~]# cat test.repo
    [Linux-repo-local]
    name=local-repo
    baseurl=http://192.168.0.250/repo-local/
    gpgcheck=0
    enabled=1
    [root@server1 ~]# yum repolist
    [root@server1 ~]# yum makecache
    [root@server1 ~]# yum install -y bash-* vim
    [root@server1 ~]# poweroff
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    四、制作成镜像

    • 清理虚拟机临时及缓存文件:virt-sysprep -d 虚拟机名

    • 压缩输出文件:virt-sparsify --compress rhel7.6.qcow2 rhel7.6-base.qcow2

    • virt-sparsify:回收 Empty 磁盘空间。
      virt-sparsify 命令行工具可用于生成虚拟机磁盘(或任何磁盘镜像)稀疏。这也被称为精简配置。磁盘镜像上的可用磁盘空间转换为主机上可用空间。
      virt-sparsify 命令可以处理大多数文件系统,如 ext2、ext3、ext4、btrfs、NTFS。它还可用于 LVM 物理卷。virt-sparsify 可以针对任何磁盘镜像操作,而不只是虚拟机磁盘镜像。
      [注]:–compress’ 压缩输出文件。这只有在 输出格式是 ‘qcow2’ 时有效。这个选项不能与 ‘–in-place’ 选项一起使用。

    • virt-sysprep:重置虚拟机设置。
      virt-sysprep 命令行工具可用于重置或取消配置客户机虚拟机,以便从中克隆。这个过程涉及删除 SSH 主机密钥、删除持久网络 MAC 配置和删除用户帐户。virt-sysprep 还可以通过添加 SSH 密钥、用户或徽标来自定义虚拟机。根据需要,可以启用或禁用每个步骤。

    • 真实主机操作:

    [root@localhost ~]# yum install -y libguestfs-tools
    [root@localhost ~]# cd /var/lib/libvirt/images/
    [root@localhost ~]# virt-sysprep -d rhel7.6
    [root@localhost ~]# virt-sparsify --compress rhel7.6.qcow2 rhel7.6-base.qcow2
    [root@localhost ~]# ls
    rhel7.6.qcow2 rhel7.6-base.qcow2
    [root@localhost ~]# qemu-img create -f qcow2 -b rhel7.6-base.qcow2 test.qcow2
    [root@localhost ~]#
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    参考文献 :https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/virt-sparsify




  • 相关阅读:
    python自动更新pom文件
    企业电子招标采购系统源码Spring Boot + Mybatis + Redis + Layui + 前后端分离 构建企业电子招采平台之立项流程图
    流插入操作符 (<<) 重载 —— 实现自定义类型数据的打印
    动手学深度学习(pytorch)学习记录4-自动微分[学习记录]
    算法学习笔记(29):分块
    小飞学习Docker之使用容器
    更新Xcode 版本后运行项目出现错误 Unable to boot the Simulator 解决方法
    Git的概念和使用方法
    构建高性能Linux Virtual Server(LVS)集群
    Android广播BroadcastReceiver介绍
  • 原文地址:https://blog.csdn.net/qq_47714288/article/details/126559924