搜索

第 4 章 克隆虚拟机

download PDF
创建客户机副本时有两种客户机虚拟机实例:
  • 克隆 是指单个虚拟机的实例。克隆可用于设置相同虚拟机的网络,也可以将它们分发到其他目的地。
  • 模板是虚拟机的 实例,设计为用作克隆的源。您可以从模板创建多个克隆,并对每个克隆进行小的修改。这对于查看系统中这些更改的影响非常有用。
克隆和模板都是虚拟机实例。它们之间的差别在于如何使用它们。
要使创建的克隆正常工作,在克隆之前,必须删除与正在克隆的虚拟机唯一的信息和配置。需要删除的信息会因使用克隆的方式而异。
要删除的信息和配置可在以下任意级别中:
  • 平台级别 信息和配置包括虚拟化解决方案分配给虚拟机的任何内容。示例包括网络接口卡(NIC)及其 MAC 地址的数量。
  • 客户机操作系统级别 信息和配置包括虚拟机中配置的任何内容。示例包括 SSH 密钥。
  • 应用程序级别 信息和配置包括在虚拟机上安装的应用程序所配置的所有内容。示例包括激活代码和注册信息。
    注意
    本章不包括有关删除应用级别的信息,因为信息和方法特定于每个应用。
因此,必须从虚拟机中删除一些信息和配置,而其他相关信息和配置必须使用虚拟化环境(如虚拟机管理器或 VMware)从虚拟机中删除。
注意
有关克隆存储卷的详情请参考 第 13.3.2.1 节 “使用 virsh 创建存储卷”

4.1. 为 Cloning 准备虚拟机

在克隆虚拟机前,必须在其磁盘镜像上运行 virt-sysprep 程序或执行以下步骤来准备:

过程 4.1. 准备虚拟机进行克隆

  1. 设置虚拟机

    1. 构建要用于克隆或模板的虚拟机。
      • 在克隆上安装所需的任何软件。
      • 为操作系统配置任何非唯一设置。
      • 配置任何非唯一应用设置。
  2. 删除网络配置

    1. 使用以下命令删除所有持久性 udev 规则:
      # rm -f /etc/udev/rules.d/70-persistent-net.rules
      注意
      如果没有删除 udev 规则,第一个 NIC 的名称可以是 eth1 而不是 eth0。
    2. 通过编辑 /etc/sysconfig/network-scripts/ifcfg-eth[x] 来删除 ifcfg 脚本中的唯一网络详情:
      1. 删除 HWADDR 和 Static 行
        注意
        如果 HWADDR 与新客户机的 MAC 地址不匹配,则会忽略 ifcfg。因此,务必要从文件中删除 HWADDR。
        DEVICE=eth[x]
        BOOTPROTO=none
        ONBOOT=yes
        #NETWORK=10.0.1.0       <- REMOVE
        #NETMASK=255.255.255.0  <- REMOVE
        #IPADDR=10.0.1.20       <- REMOVE
        #HWADDR=xx:xx:xx:xx:xx  <- REMOVE
        #USERCTL=no             <- REMOVE
        # Remove any other *unique* or non-desired settings, such as UUID.
        
      2. 确保 DHCP 配置仍不包含 HWADDR 或任何唯一信息。
        DEVICE=eth[x]
        BOOTPROTO=dhcp
        ONBOOT=yes
        
      3. 确保该文件包含以下行:
        DEVICE=eth[x]
        ONBOOT=yes
        
    3. 如果有以下文件,请确保它们包含相同的内容:
      • /etc/sysconfig/networking/devices/ifcfg-eth[x]
      • /etc/sysconfig/networking/profiles/default/ifcfg-eth[x]
      注意
      如果虚拟机使用了 NetworkManager 或任何特殊设置,请确保从 ifcfg 脚本中删除任何其他唯一信息。
  3. 删除注册详情

    1. 使用以下命令之一删除注册详情:
      • 对于 Red Hat Network(RHN)注册的客户机虚拟机,使用以下命令:
        # rm /etc/sysconfig/rhn/systemid
      • 对于 Red Hat Subscription Manager(RHSM)注册的客户机虚拟机:
        • 如果没有使用原始虚拟机,使用以下命令:
          # subscription-manager unsubscribe --all
          # subscription-manager unregister
          # subscription-manager clean
        • 如果使用原始虚拟机,请只运行以下命令:
          # subscription-manager clean
          原始 RHSM 配置集保留在门户网站中。要在克隆虚拟机后重新激活 RHSM 注册,请执行以下操作:
          1. 获取您的客户身份代码:
            # subscription-manager identity
            subscription-manager identity: 71rd64fx-6216-4409-bf3a-e4b7c7bd8ac9
            
          2. 使用获取的 ID 代码注册虚拟机:
            # subscription-manager register --consumerid=71rd64fx-6216-4409-bf3a-e4b7c7bd8ac9
  4. 删除其他唯一详情

    1. 使用以下命令删除任何 sshd 公钥/私钥对:
      # rm -rf /etc/ssh/ssh_host_*
      注意
      删除 ssh 密钥可防止 ssh 客户端不信任这些主机的问题。
    2. 删除任何其他特定于应用的标识符或配置,这可能在多台计算机上运行时造成冲突。
  5. 将虚拟机配置为在下一次启动时运行配置向导

    1. 将虚拟机配置为在下一次引导时运行相关的配置向导,方法是执行以下操作之一:
      • 对于 Red Hat Enterprise Linux 6 和以下项,使用以下命令在 root 文件系统中创建一个名为 .un configure 的空文件:
        # touch /.unconfigured
      • 对于 Red Hat Enterprise Linux 7,运行以下命令启用第一个引导和 initial-setup 向导:
        # sed -ie 's/RUN_FIRSTBOOT=NO/RUN_FIRSTBOOT=YES/' /etc/sysconfig/firstboot
        # systemctl enable firstboot-graphical
        # systemctl enable initial-setup-graphical
      注意
      在下次引导时运行的向导取决于已从虚拟机中删除的配置。另外,在第一次引导克隆时,建议您更改主机名。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.