AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 633683
Accepted
DTK
DTK
Asked: 2014-10-06 09:06:50 +0800 CST2014-10-06 09:06:50 +0800 CST 2014-10-06 09:06:50 +0800 CST

准备虚拟设备

  • 772

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

#################################
##
## 获取所有软件包更新日期和
## 清除所有垃圾
##本地包
##
#################################
yum -y 更新;
百胜清洁所有;


#################################
##
##摆脱我曾经的迹象
## 修补这个
##
#################################
[[ -a /etc/issue-original,v ]] && 取消链接 /etc/issue-original,v ;
[[ -a /etc/issue,v ]] && 取消链接 /etc/issue,v ;
ci -u /etc/问题;



#################################
##
## 删除他们的主机密钥
## 将在
## 新虚拟机启动
##
## 还要确保我删除任何
## 个人密钥我可能是
## 设置时使用
##
#################################
查找 /etc/ssh/*host* |xargs unlink ;
查找 /root/.ssh/ -type f |xargs unlink ;
查找 /home/*/.ssh/ -type f |xargs unlink ;



#################################
##
##去掉UUID的使用
## FSTAB 和任何 NIC 配置
## 所以新的虚拟机可以在什么时候找到
## UUID 被重新生成
##
## 因为我们使用 LVM,所以只有 /boot
## slice 是直接切片引用
## 其余为逻辑卷
##
#################################
sed -i -e 's/UUID=[0-9a-f-]*\s/\/dev\/sda1\t/' /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* ;
查找 /etc/udev/rules.d/ -iname '70*net*' |xargs unlink ;


#################################
##
## 让 NTP 守护进程知道
## 预计时间会有很大的飞跃,所以
##他没有吓到。也让
## 他知道如果墙壁融化,
## 它是酸,说话和
##他会没事的
##
#################################
[[ -a /etc/ntp.conf ]] && \
  [[ "$(head -1 /etc/ntp.conf)" == "tinker panic 0" ]] || \
  sed -i -e '1itinker panic 0\n' /etc/ntp.conf ;



#################################
##
## 截断命令历史
## 因为学习过程
##可以包含一些尴尬
## 错误,其中一些是
## 也是糟糕的操作安全
##
#################################
>/root/.bash_history ;
>/home/*/.bash_history ;
>/root/anaconda-ks.cfg ;



#################################
##
## 最后,指示操作系统重做
## 初始设置并放回
## 那种新机器的味道
##
#################################
系统取消配置;

linux
  • 1 1 个回答
  • 3945 Views

1 个回答

  • Voted
  1. Best Answer
    Guto Andreollo
    2014-12-04T16:47:28+08:002014-12-04T16:47:28+08:00

    我现在无法访问我们当前的清理脚本,但我们要考虑的一件事是可以在不运行适当的自定义步骤的情况下部署设备。这意味着,例如,原始图像上的主机名可能会继续存在,并且必须在关闭之前重置。我们通常将我们的设置为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或类似的恢复为默认值。根据经验,rm'ing 这些是一个坏主意。我们通常只在第一次创建映像时进行备份,并在关闭映像时将其备份。/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 重新安装基本系统 -y
    • 4

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve