准备 Red Hat/CentOS 7 模板的推荐方法是什么?

准备 Red Hat/CentOS 7 模板的推荐方法是什么?

如果我需要从模板部署 Red Hat 7,我想采取建议的步骤来清洁我的“黄金映像”。它应该启动到首次启动提示并指导用户完成典型步骤。

在 Red Hat 5/6 中,我按照提供的文档由供应商提供。但是,我找不到 Red Hat 7 的等效版本。具体来说,touch /.unconfigured不会触发首次启动设置。

9.3.1. 封装 Linux 虚拟机以将其部署为模板

概括
在将 Linux 虚拟机制作成模板之前,先将其通用化(封装)。这可以防止从模板部署的虚拟机之间发生冲突。

过程 9.6. 封装 Linux 虚拟机

登录虚拟机。以 root 身份运行以下命令标记系统以进行重新配置:

  1. # touch /.unconfigured
  2. 删除 ssh 主机密钥。运行:
    # rm -rf /etc/ssh/ssh_host_*
  3. HOSTNAME=localhost.localdomain/etc/sysconfig/network
  4. 删除 /etc/udev/rules.d/70-*。运行:
    # rm -rf /etc/udev/rules.d/70-*
  5. 去除硬件地址=UUID=行自/etc/sysconfig/network-scripts/ifcfg-eth*
  6. 可选择删除所有日志/var/log并从中构建日志/root
  7. 关闭虚拟机。运行:
    # poweroff

编辑:可以通过最后运行将步骤 1 和 7 合并sys-unconfig。或者,查看virt-syspreplibguestfs-工具-c其功能远不止于此。

 [user@hostname ~]$ virt-sysprep --list-operations
 abrt-data * Remove the crash data generated by ABRT
 bash-history * Remove the bash history in the guest
 blkid-tab * Remove blkid tab in the guest
 ca-certificates   Remove CA certificates in the guest
 crash-data * Remove the crash data generated by kexec-tools
 cron-spool * Remove user at-jobs and cron-jobs
 delete * Delete specified files or directories
 dhcp-client-state * Remove DHCP client leases
 dhcp-server-state * Remove DHCP server leases
 dovecot-data * Remove Dovecot (mail server) data
 firewall-rules   Remove the firewall rules
 firstboot * Add scripts to run once at next boot
 flag-reconfiguration   Flag the system for reconfiguration
 hostname * Change the hostname of the guest
 kerberos-data   Remove Kerberos data in the guest
 logfiles * Remove many log files from the guest
 lvm-uuids * Change LVM2 PV and VG UUIDs
 machine-id * Remove the local machine ID
 mail-spool * Remove email from the local mail spool directory
 net-hostname * Remove HOSTNAME in network interface configuration
 net-hwaddr * Remove HWADDR (hard-coded MAC address) configuration
 pacct-log * Remove the process accounting log files
 package-manager-cache * Remove package manager cache
 pam-data * Remove the PAM data in the guest
 password * Set root or user password
 puppet-data-log * Remove the data and log files of puppet
 random-seed * Generate random seed for guest
 rhn-systemid * Remove the RHN system ID
 rpm-db * Remove host-specific RPM database files
 samba-db-log * Remove the database and log files of Samba
 script * Run arbitrary scripts against the guest
 smolt-uuid * Remove the Smolt hardware UUID
 ssh-hostkeys * Remove the SSH host keys in the guest
 ssh-userdir * Remove ".ssh" directories in the guest
 sssd-db-log * Remove the database and log files of sssd
 tmp-files * Remove temporary files
 udev-persistent-net * Remove udev persistent net rules
 user-account   Remove the user accounts in the guest
 utmp * Remove the utmp file
 yum-uuid * Remove the yum UUID

答案1

我们认为的初始设置实际上分为三个部分。前两个是:

  • 初始设置,要求您接受许可并创建用户
  • Firstboot,要求您配置 kdump 并(在 RHEL 上)设置您的订阅

现在这两者均通过 systemd 启用;一旦完成,它们就会自行禁用。

因此,您要做的就是删除在第一次初始设置过程中创建的所有本地用户,然后重新启用这些服务:

systemctl enable initial-setup-graphical.service
systemctl enable firstboot-graphical.service
> /etc/sysconfig/firstboot

然后重新启动。

我不是完全请务必注意第三部分,它会询问您的语言并创建用户帐户或将计算机加入域。至少,这会一直出现,直到您真正完成向导。(所以不要这样做。)

清理主机密钥和任何硬件特定配置可能仍然是一个好主意。(udev 规则和接口配置文件中的 Mac 地址。)

相关内容