使用 IBM Tivoli Provisioning Manager 部署组合虚拟设备

部署实际的分布式软件解决方案可能非常复杂,而且充满挑战。通常,每台计算机中的软件堆栈包含多个软件层,部署分布在计算机集群上,让软件安装和配置非常费时,而且可能会包含错误。通过将 IBM® Tivoli® Provisioning Manager 与虚拟设备结合使用,可以极大地简化此部署流程。本文将通过 IBM WebSphere® Application Server 示例说明如何创建并捕获组合虚拟设备、自定义、打包和在十分钟内部署解决方案。

引言

实际的软件解决方案涉及到的复杂性有时候可能令人生畏。每个服务器都需要由多层软件组成的软件堆栈(操作系统、中间件和应用程序)。解决方案经常分布在多台计算机上,以获得可伸缩性和可用性。对于所部署的每个解决方案,软件堆栈使用传统部署技术以独立的方式直接在每个服务器上安装和配置。

正如在前面的 developerWorks 文章中讨论的,通过使用预先安装整个解决方案的虚拟映像,可以利用虚拟映像极大地简化部署流程。此外,IBM Tivoli Provisioning Manager 提供了存储虚拟映像模板库、使用元数据表示虚拟映像的配置数据和表示映像间的关系的能力。通过将前面文章中描述的虚拟映像技术和 Tivoli Provisioning Manager 中提供的功能相结合,十分钟左右就能完成示例 IBM WebSphere Application Server 集群和 IBM DB2® Universal Database 的部署。

本文将虚拟映像技术与 Tivoli Provisioning Manager 中提供的功能结合,以实现跨多台计算机的软件解决方案的完全自动化部署。Tivoli Provisioning Manager 图形用户界面(Graphical User Interface,GUI)用于选择要部署的解决方案。Tivoli Open Process Automation Library (OPAL) 中的 IBM Automation Package for Virtual Software Appliance 内提供的示例 Tivoli Provisioning Manager 工作流可用于促进映像的部署和自定义。

详细示例

此示例中的步骤的组织与通常分布在组织内的角色对应。使用 Tivoli Provisioning Manager 部署组合虚拟设备涉及四个主要步骤。前两个步骤需要应用程序知识。后面两个步骤涉及到 Tivoli Provisioning Manager,对任何组合虚拟设备都是通用的。这些步骤如下(图 1):

  1. 创建组合虚拟设备映像。
    虚拟映像的创建与是否使用 Tivoli Provisioning Manager 进行部署无关。此步骤需要了解通用部署模式、确定配置和相互依赖关系信息和实际创建映像。

  2. 定义元数据。
    组合虚拟设备的 Tivoli Provisioning Manager 元数据在此步骤中创建。

  3. 准备 Tivoli Provisioning Manager 部署环境。
    在此步骤中,要将映像和元数据放入 Tivoli Provisioning Manager,并设置主机环境。

  4. 部署并启动组合虚拟设备映像。
    此步骤使用 Tivoli Provisioning Manager 执行部署。Tivoli Provisioning Manager GUI 使用元数据显示可用组合虚拟设备列表,询问自定义信息,然后工作流会将映像部署到目标环境。


图 1. 使用 Tivoli Provisioning Manager 实现组合虚拟设备部署的自动化
图 1. 使用 Tivoli Provisioning Manager 实现组合虚拟设备部署的自动化

在下面部分中将详细描述这些步骤。

1. 创建组合虚拟设备映像

尽管使用虚拟映像并不会消除安装和配置软件的复杂性,但可以消除复杂性上游,从而减少所执行的完全安装和配置的次数,并尽可能减少接触完全安装和配置流程的人员数量。

在此步骤中,将由熟练的个人安装和配置组合虚拟映像。此步骤只进行一次,从而允许映像的下游使用者在不用安装或配置软件的情况下使用映像。由于构建可重用虚拟映像模板需要一定的投资,因此第一个任务是确定通用部署模式。

  1. 确定通用使用模式

    几乎可以为任何物理部署创建虚拟映像,但最为有价值的是代表了重复多次的部署的虚拟映像(用于不同的组织或不同的应用程序)。此外,初始安装和配置越复杂,虚拟映像所具有的价值越大。

    例如,如果拥有很多 IBM WebSphere Application Server 或 IBM WebSphere Portal 应用程序部署(特别是集群部署),则创建虚拟映像可以极大地加速此流程。图 2 显示了一个通用 WebSphere Application Server 集群拓扑,该拓扑的业务逻辑层包括部署管理器和应用服务器托管节点,而且具有使用 DB2 的数据持久层。此拓扑可以分布在多台计算机上,以获得可伸缩性和可用性。

    一旦确定了要实现的配置模式,下一步就要创建虚拟映像。



    图 2. 示例 WebSphere Application Server to DB2 部署
    图 2. 示例 WebSphere Application Server to DB2 部署

  2. 创建模板映像

    在创建组合虚拟设备时,需要将解决方案的配置和相互依赖关系捕获到一组虚拟机映像中。可以通过直接安装到虚拟映像中,或使用 physical to virtual (P2V) 工具创建映像。此示例中的黄金映像是手动安装和配置的,可确保全面了解映像内容。

    完成了映像的初始安装和配置后,下一步是分析映像,并将其转换为可重用映像模板,以便用于部署多个应用程序环境。此步骤是流程中最困难的部分,需要对每个部署所需的独特配置价值进行全面评估。其目标是尽可能多地完成预先安装和预先配置工作,而同时要尽可能减少映像的数量。

  3. 添加激活逻辑

    对于所有映像,最可能更改的内容包括网络信息(IP 地址、主机名等)、用户信息(用户 ID 和密码)和远程连接性(如数据库和目录连接)。Automating deployment and activation of virtual images 一文中提供了用于更新 Linux 的 IP 地址和用户信息的示例脚本,并提供了用于插入特定于软件的配置更改的框架。

    除了基本网络、用户和远程连接性数据外,还将需要决定在映像中应用的预先配置量以及在部署时要进行的工作。例如,Using virtual images to deploy WebSphere Application Server 一文提供了仅仅创建一个 WebSphere Application Server 虚拟映像的技术。部署管理器、独立节点或托管节点的映像自定义在首次激活映像时根据部署时参数完成。如图 2 中所示,此技术支持使用一个 WebSphere 模板映像进行部署管理器和多个应用程序节点的部署工作。

  4. 标识底层基础设施需求

    除了预先安装和预先配置虚拟映像外,部署虚拟环境还提供了规定主机平台特定需求的机会。例如,除了虚拟映像模板外,还应该随其提供自有的需求规范,如每个映像实现最优性能所需的虚拟内存和虚拟 CPU。

    此信息有望成为 Open Virtual Format (OVF) 规范的一部分。由于尚没有标准可用,因此接下来的部分将说明如何在 Tivoli Provisioning Manager DataCenter Model (DCM) 内表示虚拟服务器模板中的需求。

2. 定义元数据

一旦创建了虚拟映像,必须执行一系列特定于 Tivoli Provisioning Manager 的步骤。此工作的第一部分是创建元数据,这需要具有组合虚拟设备的相关知识。必须执行此步骤,以便利用 Tivoli Provisioning Manager 的 DCM 和工作流引擎来部署虚拟设备。接下来让我们进一步了解一下所需的元数据。(可下载此示例的完整示例元数据。)

  1. 表示组合虚拟设备

    总体组合虚拟设备描述为分布式应用程序。分布式应用程序可以包含多个模块;在本例中,其中包含多个虚拟映像。如清单 1 中所示,分布式应用程序在 Tivoli Provisioning Manager 中表示为软件应用程序模块。包含在分布式应用程序中的每个虚拟机都使用应用程序模块条目元素指定。工作流也在此指定(也显示在清单 1 中)。



    清单 1. 软件应用程序模块 DCM 示例
                            
    
    		<!-- property definitions need to be added here. --&gt
    
    		<!-- software-resource-template definition need to be added here. --&gt
        

  2. 表示各个映像

    每个组合虚拟设备可以包含多个虚拟映像。例如,前面图 2 中所示的“WAS 服务器和 DB 组合设备”(WAS Server and DB Composite Appliance) 包括 WebSphere Application Server 虚拟映像和 DB2 虚拟映像。每个虚拟映像都使用软件堆栈对象指定。清单 2 显示了“DB2 Server Appliance”映像条目。软件堆栈对象包含信息的多个属性元素,如虚拟机模板在文件存储库中的存储位置等。



    清单 2. 软件堆栈 DCM 示例
                            
    
    	    	<!-- property definitions need to be added here. --&gt
        		<!-- software-resource-template definition need to be added here. 
        		--&gt
        		<!-- software-stack-entry definitions need to be added here. --&gt
        		<!-- installable-package definition need to be added here. --&gt
    

  3. 表示软件

    每个虚拟映像内的特定软件使用软件模块名称元数据加以表示。如清单 3 中所示,此条目包括底层基础设施需求和一组要配置的参数。



    清单 3. 软件模块 DCM 示例
                            
    
    		<!-- property definitions need to be added here. --&gt
    		<!-- software-resource-template definition need to be added here. --&gt
    

  4. 表示资源需求和参数

    每个虚拟机的资源需求通过虚拟服务器模板指定。如清单 4 中所示,虚拟服务器模板可以包括多个资源需求元素,如 CPU 配额、内存和硬盘空间。



    清单 4. 虚拟服务器模板 DCM 示例
                            
    

    每个软件模块可以具有一个软件资源模板,其中可能包括多个模板参数元素,用于指定用户需要为配置指定的参数。例如,如清单 5 中所示,“WAS 6.1 Cell”模板具有管理员用户 ID 和密码的配置参数。此元数据允许 Tivoli Provisioning Manager 在 GUI 中收集这些参数。此工作流设计用于收集值并将其传递给映像,以供在激活期间使用。一个参数可以使用 template-param-operand 引用其他参数的值,从而支持表述软件模块间的相互依赖关系。



    清单 5. 模板参数 DCM 示例
                            
    

一旦创建了元数据文件,就要按照接下来部分中所述将元数据导入 Tivoli Provisioning Manager 并设置工作流。

3. 准备 Tivoli Provisioning Manager 部署环境

创建了组合虚拟设置映像和元数据之后,必须准备 Tivoli Provisioning Manager 环境。这包括将映像复制到存储库中、导入元数据、下载工作流和完成主机平台的任何其他设置工作。

  1. 将虚拟映像模板复制到文件存储库中

    必须将虚拟映像模板放置在 Tivoli Provisioning Manager 文件存储库中才能进行虚拟解决方案部署。这些文件存储库设置用于存储和检索大型文件。元数据使用 Image.Repository 变量指向正确的文件存储库,使用 Image.Location 变量建立映像在存储库中的具体位置。例如,清单 6 显示了其中一个虚拟映像模板的元数据描述部分的内容。如其中所示,映像保存在相对于文件存储库根目录的 images/was61/WAS/was 中。



    清单 6. 映像存储库 DCM 示例
                            
    

  2. 将元数据导入 Tivoli Provisioning Manager

    除了复制映像模板外,还需要将映像的元数据导入 DCM。不过,这仅仅涉及到运行程序:

    $TIO_HOME/tools/xmlimport.sh

    使用文件的 URN 作为参数(文件的 URN 的开始部分为: file://)。

  3. 从 OPAL 设置工作流

    一旦将描述虚拟设备的元数据导入 Tivoli Provisioning Manager 的 DCM 并将虚拟映像模板复制到正确的文件存储库中,部署虚拟设备就变成了调用工作流的简单任务。OPAL 上提供了一组用于部署虚拟设备的工作流。按照包中所述下载和安装这些工作流。

    这些工作流对组合虚拟设备的部署进行协调,分叉出一个进程来复制每个虚拟映像模板并对其进行自定义(基于元数据中编码的用户输入和依赖关系信息)。编写了工作流示例来部署按照本文中所描述的方式表示且应该不需要更改的虚拟机。不过,此工作流只是示例,在您特定的目标环境中使用前应该进行测试。

  4. 设置主机平台

    需要使用正确的管理程序和可用资源将映像部署到主机平台。如果您的 Tivoli Provisioning Manager 环境尚未针对所选主机平台进行设置,则将需要添加这些平台:

    1. 从 Tivoli Provisioning Manager 面板中选择 Add a Host Platform. Server,然后输入主机平台的名称(例如,hostplatform1.ibm.com)。
    2. 添加网络接口和 SAP 凭据。
    3. 添加管理程序软件和相关资源(例如,VMWare ESX Server、CPU、硬盘、内存等等)。

    (有关添加主机平台的详细信息,请参见 Tivoli Provisioning Manager 文档。)

    此外,工作流使用 SSH 在主机平台上存储虚拟映像。对于每个主机平台,您将需要确定已设置了 SSH (Open Secure Shell),因此主机平台的用户(例如 root@hostplatform1)可以采用 ssh 登录到 Tivoli Provisioning Manager 服务器计算机的根和 tioadmin(例如,root@tpmserver1 和 tioadmin@tpmserver1)。另外,请确保 Tivoli Provisioning Manager 服务器计算机可以采用 ssh 登录到主机平台的用户。

4. 部署并启动组合虚拟设备映像

一旦在 Tivoli Provisioning Manager 中创建了虚拟映像模板,部署组合虚拟设备就变得很简单了。由于组合虚拟设备表示为分布式应用程序,因此您要与 Tivoli Provisioning Manager Distributed Applications 面板交互,以选择组合虚拟设备(图 3)。


图 3. 组合虚拟设备选择
图 3. 组合虚拟设备选择
  1. 复查和自定义

    选择了组合虚拟设备后,将显示一个面板,其中列出了每个虚拟映像模板(图 4)。对于 WebSphere Application Server 和 DB2 组合设备,将显示部署管理器、WebSphere Application Server 和 DB2 映像。内部实现实际上将部署管理器和应用服务器映射到相同的映像模板文件。



    图 4. WebSphere Application Server 和 DB2 组合设备
    图 4. WebSphere Application Server 和 DB2 组合设备

    接下来将基于元数据构建 Distributed Application Deployment 的自定义面板。如图 5 中所示,将显示所有自定义参数,如主机名、域名、节点名等。如果未指定选项,则将使用元数据中提供的缺省值。



    图 5. Distributed Application Deployment 自定义屏幕
    图 5. Distributed Application Deployment 自定义屏幕

    输入了自定义参数后,部署要么计划稍后运行,要么立即启动。不需要任何其他最终用户交互。

  2. 等待 Tivoli Provisioning Manager 协调进行分布式部署

    Tivoli Provisioning Manager 工作流将以透明的方式部署虚拟设备。工作流以并行方式将每个虚拟机映像复制到对应目标计算机中。工作流的流程包括:

    • 检查和推断每个虚拟机在管理程序可用的资源总量中所需的资源量(如 CPU 配额、内存和磁盘空间)。
    • 将各个虚拟映像模板复制到对应的管理程序。
    • 生成虚拟映像的虚拟机配置文件。
    • 向管理程序注册虚拟机。
    • 向 Tivoli Provisioning Manager 注册每个软件设备中包含的软件应用程序。

    工作流还会收集自定义参数,并在激活文件中将其提供给虚拟映像。对虚拟映像进行了自定义之后,将提供“启动按钮”,用于允许所协调的启动工作流启动解决方案。

  3. 使用所部署的环境

    一旦部署完成,Tivoli Provisioning Manager 的 DCM 会将所部署的虚拟设备的信息作为分布式部署加以捕获。会捕获所有信息,包括软件的部署位置以及配置参数。因此,Tivoli Provisioning Manager 中实现的用于软件管理的实用工具和机制都可以用于管理已部署的虚拟设备,就像管理 Tivoli Provisioning Manager 中的其他软件一样。

省时的简化部署

我们曾在自己的实验室中运行过 WebSphere Application Server 和 DB2 组合设备的示例部署。我们部署了一个 WebSphere Application Server Network Deployment 集群,其中包括一个部署管理器、九个应用服务器节点、一个 DB2 节点和 Trade6 应用程序。部署总耗时不超过十分钟,这是相对于传统的严格顺序安装方法的一大改进,在传统方法中可能需要数小时才能完成拓扑中每台计算机的安装。

在我们使用 Tivoli Provisioning Manager 的虚拟设备部署中,配置工作仅仅涉及选择主机平台并为每个映像安装指定参数(少于 10 个)。另外,我们通过捕获元数据中的参数集中的相互依赖关系,而且仅仅要求输入一次这些参数,进一步减少了参数的数量。Tivoli Provisioning Manager 工作流将参数传递给多个映像。工作流支持预先捕获的映像的并行复制和配置,相对于在每台计算机上逐层安装和配置软件层来构造物理计算机而言,此方法极大地减少了部署时间。

结束语

本文描述了用于部署和管理实际软件解决方案的极为简化的方法。在此方法中,虚拟机映像将捕获分布式软件解决方案中的相互依赖关系,并提供描述如何配置虚拟机映像的对应元数据。可由一组 Tivoli Provisioning Manager 工作流基于元数据自动部署解决方案,从而极大地减少了部署复杂软件解决方案所需的人工时间。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14789789/viewspace-406850/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14789789/viewspace-406850/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值