IBM SmartCloud Enterprise 管理,第 3 部分: 克隆和修改已定制的资产

软件包(software bundle)是可以部署在虚拟机实例上的软件安装文件、配置文件以及元数据的集合。在本系列的第 3 部分中,作者将介绍如何使用 IBM Image Construction and Composition Tool (ICCT),通过克隆和修改一个 Rational Asset Manager (RAM) 资产来定制一个镜像。ICCT 可以执行记账任务,并提供一个分步流程和一个图形化 UI 来便捷地创建软件包、定制虚拟机实例和捕获镜像。本 系列 文章将展示如何使用 ICCT 创建一个软件包,然后在 IBM SmartCloud Enterprise 上注册和维护它。

Alexei Karve, 高级软件工程师, IBM

Alexei Karve 是 IBM Thomas J Watson Research Center 的一名高级软件工程师。他是 SmartCloud Enterprise 设计团队的成员,专攻云业务支持系统的软件包和 VPN/VLAN 研究。Alexei 在操作支持服务、虚拟化和 Tivoli Provisioning Manager 方面有着广泛的经验。在 1993 年加入 IBM 之前,他拥有从事各种系统管理工作的经验。



Alex Amies, 高级软件工程师, IBM

/developerworks/i/p-aamies.jpgAlex Amies 是 IBM GTS 中国开发实验室的一名高级软件工程师。他目前是致力于设计 IBM Smart Business Development and Test on the IBM Cloud 的一名架构师。此前他在 IBM 其他部门担任过云计算和安全性产品方面的架构师和开发人员。



Scott Peddle, 咨询软件开发人员, IBM  

Scott Peddle 的照片Scott Peddle 是 Business Process Management Repository 团队的咨询软件开发人员。他负责开发 WebSphere BPM 产品套件中的集成战略。



Hidayatullah Shaikh, 高级技术人员, IBM

Hidayatullah Shaikh 是 IBM T.J. Watson Research Center 的一名高级技术人员兼高级经理。他负责领导和管理云平台、远程 IT 基础设施管理以及虚拟桌面领域中的项目。他感兴趣和擅长的领域包括虚拟化、云计算、远程服务交付、业务流程建模和集成、面向服务的体系结构、网格计算、电子商务、企业 Java、数据库管理系统以及高可用性集群。



Qiangguo Tong, 资深软件工程师, IBM

Qiang Guo Tong 是一位资深软件工程师,在 Web 开发领域拥有 5 年丰富经验。他是在 IBM 使用的多个全球性工具研发工作的技术领导。



Pan Xia Zou, 高级软件工程师, IBM

Pan Xia Zou 是 IBM 的一位高级软件工程师,担任 IBM SmartCloud Enterprise 的构建和部署自动化架构师。



2013 年 4 月 22 日

本文将介绍如何克隆您在第 2 部分中使用 ICCT 捕获的 Google Chrome 镜像。了解如何手动定制镜像,以便允许在实例配置期间安装 XAMPP。然后,了解如何在配置期间使用手动 Rational® Asset Manager 定制来公开参数。最后,使用 ICCT 创建一个依赖于 Google Chrome 软件包的 XAMPP 软件包。

让我们开始吧。

背景知识

要创建一个镜像,可从一个实例中捕获一个镜像,或者克隆一个现有的镜像。每种方法都有自己的优缺点。在每种情况下,在处理虚拟机和软件包时使用参数的能力都是一项重要功能。使用参数可防止特定的机器环境设置(比如 IP 地址或主机名)被冻结在虚拟机镜像中。也就是说,您可能不希望其他虚拟机继承虚拟机的 IP 地址或主机名。参数也可以实现必要的系统配置设置,比如在防火墙中打开一个端口,或者公开用户在传统的交互式软件安装程序中拥有的选择。

捕获一个镜像

您可以使用 SmartCloud Portal、SmartCloud API 或 ICCT,基于正在运行的实例来捕获一个镜像。捕获镜像会克隆 IBM Rational 资产目录中的资产,并保存一个基于您的实例的定制镜像。如果应用程序安装在实例上,那么在捕获镜像之前,只需在激活新实例期间基于该镜像重新配置应用程序即可,无需为每个实例下载或安装应用程序。如果预先安装的应用程序难以重新配置,那么包含应用程序二进制文件作为所捕获镜像的一部分,并编写激活脚本在激活期间安装应用程序,这样做很有帮助。您必须为已定制的镜像支付额外的 GHR 存储费用。

克隆一个镜像

克隆一个镜像会克隆 IBM Rational 资产目录中的镜像资产;但是,克隆的镜像会继续与被克隆的基础镜像共享镜像二进制文件。基础镜像不会改变。这些资产通常比虚拟磁盘镜像小得多。克隆镜像比捕获镜像快得多。克隆镜像的机制支持快速创建镜像,创建的镜像可直接通过更新 IBM Rational Asset Manager 资产目录中的资产来定制。您无需为基础镜像的存储支付任何额外的成本。当根据一个克隆的镜像来创建实例时,所需的脚本和安装程序(在 scripts.txt 中指定)会在配置期间从 RAM 复制到虚拟磁盘,并且可在激活期间进行安装。如果从 RAM 或某个外部来源复制的安装程序很大,或者安装程序运行缓慢,那么这种机制也可能很缓慢。

克隆镜像共享相同的基础镜像二进制文件。共享相同的基础镜像二进制文件既有优势也有风险。一个优势是,您将自动继承源镜像所有者在镜像二进制文件中执行的维护修复。一个风险是,基础镜像二进制文件的不兼容变更可能会破坏您的应用程序。原始镜像只在删除所有克隆镜像之后才能删除。

软件包

软件包是一种资产,其中包含用于在一个或多个虚拟镜像上安装和配置软件的已捕获信息。IBM Image Construction and Composition Tool (ICCT) 可帮助创建和使用软件包,实现一种简单的自动化镜像构建过程。创建软件包需要掌握一些软件工作原理方面的专门知识,通常由软件专家完成。因为这种封装方式,使用该包的镜像构建器不需要理解软件安装、激活和重设的具体信息。了解操作流程以及 Image Construction and Composition Tool 和部署工件之间的交互对设计您的软件包很有帮助。

软件包支持一次执行一组安装任务。镜像构建器会初步创建镜像,对每次镜像部署执行一组配置任务。除了安装任务,软件包应为软件提供不同的部署时配置。部署时配置参数的有效使用可减少所需的镜像总数,提供一种为每种部署调整软件的方式。ICCT 中的软件包编辑器包含 7 个主要部分:

需求
包含有关软件包的操作系统和软件前提条件的信息。如果软件包仅适用于某个特定的操作系统或需要另一组软件,则在此部分中指定该信息。
安装
定义将软件安装到镜像中的任务。只要执行一次软件安装,安装的软件就会变成镜像的永久组件。我们建议在 “安装” 部分中定义所有大型文件内容的安装,执行任何长期运行的配置任务。
配置
为预先安装的软件包提供部署时配置选项和激活脚本。“配置” 部分对支持在不同环境中和为不同目的使用软件非常重要。例如,在镜像创建过程中,该工具会安装您的软件包。在安装过程中,虚拟机使用一个特定的 IP 地址和主机名运行。在以后的某个时间,您可以部署镜像来创建一个具有不同 IP 地址和主机名的新虚拟机。如果预先安装的软件的配置包含有关 IP 地址或主机名的信息,则必须在部署过程中重新配置该软件。在 Image Construction and Composition Tool 中,使用 “配置” 部分来定义在部署过程中执行此重新配置操作的激活脚本。此外,您可能希望向您镜像的部署者公开常见的配置参数。例如,许多软件组件包含每个用户都需要定制的端口和密码等配置。对于您在 “配置” 部分中定义的每个激活脚本,可以关联一组参数。如果将一个参数指定为 “可配置”,那么镜像的部署者就能够在部署时为该参数提供一个值。激活脚本能够访问您在软件包中指定的参数。
防火墙
允许软件包作者指定,如果防火墙默认拦截了所有端口,应打开某些网络端口和/或端口范围。用户可指定固定的端口和端口范围,或者引用配置参数的参数化端口范围值。如果使用参数化的端口或端口范围值,那么包含这样一个软件包的镜像的部署者能够选择要在部署时打开的端口和端口范围值。
重置
提供一种机制来清除镜像。镜像创建过程会引起您的软件的安装、配置以及可能的执行。此过程可保留日志文件和其他不适合放在用于部署的最终镜像中的工件。重置脚本在捕获之前会清除这些工件。

可组装软件包规范

此规范包含工具需要知道的安装软件方式、软件必备要素、可用于自定义软件的参数和所提供功能的信息。

  • 逻辑结构。可组装软件包捕获需求和功能,安装归档文件和脚本等工件,以及需要调用(比如用于执行具有响应文件的安装程序)的操作。
  • 物理结构。功能和需求存储在语义拓扑结构文件中。工件的操作和属性存储在功能拓扑结构文件中。与其他软件包和镜像资产的关系存储在资产中。
  • 打包。软件包基于创建单一归档文件的 OMG Reusable Asset Specification 标准(参阅 参考资料)。软件包资产放在两个特殊目录中:artifacts 和 models。打包的软件包中的其他内容可能包含许可协议、文档、国际化信息,以及一个在用户界面中标识该软件包的图标。

使用克隆功能定制一个镜像

下面的步骤展示如何使用 SmartCloud 用户界面克隆一个镜像,以及如何通过直接在 Rational Asset Catalog 中更新来定制资产。

图 1 显示了使用了 9 个私有镜像。Add Image 仅克隆 Rational Asset Manager 中的 Template Topology 资产;它不会在数据中心中创建一个磁盘副本。因此,当通过克隆来添加一个镜像时,镜像数量不会增加。克隆的镜像不会占用所捕获镜像的配额。

  1. 单击 Add Image
    图 1. 克隆一个镜像
    克隆一个镜像
  2. 选择您希望克隆的镜像并单击 Next
    图 2. 选择一个镜像
    选择一个镜像
  3. 输入名称和描述并单击 Next
    图 3. 输入新镜像的详细信息
    输入新镜像的详细信息
  4. 验证详细信息并单击 Next
    图 4. 验证镜像详细信息
    验证镜像详细信息
  5. 阅读协议,选择 I agree 并单击 Submit
    图 5. 接受许可条款和协议
    接受许可条款和协议
  6. 状态更改为 Submitting...,然后显示请求已成功提交。克隆过程非常快,因为实际镜像磁盘并未复制。
    图 6. 提交请求
    提交请求
    图 7. 提交请求成功
    提交请求成功
  7. 如果在添加镜像过程中遇到 Unknown System Failure,那么可以在 Place order 面板中重新提交请求。然后检查所克隆镜像的 Images 选项卡。我们注意到,甚至在发生此错误后,该镜像仍被克隆并且可以在 Images 选项卡中看到;但是,所克隆镜像的资产为过期状态,因此不可用。如果旧的克隆镜像出现在 SmartCloud 门户中,那么可以删除它。两个镜像将具有相同的名称。要区分旧镜像与新镜像,新镜像拥有比旧镜像更大的 imageId。如果发生此情况,删除具有较小 imageId 的镜像。
    图 8. 在 Images 选项卡中查看镜像
    在 Images 选项卡中查看镜像

新克隆的镜像在 Image 选项卡中显示为 Available。请注意,克隆的镜像不会递增镜像数量(它仍然显示为 9 个私有镜像),因为它没有对 VM 使用数据中心上的额外磁盘空间。它与原始镜像共享同一个镜像磁盘。

通过修改 RAM 资产来定制镜像

在定制克隆的资产之前,首先在一个临时实例上创建并测试需要的安装和配置脚本。

单击 Create Instance 并创建下载和安装 LAMP 的脚本,在这个临时实例上验证它们。这样做的目的在:在不捕获一个新实例的情况下,在配给新实例期间自动运行这些脚本。完成脚本的测试后,更新 Rational Asset Manager 中克隆的 Template Topology (Image) Asset。在第一次启动期间的配给过程中,更新的资产允许安装使用 LAMP 创建的新实例。

请注意,克隆的镜像还有一个关联的 Google Chrome Software Bundle,因为 Google Chrome 已在选择用于克隆的原始镜像中预先安装和捕获。因此,这个 Google Chrome Software Bundle 会在下订单时显示,已经预先安装,并且可在创建实例时使用。

创建一个文件 installXAMPP.sh,如下所示。在 http://www.apachefriends.org/en/xampp-linux.html 上检查您需要的 XAMPP 版本的下载位置,使用以下脚本更新 wget 请求。

#!/bin/sh
wget http://www.apachefriends.org/download.php?xampp-linux-1.7.7.tar.gz
sudo tar xvfz xampp-linux-1.7.7.tar.gz -C /opt
uname -p | grep x86_64
if [ $? -eq 0 ]; then
   sudo sed -i '/^# XAMPP is 
   currently 32 bit only$/,+12 s.^.#.' /opt/lampp/lampp
   sudo yum -y install glibc.i686
fi
sudo /opt/lampp/lampp start

我们建议卸载任何 httpd 和以前的 mysql rpm。可搜索 rpm 并使用以下命令删除它们:

rpm -qa | grep httpd | xargs e

或者您可使用如下命令将特定的 rpm 添加在上述脚本的开头,但我们发现没有必要这样做:

sudo rpm -e httpd-2.2.15-9.el6.x86_64 httpd-tools-2.2.15-9.el6.x86_64
gnome-user-share-2.28.2-3.el6.x86_64

定制一个镜像:

  1. 转到 Control Panel > View Asset Catalog > My Dashboard 并查看 My Assets。您可以看到您已创建的克隆镜像显示为 Template Topology Asset。请注意,我们发现使用 Google Chrome 浏览器更新 Rational Asset 目录比使用 Firefox 更容易一些。
  2. 单击该资产并检查 Image Id。在编写本文时,这会错误地显示从中克隆此资产的富 Image Id,而不是已克隆的 ImageId。
    图 9. 在 Rational Asset Manager 中查看资产
    在 Rational Asset Manager 中查看资产
  3. 单击 Content,然后单击 activationscripts
    图 10. 获取激活脚本
    获取激活脚本
  4. 列出了 ICCT 添加的激活脚本。更新它们以下载和安装 XAMPP。
    1. 从 Rational Asset Manager 中下载文件 cloud-startup3.txt。附加以下代码:
      if [ -f /etc/cloud/installxampp.sh ]; then
      chmod +x /etc/cloud/installxampp.sh
      /etc/cloud/installxampp.sh
      rm -f /etc/cloud/installxampp.sh
      fi
    2. 从 activation_scripts 文件夹中下载 scripts.txt 并附加以下一行代码。
      installXAMPP.sh=/etc/cloud/installxampp.sh

      scripts.txt 如下所示:

      cloud-startup3.txt=/etc/init.d/cloud-startup3.sh
      activate.txt=/etc/cloud/activate.sh
      installXAMPP.sh=/etc/cloud/installxampp.sh

      前两行由 ICCT 添加。我们添加了第三行,以便允许在启动之前将文件 installXAMPP.sh 从 /etc/cloud/installxampp.sh 复制到实例磁盘上。cloud-startup3.txt 复制为 /etc/init.d/cloud-startup3.sh,在第一次启动时执行 installxamppp.sh。

  5. 单击 Pencil 图标来编辑该资产。
  6. 单击 More options 并单击 activation_scripts 文件夹。
  7. 在 Upload File 上,选择 Basic 并单击 Choose File
  8. 将已修改的 cloud-startup3.txt 和 scripts.txt 上传到 Rational Asset Manager 中,一次上传一个。Rational Asset Manager 中的文件已更新。另外将新文件 installXAMPP.sh 添加到同一个 activation_scripts 文件夹中。
    图 11. 更新文件
    更新文件
  9. 单击底部的 Update 打开 Update Comments 窗口。输入备注并单击 Update
    图 12. 添加上传文件备注
    添加上传文件备注
  10. 此时将会显示一个消息窗口。
    图 13. 更新资产
    更新资产
  11. 最后,您获得一条指示资产已成功修改的消息。
    图 14. 资产已成功修改
    资产已成功修改
  12. 单击 Contentactivation_scripts。验证修改的日期并确保资产拥有更新的文件。也可以采用类似的方式更新 GettingStarted.hml,将以下行添加到 Image Details 中。这一行代码会在配置实例时在 Instance Details 中显示: <li>XAMPP is installed on the image.</li>
  13. 单击左上角的 Return to Cloud portal 返回到 SmartCloud 的 Overview 页面。
  14. 转到 Control Panel > Images,选择 Cloned ImageCreate Instance
  15. 当配置实例时,可以看到 Instance Details 在 SmartCloud 门户中显示了新的 html。
    图 15. 启动一个实例
    启动一个实例
  16. 在创建实例后,应该能够登录到该实例,启动 vncserver 并启动该实例上的 Google Chrome。
  17. 连接到 localhost,然后您可以看到 XAMPP 的语言选择页面。选择 English。验证 Apache Web Server 是否确实在工作。
  18. 单击 CD Collection,确保 PHP 和 MySQL 也已安装并成功启动。
    图 16. 验证 XAMPP
    验证 XAMPP

使用 parameters.xml 让用户定制镜像

请注意,我们使用了 localhost 来验证实例上的 XAMPP 安装。您还不能从 VM 外部访问它。要支持访问,则需要启用该端口并执行一些配置更改。作为这些更改的一部分,我们还允许更改 Apache Web Server 端口。

  1. 更新 parameters.xml 并将它上传到 Rational Asset Manager,如下所示:
    清单 1.
    <?xml version="1.0" encoding="UTF-8"?>
    <parameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:noNamespaceSchemaLocation="parameters.xsd">
      <field name="Port" type="string" label="Apache Web Server Port"
                      description="Specify the Port for external access to the 
                                   Apache Web Server">
       <values>
        <value>80</value>
       </values>
      </field>
       <firewall>
           <rule>
              <source>0.0.0.0/0</source>
              <minport>1</minport>
              <maxport>65535</maxport>
           </rule>
       </firewall>
    </parameters>

    您添加了 Port 作为一个新配置参数。使用以下脚本从 installXAMPP.sh 中提取此参数:/usr/bin/extract-parameters.pl "Port" /etc/cloud/parameters.xml

  2. 更新 installXAMPP.sh,如下所示,并将它上传到 Rational Asset Manager:
    #!/bin/sh
    wget http://www.apachefriends.org/download.php?xampp-linux-1.7.7.tar.gz
    sudo tar xvfz xampp-linux-1.7.7.tar.gz -C /opt
    uname -p | grep x86_64
    if [ $? -eq 0 ]; then
       sudo sed -i '/^# XAMPP is currently 
       32 bit only$/,+12 s.^.#.' /opt/lampp/lampp
       sudo yum -y install glibc.i686
    fi
    
    # Configure port for external access
    port=80
    if [ -e /etc/cloud/parameters.xml ] ; then
      # Get user specified information from the parameter.xml file
      port=$(/usr/bin/extract-parameters.pl "Port" /etc/cloud/parameters.xml)
    fi
    sudo sed -i "s/^ServerName .*/ServerName `hostname 
        --fqdn`:$port/" /opt/lampp/etc/httpd.conf
    sudo sed -i "s/^Port .*/Port $port/" /opt/lampp/etc/httpd.conf
    sudo iptables -I INPUT -m state --state NEW -p tcp 
       --destination-port $port -j ACCEPT
    sudo /etc/init.d/iptables save
    sudo sed  -i "s/\\tDeny from all/#\\tDeny from all/"
                   /opt/lampp/etc/extra/httpd-xampp.conf
    
    sudo /opt/lampp/lampp start
  3. 现在可以再次配置一个新实例。它可能会在第 2 步(创建实例)中显示 Loading Additional 参数,因为 SmartCloud Portal 会从 Rational Asset Manager 中检索参数。请单击 Next,这一次您会在第 2b 步中看到该参数具有默认端口 80。将它更改为 8080,以便显示新端口将会生效。
    图 17. 指定新实例的端口
    指定新实例的端口
  4. 验证第 3 步中的实例详细信息并单击 Next
    图 18. 验证配置
    验证配置
  5. 在第 4 步中选择 I agree 来接受许可条款和条件,然后单击 Submit
    图 19. 接受许可条款和协议
    接受许可条款和协议
  6. 请注意,此处还显示了 GoogleChrome 软件包,因为它由 ICCT 安装在用于克隆当前镜像的已捕获的镜像上。但是,您不会看到任何 XAMM 软件包。本文章系列的第 4 部分将介绍此主题。
    图 20. 在 Instance 选项卡中查看实例
    在 Instance 选项卡中查看实例
  7. 这一次,您会在端口 8080 上启动,而且脚本已在防火墙中启用了端口 8080。您可以从外部访问此 VM。
    图 21. 验证 XAMPP
    验证 XAMPP

创建一个具有依赖关系的软件包

执行以下步骤,创建一个对 Google Chrome 软件包有依赖关系的 XAMPP 软件包,然后使用两个软件包创建一个定制镜像。

  1. 在创建新软件包时,将存储位置从本地更改为您的云提供商。Universal ID 和 Version 在 ICCT 中惟一地标识软件包。单击 Create
    图 22. 创建新软件包
    创建新软件包
  2. 可以在 XAMPP 中的 General 选项卡中输入这些产品,如下所示,此操作是可选操作。只有在希望创建对一个包中的特定产品的依赖关系时才需要这么做。您可以跳过这个步骤。
    图 23. XAMPP 的基本信息
    XAMPP 的基本信息
  3. 在 Requirements 选项卡中,在 Required Bundles 中添加 GoogleChrome
    图 24. 添加对 GoogleChrome 的依赖关系
    添加对 GoogleChrome 的依赖关系
  4. 在 Install 选项卡中添加 installXAMPP.sh,如图 25 所示。

    installXAMPP.sh 可按照如下方式进行调用:

    installXAMPP.sh -tarball ${Archive Name} -port ${Apache Web Server Port}
    图 25. XAMPP 的安装选项配置
    XAMPP 的安装选项配置

    以下是软件包的 installXAMPP.sh:

    #!/bin/sh
    tarball=$2
    if [ -z $tarball ]; then
       tarball=xampp-linux-1.7.7.tar.gz
    fi
    port=$4
    if [ -z $port ]; then
       port=80
    fi
    sudo wget http://www.apachefriends.org/download.php?$tarball
    sudo tar xvfz $tarball -C /opt
    uname -p | grep x86_64
    if [ $? -eq 0 ]; then
       sudo sed -i '/^# XAMPP is currently 32 bit only$/,+12 s.^.#.' /opt/lampp/lampp
       sudo yum -y install glibc.i686
    fi
  5. 以下是软件包结构的一种供参考的初期形式,可让您了解在发布软件包时 ICCT 会将文件上传到 Rational Asset Manager 中的何处。installXAMPP.sh 放在 Rational Asset Manager 资产的 imageBuild/newStep 目录中。models 目录包含 Automation 和 Semantic 拓扑结构文件,这些文件中包含软件包的依赖关系和需求。
    图 26. 软件包的文件结构
    软件包的文件结构
  6. 创建 configureXAMPPPort.sh,并将它添加到一个 ConfigurePort 操作的 Configuration 选项卡中,如图 27 所示。configureXAMPPPort.sh 放在 imageDeploy/configureport 目录中,如图 26 所示。
    图 27. 将 configureXAMPPPort.sh 添加到 configuration 选项卡中
    将 configureXAMPPPort.sh 添加到 configuration 选项卡中

    configureXAMPP.sh 可使用以下脚本来调用:configureXAMPPPort.sh -port ${Apache Web Server Port}

    以下是 configureXAMPPPort.sh:

    #!/bin/sh
    
    port=$2
    if [ -z $port ]; then
       port=80
    fi
    sudo sed -i "s/^ServerName .*/ServerName `hostname 
       --fqdn`:$port/" /opt/lampp/etc/httpd.conf
    sudo sed -i "s/^Listen .*/Listen $port/" /opt/lampp/etc/httpd.conf
    sudo iptables -I INPUT -m state --state NEW -p tcp 
       --destination-port $port -j ACCEPT
    sudo /etc/init.d/iptables save
    sudo sed -i "s/\\tDeny from all/#\\tDeny from all/" 
        /opt/lampp/etc/extra/httpd-xampp.conf
    sudo /opt/lampp/lampp start
  7. 创建 cleanupXAMPPLogs.sh,并将它添加到 Reset 选项卡的 imageCapture/newstep 目录中。创建 cleanupXAMPPLogs.sh,并将它添加到 Reset 选项卡中,如图 28 所示。cleanupXAMPPLogs.sh 放在 Rational Asset Manager 资产的 imageCapture/newstep 目录中,如图 26 所示。
    图 28. 将 cleanupXAMPPLogs.sh 添加到 Reset 选项卡中
    将 cleanupXAMPPLogs.sh 添加到 Reset 选项卡中

    以下是 cleanupXAMPPLogs.sh 的内容:

    #!/bin/sh
    
    sudo /opt/lampp/lampp stop
    sudo rm -f /opt/lampp/logs/*
  8. 单击 Save 图标并确认状态已更改为 Valid。
  9. 单击 Publish 图标将资产保存在 Rational Asset Manager 中。状态被更改为 Published。图 26 中所示的 Rational Asset Manager 资产现在可在 SmartCloud Enterprise 中的 Asset 目录中查看。

结束语

在本文中,通过一个简单示例,我们学习了如何使用 IBM SmartCloud Enterprise 上的 ICCT 来克隆和修改 Rational Asset Manager 资产,从而获得定制的配置。本系列文章的第 4 部分将介绍使用 ICCT 创建图像的三种方式。

参考资料

学习

获得产品和技术

  • 以最适合您的方式 评估 IBM 产品:下载产品试用版、在线试用产品、在云环境下使用产品,或者在 SOA 沙盒 中花费几个小时来学习如何高效实现面向服务的架构。

讨论

  • 加入 developerWorks 中文社区。探索由开发人员推动的博客、论坛、讨论组和维基,并与其他 developerWorks 用户进行交流。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Cloud computing, Rational
ArticleID=872982
ArticleTitle=IBM SmartCloud Enterprise 管理,第 3 部分: 克隆和修改已定制的资产
publish-date=04222013