4.2.2 部署到传统的虚拟化环境
传统的虚拟化环境早于云环境,也就是说,它们是运行操作系统的简单的虚拟机管理程序。像VMware这样的商业化例子是很常见的,还有它们的开源对应产品,比如Xen和KVM(以及基于它们构建的框架,比如oVirt)。
由于这些技术最初是为了补充传统的物理环境而构建的,因此它们为构建企业Linux环境提供了几种选择。例如,这些平台中的大多数都支持与裸机对应的相同的网络引导功能,因此我们实际上可以假装它们是裸机,对其继续使用网络引导方法。
然而,虚拟化环境带来了一些在物理环境中很难实现的东西(比如模板),因为运行虚拟机的裸机设备之间的硬件配置不同。模板化虚拟机只是预配置虚拟机的可部署快照。因此,你可以为企业构建完美的CentOS 7映像,集成监控平台,执行所有所需的安全加固,然后使用虚拟化平台本身内置的工具,将其转换为模板。以下是作者实验室环境中CentOS 7模板如图4-1所示。
图 4-1
这些模板中的每一个都是一个完全配置的CentOS 7基本映像,可以随时部署,所有预部署工作(如删除SSH主机密钥)都已完成。因此,管理员需要选择适当的模板,然后单击New VM按钮,在RHV以外的平台上,这个过程将是类似的,因为大多数主流虚拟化解决方案都以某种形式提供此功能。
注意,为了保持示例的易操作性,使用GUI作为创建新VM的主要过程。几乎所有的虚拟化和云平台都有API、命令行接口,甚至可以用来部署虚拟机的Ansible模块,在企业环境中,这些模块的可扩展性要远远好于GUI本身。考虑到可用环境的多样性,这留作练习。
这本身就是一个相当简单的过程,但需要小心。例如,现在几乎所有的Linux服务器都启用了SSH,并且每台服务器上的SSH守护进程都有一个唯一的主机标识密钥,用于防止中间人攻击。如果对预配置的操作系统进行模板化,还将对这些密钥进行模板化,这意味着在整个环境中可能存在重复的密钥。这大大降低了安全性。因此,在将虚拟机转换为模板之前,执行几个步骤来准备虚拟机是非常重要的,其中一个常见的步骤是删除SSH主机密钥。
使用PXE方法创建的服务器不会遇到这个问题,因为它们都是从头开始安装的,因此既没有要清理的历史日志条目,也没有重复的SSH密钥。
在第5章中,我们将详细介绍如何创建适用于使用Ansible模板的虚拟机模板。
尽管PXE引导和模板部署方法对虚拟化环境都同样有效,但大多数人发现模板化途径更高效、更易于管理,因此,我也主张使用它(例如,大多数PXE引导环境需要知道物理层上使用的网络接口的MAC地址)或正在部署的虚拟服务器(在模板部署中,这些不是必要的步骤)。