本文提供了 IBM Image Construction and Composition Tool 的概述,并演示如何创建和维护 IBM SmartCloud Enterprise 上的软件包。用一个示例来介绍创建 Google Chrome 软件包的步骤,包括定义 Chrome 软件包元数据,添加安装脚本,以及在 SmartCloud Enterprise 上注册。您应该对云计算基本概念有 一个基本的了解。要尝试本文的步骤,需要一个 IBM SmartCloud Enterprise 用户帐户。
Image Construction and Composition Tool
SmartCloud 上的 ICCT 是一个简化及自动化虚拟机映像创建的 Web 应用程序。ICCT 是作为一个可在 SmartCloud 上配置的映像而提供的。
SmartCloud 上的 ICCT 对虚拟映像生命周期中执行的任务按角色进行分类:
操作系统专家角色:为操作系统创建基础映像,映像构建者角色将其用作一个起始点。基础映像代表一个 企业的标准 OS 配置、许可协议和安全策略。
软件专家角色:创建包含软件产品和组件的软件包和可重用资产。
映像构建者角色:集合基础映像和一个或多个软件包来创建虚拟映像模板。
映像部署者角色:指出特定实例的参数,并在 SmartCloud 中部署一个实例。
ICCT 支持软件包创建,虚拟映像生命周期的创建和部署阶段。
现在,我们来探讨软件包创建、虚 拟映像创建和虚拟映像部署。
软件包创建
软件专家在定义软件包和选择软件包粒度方面有很大 的灵活性。软件包将一个或多个产品的安装和配置任务封装到一个简易容器中。ICCT 帮助用户设置依赖项、 先决条件、防火墙规则,以及将脚本和二进制文件收集到一个软件包中。
软件专家必须决定在哪里包 装安装介质。与软件包操作相关的所有文件将被上传并存储到 Rational Asset Manager (RAM) 中的一个可 组合的软件包资产中。软件包资产的目录结构确保与操作相关的所有文件都存储在同一个子目录中。当与不同 操作相关的文件有相同的文件名时,该结构可防止出现冲突。
将产品安装介质包装在软件包中通常意 味着在同步过程中进行大量软件包转移。产品安装介质可位于外部 Web 服务器上,并使用 wget 或者 NFS 获 得。
在 ICCT 中使用 Install 和 Configuration 选项卡来处理产品包安装和配置:
Install 选项卡:软件专家可以定义虚拟映像构建时执行的脚本。这可能包含传统产品安装脚本和二进制 文件。
Configuration 选项卡:软件专家可以定义配置脚本,可在构建时复制到虚拟映像,但是不能执行直至部 署了虚拟映像。这些配置脚本可能包括传统配置脚本或脚本来重新配置一个已在安装操作中应用的默认脚本。
Reset 选项卡:驻留一个脚本以清理同步过程中创建的日志或临时文件。在捕获过程中该脚本由 ICCT 运 行。
Firewall 选项卡:驻留许多为远程客户端提供服务的软件包;例如,IBM HTTP Server 提供一个 Web 服 务器。要成功访问这类服务,产品安装和配置可能需要启用网络访问。软件专家必须指定入站服务端口集合, 以打开并允许访问服务。例如,一个 IBM HTTP Server 软件包可能要求打开管理端口 (8080) 和服务端口 (80, 443)。
软件专家必须执行的关键任务是编写在虚拟映像创建和部署过程中执行的安装、配置和重置脚本。ICCT 依 赖脚本完成下列操作:
实现软件包中软件和软件组件的安装和配置。
允许软件包使用部署参数在部署过程中定制软件。
在捕获一个安装了软件包的虚拟映像之前,清理软件包安装和配置过程中创建的状态。
ICCT 依靠脚本中的反馈来决定一个操作是否成功执行。软件专家必须意识到 ICCT 将结束代码 0 视为成 功,而其他结束代码则视为失败。
虚拟映像创建
虚拟映像经过构成、同步化以及捕获后,开始 虚拟映像生命周期创建阶段。包括以下步骤:
构成:在创建阶段的这一步,编造了一个名为映像设计的 recipe 作为虚拟映像,该虚拟映像是用一个新 的名称和版本创建的。选中一个基础映像和一个或多个捆绑包,将其添加到 recipe 中进行定制。
同步:映像设计被转化成一个临时虚拟机实例。创建虚拟机实例并安装软件包。执行每个软件包的安装脚 本以静默方式将捆绑软件安装在临时虚拟机上。配置和重置脚本复制到虚拟机用于进程的后续执行。
捕获:这是将预先安装在临时实例上的映像以及软件包作为一个私有映像捕获时的流程。ICCT 对虚拟映像 中每个软件包运行重置脚本并重置操作系统,让 SmartCloud 完成捕获。最后,当 SmartCloud 完成捕获后, ICCT 更新 RAM 中的语义拓扑文件。
虚拟映像部署
当映射部署人员从创建阶段创建的私有映像中部署一个虚拟机实例时,虚拟映像生命 周期部署阶段开始。包括以下步骤:
配置:映像部署人员为将要部署的虚拟映像指定特定实例参数。与软件包相关的映像部署参数,比如用户 ID,密码或端口(可依据每个实例基础配置),同样也要收集。
配置:SmartCloud 在活动模式下配置实例和虚拟机。当操作系统第一次启动时,软件包激活阶段开始。
激活:Activation Engine 接收部署值,并调用适当的配置脚本。软件包及其组件使用映像部署人员为自 主重构提供的值。Activation Engine 是一个在基础映像扩展过程中安装到基础映像的 ICCT 组件。ICCT 扩 展每个虚拟映像以包含一个启用软件包。如果还没有的话,在虚拟映像设计第一次构成时,ICCT 将添加一个 启用软件包。
图 1 演示了虚拟映像生命周期以及每个角色执行的任务。
图 1. ICCT 支持的虚拟映像生命周期