加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux – 准备虚拟设备

发布时间:2021-03-15 03:30:01 所属栏目:Linux 来源:网络整理
导读:在将正在运行的虚拟机转换为OVA(可再发行的虚拟设备)之前,需要做些什么来确保它处于就绪状态,以便OVA的实例不会带来构建过程中不必要的或可能具有破坏性的错误?这就是我到目前为止所拥有的.我错过了什么吗?如果这已经得到答案或者有一个最佳通用实践文档

在将正在运行的虚拟机转换为OVA(可再发行的虚拟设备)之前,需要做些什么来确保它处于就绪状态,以便OVA的实例不会带来构建过程中不必要的或可能具有破坏性的错误?这就是我到目前为止所拥有的.我错过了什么吗?如果这已经得到答案或者有一个最佳通用实践文档,我会欣赏指向正确方向的指针.谢谢.


#################################
##
## Get all packages up2date and 
## clean out any cruft in the 
## local packages
##
#################################
yum -y update ;
yum clean all ;


#################################
##
## Get rid of the signs I was 
## tinkering with this
##
#################################
[[ -a /etc/issue-original,v ]] && unlink /etc/issue-original,v ;
[[ -a /etc/issue,v ]] && unlink /etc/issue,v ;
ci -u /etc/issue ;



#################################
##
## Remove the host-keys to they
## will be regenerated when the
## new VM is spun-up
##
## Also make sure I remove any 
## personal keys I may have been
## using while setting up
##
#################################
find /etc/ssh/*host* |xargs unlink ;
find /root/.ssh/ -type f |xargs unlink ;
find /home/*/.ssh/ -type f |xargs unlink ;



#################################
##
## Get rid of the use of UUID in 
## FSTAB and any NIC configuration
## so the new VM can find then when
## the UUIDs are regenerated 
##
## Since we use LVM,only the /boot
## slice is a direct slice reference
## the rest are logical volumes
##
#################################
sed -i -e 's/UUID=[0-9a-f-]*s//dev/sda1t/' /etc/fstab ;
sed -i -e '/^UUID=[0-9a-f-]*.*/d' /etc/sysconfig/network-scripts/ifcfg-eno* ;
sed -i -e '/^UUID=[0-9A-F-]*.*/d' /etc/sysconfig/network-scripts/ifcfg-eno* ;
find /etc/udev/rules.d/ -iname '70*net*' |xargs unlink ;


#################################
##
## Let the NTP daemon know to 
## expect a big jump in time,so 
## he doesn't freak out. Also let
## him know that if the walls melt,## it is the acid,speaking and 
## he'll be alright
##
#################################
[[ -a /etc/ntp.conf ]] && 
  [[ "$(head -1 /etc/ntp.conf)" == "tinker panic 0" ]] || 
  sed -i -e '1itinker panic 0n' /etc/ntp.conf ;



#################################
##
## Trunate the command-histories
## because the learning-process
## can contain some embarrassing
## mistakes,some of which are 
## also bad opsec
##
#################################
>/root/.bash_history ;
>/home/*/.bash_history ;
>/root/anaconda-ks.cfg ;



#################################
##
## Lastly,instruct the OS to redo
## the initial setup and put back
## that new-machine-smell
##
#################################
sys-unconfig ;

解决方法

我现在无法访问当前的清理脚本,但我们考虑的一件事是可以部署设备而无需运行正确的自定义步骤.这意味着,例如,原始图像上的主机名可能存在,并且必须在关闭之前重置.我们通常将我们设置为localhost.

考虑到这一点,这些是您可能需要处理的额外步骤

>清理/ etc / hosts,/ etc / resolv.conf,/ etc / sysconfig / network中的任何自定义值
>除了删除ifcfg文件外,不要忘记删除任何路由文件(/ etc / sysconfig / network-scripts / route-eno *),如果有的话
>旋转并清理每个日志文件,审核日志和wtmp文件(不要删除wtmp文件,只需要cat / dev / null> / var / log / wtmp),这样它们就会空着
>清理/ var / tmp和/ tmp
>清理vmware配置日志(如果有)(iirc,/ var / log / vmware-imc / *)
>如果您将模板注册到RH Satellite,SpaceWalk,SuSE Manager或RHN本身,请确保将/ etc / sysconfig / rhn或类似版本恢复为默认值.从经验来看,这些都是一个坏主意.我们通常只是在第一次创建图像时进行备份,而在关闭图像时返回mv.如果您的环境使用它,/ etc / sysconfig / osad也是如此.
>删除可能已创建的任何额外用户,以及影子文件上的每个单个密码
>确保初始化,首次启动,部署后自定义脚本实际设置为在首次启动时运行.

最后,但并非最不重要的是,您可以将每个文件系统以及额外未使用的VG空间归零,这样您就可以更好地压缩图像.我们有一个进入每个文件系统的脚本,dd是一堆零,直到它填满,然后删除文件.对于具有空白空间的VG,创建一个填充100%FREE的LV,将其清零并将其删除.完成这些最后步骤(关闭之前的最后一步)后,您可以根据您正在创建的图像类型使用技巧:

>对于VMWare,将映像克隆到新VM,目标设置为精简配置.执行此操作时,所有连续的零将转换为空
>对于openstack / kvm映像,您可能希望使用qemu-img将它们转换为qcow2(如果您的提供者支持它),并启用compress标志:qemu-img convert -f raw -O qcow2 -c source.raw destination. qcow2

我们从这个过程中得到的一件事是,每当我们通过一个新的图像循环运行时,我们就会知道我们可以添加的新东西,通常只有在它发布之后.这会添加到下一个周期,依此类推.

编辑:根据“每次我们学到新东西”的精神,上次添加了以下步骤:

>百胜历史新> yum重新安装baseystem -y

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读