Linux (redhat)封装虚拟机镜像


一、修改主机名

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


二、配置网络

  • 虚拟机
[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 ~]# 

三、配置 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 ~]# 

  • 虚拟机
[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


四、制作成镜像

  • 清理虚拟机临时及缓存文件: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 ~]#

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




Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐