温馨提示×

Linux虚拟机如何进行模板创建

小樊
39
2025-11-16 13:34:04
栏目: 云计算

Linux 虚拟机模板创建全流程

一、核心概念与前置准备

  • 模板是已预配置好的虚拟机“蓝图”,用于快速批量创建相同配置的实例。制作前必须对源虚拟机进行封装(seal),清除只对该实例有效的信息(如 MAC 地址、主机名、SSH 主机密钥 等),以避免克隆后出现冲突。封装可通过手工清理或使用 sys-unconfig 触发系统在下一次启动时自动完成初始化任务。基于模板创建的新虚拟机将获得不同的 MAC 地址,但仍沿用模板的 NIC 类型与驱动

二、通用封装步骤(适用于大多数发行版)

  • 关机并快照:确保源虚拟机处于关机状态,先做快照以便回滚。
  • 清理网络持久化规则:删除 udev 生成的网卡绑定规则,避免克隆后网卡名或 MAC 冲突。常见路径与文件:
    • RHEL/CentOS 6:/etc/udev/rules.d/70-persistent-net.rules
    • RHEL/CentOS 7+、Ubuntu 等:/etc/udev/rules.d/-persistent-.rules
  • 清理网卡配置中的唯一标识:
    • 删除 ifcfg 文件中的 HWADDR=UUID= 等唯一项(如 /etc/sysconfig/network-scripts/ifcfg-eth0 或 ifcfg-ens*)。
  • 清理 SSH 主机密钥,确保克隆后每台机器拥有唯一密钥:
    • 执行:rm -f /etc/ssh/ssh_host_*
  • 处理主机名与网络配置:
    • 清空或模板化 /etc/hostname(或等效机制),避免克隆后主机名冲突。
    • 按需保留或模板化 /etc/hosts,确保 127.0.0.1 映射合理。
  • 可选的系统级初始化标记:
    • 创建文件 /.unconfigured 或使用 sys-unconfig 命令,使系统在下次启动时进入初始化向导(设置主机名、时区、root 密码、SSH 主机密钥等)。
  • 关机等待模板化:完成上述清理后再次关机,准备转换为模板。

三、在不同平台创建模板

  • oVirt/RHEV 平台
    • 前置:确认源虚拟机已关机并处于 Down 状态。
    • 操作:在管理门户选择源虚拟机 → 模板创建模板,填写名称/描述,选择磁盘格式(RAW/QCOW2)存储域,可勾选公共模板复制权限。创建期间虚拟机显示 Image Locked,耗时与磁盘大小及存储性能相关。模板就绪后,可在“模板”页或“虚拟机”页基于模板创建虚拟机
  • VMware vSphere/Workstation
    • 方式一(推荐):源虚机关机 → 在清单中右键源虚机 → 模板转换为模板
    • 方式二(克隆为模板):源虚机关机 → 右键源虚机 → 克隆 → 选择克隆为模板;按需选择完整克隆以避免共享磁盘导致的一致性问题。
  • Oracle VirtualBox
    • 思路:将配置好的虚机导出为 appliance(OVA/OVF),作为“模板”复用。
    • 操作:源虚机关机 → 菜单 文件导出虚拟电脑 → 选择保存路径与名称(如 Ubuntu-Template.ova)→ 完成导出。部署时可直接导入该模板,或“新建”时选择使用现有虚拟硬盘(VDI/VMDK)复用磁盘。

四、从模板部署与验证

  • 创建新虚机:在模板页或虚机页选择模板 → 创建虚拟机,按需调整 CPU/内存/磁盘/网络,完成网络与主机名初始化。
  • 首次启动检查:
    • 登录后确认 hostname 唯一、/etc/hosts 正确、IPMAC 无冲突。
    • 检查 SSH 主机密钥是否为新生成(/etc/ssh/ssh_host_* 应为新文件)。
    • 如使用了 sys-unconfig,按向导完成时区、root 密码、用户等初始化。
  • 清理与合规:
    • 清理历史日志与临时文件(如 /var/log/ 下历史轮转、/tmp),避免泄露模板信息。
    • 统一合规基线(如 NTP/chrony 时间同步、系统加固、必要的监控/代理客户端预装)。

0