摘要:要求创建rhel7版本虚拟机,下载RHEL7.6版本 iso文件,使用iso方式安装虚拟机,并且将其封装其为母镜像,这样再创建其他虚拟机时可以直接用母镜像来快照虚拟机。

步骤:

1、下载RHEL7.6版本的iso文件

2、开始安装

选择从iso安装

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_linux

选择下载的iso文件

 

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_封装_02

 内存2048MB;cpus=2

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_封装_03

存储20GB

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_封装_04

 虚拟机名字自定义,取消Customize configuration before install(安装前自定义配置)选项

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_重启_05

选择安装INSTALL选项

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_封装_06

选择ENGLISH

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_yum源_07

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_封装_08

 DATE&TIME点击中国地图(上海时区)

KDUMP内存恢复,点进去关掉,浪费内存

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_yum源_09

 INSTALLATION DESTINATION分区自动分选默认即可

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_重启_10

 ROOT PASSWORD设置root用户密码

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_linux_11

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_yum源_12

 3、封装

安装完成后封装,用来后面快照创建更多虚拟机。

重启虚拟机,在重启界面按e编辑

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_linux_13

把红线部分ro改为rw,并添加在其后面rd.break。ctrl +x退出

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_yum源_14

输入chroot /sysroot/ 进入sh-4.2#

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_重启_15

 关闭selinux,vi etc/sysconfig/selinux禁掉selinux,改为disbaled

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_yum源_16

 

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_linux_17

passwd可以改超户密码(之前安装的时候已经设置了密码,若之前没设置,可以采用此方式设置)

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_封装_18

 exit退出,logout登出

登陆root用户,操作前检查:getenforce检查selinux是否关掉;关掉防火墙开机自启动;关掉网络管理开机自启(个人喜好)

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_yum源_19

 更改网卡:ip addr查看网卡名字为eth0(传统以太网命名),对应更改文件为ifcfg-eth0(如果网卡名字为ens等,文件名字不为-eth格式,此时变更网卡名字为eth0:vi /boot/grub2/grub.cfg里更改相关内容重启网络即可,如下图所示)

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_linux_20

 vi静态更改eth0内容:设备,ip,子网掩码,网关,DNS

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_linux_21

 重启网络使更改生效

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_重启_22

 查看

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_封装_23

4、在本机38中ssh虚拟机

失败是因为虚拟机桥接有问题

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_重启_24

 虚拟机虚拟网卡要桥接到br0(本机38)上,更改虚拟机网卡参数:

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_重启_25

 更改完成后,本机查看虚拟网卡vnet0在br0上,桥接成功

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_封装_26

本机 重新ssh虚拟机

本机hosts文件里之前用过此地址172.25.254.1给其他虚拟机,现在变了虚拟机,本机hosts文件中vi /root/.ssh/know_hosts删掉172.25.254.1此行公钥即可,会重新缓存新的公钥。然后成功ssh

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_yum源_27

更改虚拟机名称为server1;

在虚拟机中添加解析

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_封装_28

1表示宿主机38和虚拟机双向解析,加快ssh速度(hostname查看宿主机38名称为foundation38.ilt.example.com)

2添加虚拟机解析,多添加几个,此时封装的是母镜像,后面快照子镜像时,此文件相同,就不需要再添加解析了

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_重启_29

虚拟机中配置本地yum源

yum源在宿主机38中,将其挂载在apache发布目录上(/var/www/html/),浏览器可以搜到即可

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_yum源_30

 在虚拟机中指定位置创建yum源

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_重启_31

gpgcheck是gpg签名是否开启的选项名称,1是开启,0是不开启,一般内部部署软件包下载可以关掉。

基本地址baseurl=172.25.254.38/rhel7.6即宿主机38挂载到apache上的yum源

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_重启_32

 yum repolist列出所有仓库,虚拟机上成功添加本地yum源

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_重启_33

 虚拟机中安装常用包:

net-tools(常规网络工具netstat); wget下载工具;(lsof:list open files)列出当前系统打开文件的工具;lftp文件传输工具

yum install -y vim lsof wget net-tools lftp 

5、封装完毕,poweroff关闭虚拟机

6、宿主机38中清理虚拟机,压缩虚拟机硬盘文件

virt-sysprep -d base7.6清理虚拟机(临时文件等)

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_重启_34

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_封装_35

压缩虚拟机硬盘文件base7.6.qcow2(太大了21G),压缩时要保证缓存有21G,否则报错,由base7.6.qcow2压缩为base7.6-new.qcow2。

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_yum源_36

从21G缩小到571M

CentOS虚拟机直接将现有的系统环境文件打包成Docker镜像文件 把虚拟机打包成iso_封装_37