WEB开发网
开发学院服务器云计算 使用 WebSphere CloudBurst 实现定制,第 3 部分:... 阅读

使用 WebSphere CloudBurst 实现定制,第 3 部分: 使用脚本包定制超级模式

 2010-04-27 00:00:00 来源:WEB开发网   
核心提示:简介IBM WebSphere CloudBurst Appliance 是一个新的促进私有云环境创建和管理的 IBM 硬件设备,WebSphere CloudBurst 模式表示可共享、可重复的部署的拓扑定义,使用 WebSphere CloudBurst 实现定制,第 3 部分: 使用脚本包定制超级模式,它在私有云

简介

IBM WebSphere CloudBurst Appliance 是一个新的促进私有云环境创建和管理的 IBM 硬件设备。WebSphere CloudBurst 模式表示可共享、可重复的部署的拓扑定义,它在私有云创建中具有重要作用。WebSphere CloudBurst 包含几个基于行业最佳实践的预加载 WebSphere Application Server 模式。WebSphere CloudBurst 不仅提供这些模式以帮助您快速构建带有不同拓扑的虚拟系统,它还允许您定制云以满足您的业务要求。

您可以使用一些定制技术,比如,您可以:

定制预加载虚拟映像和模式。

使用管理控制台直接配置已部署 WebSphere Application Server 环境。

定义自己的脚本以配置已部署环境。

本系列的 第 1 部分 重点介绍了这些和其他一些技术。本文主要关注脚本包,内容涉及:

一个典型脚本包的格式和构成。

如何在此设备中上传并管理脚本包。

如何关联脚本包和模式。

如何在虚拟系统中传输和运行脚本包。

脚本包

脚本包设计用于定制模式中的各个部件的行为。使用脚本包的目的是在 WebSphere CloudBurst 提供的标准定制之外进一步定制您的 WebSphere Application Server 环境。一个典型的场景是将一个 WebSphere Application Server 应用程序安装到 WebSphere CloudBurst 提供的服务器或集群环境中,如本系列 第 1 部分 所述。

脚本包是包含要执行的工件和要在其上执行的工件的归档文件(.zip)。脚本包可以简单到只包含一个脚本文件,也可以复杂到包含一个全新的产品。 WebSphere CloudBurst 没有定义或限制脚本包的内容。包含在脚本包中的脚本定义脚本包的要求。图 1 展示一个样例脚本包的内容。

图 1. 样例脚本包的典型内容
使用 WebSphere CloudBurst 实现定制,第 3 部分: 使用脚本包定制超级模式

查看原图(大图)

如图所示,这个样例脚本包名为 MyLabApplication.zip,包含两类文件:

J2EE™ 应用程序 EAR 文件,表示要安装的应用程序。

可执行的 Jython 脚本文件(文件扩展名为 .jy),包含对单个 WebSphere Application Server 实例或一个 WebSphere Application Server 实例集群执行应用程序安装的逻辑。

模式由虚拟映像部件组成,每个虚拟映像部件部署后都在自己的虚拟机内运行。每个脚本包与一个虚拟映像部件关联。部署时,虚拟映像部件变成一个虚拟机,与该虚拟映像部件关联的脚本包在那个虚拟机上运行。关联脚本包和虚拟映像部件非常简单,只需将脚本包拖放到虚拟映像部件上。

在部署过程中,WebSphere CloudBurst 首先为每个虚拟映像部件创建并配置一个虚拟机。一旦这个拓扑配置完成并运行,WebSphere CloudBurst 将作为根上下文通过 SSH 连接到脚本包指向的虚拟机。然后,WebSphere CloudBurst 将解压缩脚本包归档文件并执行其中的脚本。

一个端到端脚本包场景

本小节介绍创建一个脚本包并将其部署到云的步骤。

创建一个包含可执行脚本和支持工件的归档文件(.zip)后,您就可以在 WebSphere CloudBurst 中创建一个脚本包。

导航到 Catalog => Script Packages,要创建一个脚本包,单击绿色加号图标。图 2 展示了一个名为 My Demo Script Package 的脚本包。

将您的归档文件上传到 WebSphere CloudBurst。单击 Browse... 按钮,从您的本地文件系统选择您的归档文件,然后单击 Upload。这个操作花费的时间取决于归档文件的大小和您的网络连接的速度。这个步骤完成后,您将在 Upload 按钮下接收到一条操作成功确认消息。

图 2. 上传 .zip 或 .tar 归档文件
使用 WebSphere CloudBurst 实现定制,第 3 部分: 使用脚本包定制超级模式

查看原图(大图)

定义想要 WebSphere CloudBurst 调用的可执行文件。由于本示例的目的是安装一个应用程序,因此将您的 Executable 字段指向图 3 中的 wsadmin.sh 命令。(这个可执行文件不一定是 wsadmin.sh,它可以是在驻留在目标环境或归档文件中的任何可执行文件)。

脚本包上也没有人为限制。您的脚本包可以安装应用程序,配置 WebSphere Application Server,调优操作系统和安装全新的产品等。尽管没有限制,但有一些关于脚本包的用法的最佳实践,本系列 第 1 部分 介绍了相关的最佳实践。


图 3. 定义要运行的可执行文件
使用 WebSphere CloudBurst 实现定制,第 3 部分: 使用脚本包定制超级模式

查看原图(大图)

定义参数。Arguments 字段在图 4 中突出显示,这里定义的参数将在可执行文件运行时传送到该可执行文件。在本例中,归档文件包含两个文件,一个 EAR 文件和一个 Jython 脚本 appInstall.jy。该脚本文件安装归档文件中包含的 EAR 文件。

图 4. 定义可执行文件的参数
使用 WebSphere CloudBurst 实现定制,第 3 部分: 使用脚本包定制超级模式

查看原图(大图)

定义工作目录。图 5 展示了 Working directory 字段,该字段的值表明您的脚本包中的内容的解压缩目录。

图 5. 定义工作目录
使用 WebSphere CloudBurst 实现定制,第 3 部分: 使用脚本包定制超级模式

查看原图(大图)

图 6 中的 Logging directory 字段告诉 WebSphere CloudBurst 用于存储执行脚本包产生的日志的目录;这不是告诉可执行文件何处放置日志的输入。由于您在这里定义了日志位置,您将能够使用 WebSphere CloudBurst 来查看这些日志(稍后将进行展示)。

图 6. 定义日志目录
使用 WebSphere CloudBurst 实现定制,第 3 部分: 使用脚本包定制超级模式

查看原图(大图)

您可能已经注意到,这个示例的许多脚本包字段使用了变量。这里有两类变量:

用户定义变量在 Environment 字段中定义(见图 7)。这些变量特定于定义它们的脚本包。一个变量在 Environment 字段中定义后,它就可以用于归档文件中定义的脚本或脚本包本身的定义。您可以输入一个键及其默认值或只输入一个键。如果您只输入键(或者甚至只输入一个值),您就有机会在模式创建或部署时输入或覆盖那个值。这个示例定义一个不带关联值的 DB2_HOSTNAME 变量,因此该值需要在部署前定义。

WebSphere CloudBurst 定义自己的变量组并使用 os.environ[‘…’](即 os.environ[‘CELL_NAME’])命令使它们对归档文件内部定义的脚本可用。这些变量也可用于脚本包的定义。这些变量是所有脚本包都通用的,但变量值是运行脚本包的上下文特定的。

为了更好地理解这一点,请看看图 7 中的 Arguments 字段,注意 ${WAS_PASSWORD} 的使用。部署时,您需要为该环境输入一个密码,这个密码将在脚本包执行期间使用。不推荐使用硬编码密码方法,否则您的脚本包将绑定到使用相同密码的部署。

图 7. 定义环境变量
使用 WebSphere CloudBurst 实现定制,第 3 部分: 使用脚本包定制超级模式

查看原图(大图)

表 1 显示了一些经常使用的变量(WebSphere CloudBurst 定义的变量的完整列表可以在 WebSphere CloudBurst Information Center 找到)。记住,您不能使用 WebSphere CloudBurst 定义的变量名称创建用户定义变量。

表 1. 部分预定义 WebSphere Application Server 环境变量

变量说明
CELL_NAME单元名
NODE_NAME节点名
WAS_INSTALL_ROOT安装根目录(例如 C:/WebSphere/AppServer)
WAS_PROFILE_ROOT配置根目录(例如 C:/WebSphere/AppServer/profiles/DefaultProfile)
PROFILE_NAME配置文件简短名称(例如 DefaultProfile)
HOSTNAME托管 WebSphere Application Server 实例的虚拟机的名称
WAS_USERNAME用户名
WAS_PASSWORD密码

除 Web 控制台之外,WebSphere CloudBurst 提供一个命令行工具和一些 HTTP REST 界面来上传脚本包并操作该设备内已存在的脚本包。

这里有两个由命令行工具定义的与脚本包相关的对象:

表示当前驻留在设备上的脚本包的容器的脚本对象,提供创建、删除、迭代、列示和搜索这些脚本包的属性和方法。

表示上传到 WebSphere CloudBurst 的单个脚本包的脚本对象,提供配置特定脚本包的属性和方法。

图 8 展示如何使用命令行工具创建 My Demo Script Package 脚本包(已使用 Web 控制台在前面的插图中定义)。

图 8. 创建 My Demo Script Package 的命令行
使用 WebSphere CloudBurst 实现定制,第 3 部分: 使用脚本包定制超级模式

查看原图(大图)

图 9 展示列示、查询和更新此设备中包含的脚本包的属性的典型命令。

图 9. 列示、查询和更新脚本包的属性
使用 WebSphere CloudBurst 实现定制,第 3 部分: 使用脚本包定制超级模式

查看原图(大图)

您还可以利用命令行界面来更改脚本包的访问控制配置,甚至使用脚本包的 ID 从此设备删除一个脚本包,如图 10 所示。

图 10. 更改 ACL 和删除脚本包
使用 WebSphere CloudBurst 实现定制,第 3 部分: 使用脚本包定制超级模式

查看原图(大图)

模式创建的细节超出了本文的范围,但是让我们看看与脚本包相关的几个问题。

当您使用一个带有用户定义变量的脚本包创建您的模式时,将有机会为没有关联值的键定义值,或者修改那些已经定义值的变量的值(见图 11)。

如前所述,模式由虚拟映像部件组成,每个虚拟映像部件在部署时将在自己的虚拟机中运行。脚本包应该关联到执行该脚本包的虚拟机。通过用户界面创建模式时,您应该将脚本包拖放到虚拟映像部件之上。

图 11. 为用户定义变量指定值
使用 WebSphere CloudBurst 实现定制,第 3 部分: 使用脚本包定制超级模式

查看原图(大图)

也可以使用命令行工具关联脚本包和虚拟映像部件,您可以通过访问模式对象而不是使用脚本对象完成这个任务。图 12 展示了关联到一个模式的脚本包。

图 12. 使用命令行界面关联脚本包和虚拟映像部件
使用 WebSphere CloudBurst 实现定制,第 3 部分: 使用脚本包定制超级模式

查看原图(大图)

在部署过程中,WebSphere CloudBurst 首先为每个虚拟映像部件创建并配置一个虚拟机。一旦这个拓扑配置完成并运行,WebSphere CloudBurst 将作为根上下文 SSH 到脚本包对应的虚拟机,并将归档文件解压缩到该脚本包的 Working directory 字段定义的位置。接下来,它将运行 Executable 字段定义的命令,传递 Arguments 字段定义的参数。图 13 展示了这个简单的流程。

图 13. 脚本包执行流
使用 WebSphere CloudBurst 实现定制,第 3 部分: 使用脚本包定制超级模式

如果您在脚本包的 Logging directory 中定义了日志位置,WebSphere CloudBurst 将在该脚本包运行后开始收集日志,您可以通过虚拟系统视图查看这些日志。图 14 突出显示了脚本包日志的位置。每个已执行的脚本包都有独立的日志。

图 14. 脚本包日志
使用 WebSphere CloudBurst 实现定制,第 3 部分: 使用脚本包定制超级模式

查看原图(大图)

其他问题

使用 cbscript.json 的主脚本包

有时您可能需要改善一个脚本包的配置。脚本包格式允许您将一个名为 cbscript.json 的文件添加到归档文件的根目录。这个配置文件包含您的脚本包定义。通过将 cbscript.json 直接添加到您的归档文件中,您无需在创建脚本包时输入这个信息,这不仅有助于避免管理控制台上的排版错误,还有助于在多个设备间共享脚本包。

图 15 展示上述示例脚本包的 cbscript.json。


图 15. 示例 cbscript.json 文件
使用 WebSphere CloudBurst 实现定制,第 3 部分: 使用脚本包定制超级模式

查看原图(大图)

脚本包环境

执行脚本包内定义的脚本时,WebSphere CloudBurst 拥有对多个环境变量的访问权,表 1 展示了部分这样的变量。这些预定义变量可以通过在要访问的变量的虚拟机上查找 /etc/virtualimage.properties 文件来访问。找到该文件后,您就可以利用 WebSphere CloudBurst 定义的所有变量。要取查找属性文件,您需要输入 ./etc/virtualimage.properties。图 16 展示了一个查找属性文件的示例,后面用几个 echo 语句展示预定义变量现已可用。


图 16. 查找 /etc/virtualimage.properties 的示例
使用 WebSphere CloudBurst 实现定制,第 3 部分: 使用脚本包定制超级模式

结束语

脚本包允许您进一步增强和定制您的 WebSphere Application Server 环境。可以定制的设置小到单个 WebSphere Application Server 属性,大到一个全新产品的安装和配置。如您所见,脚本包概念的设计具有通用性和灵活性,这大大增加了脚本包的用途。因模式所提供的功能不能满足需求而需要进行额外的定制和增强时,这种灵活性使脚本包可以发挥相应作用。

Tags:使用 WebSphere CloudBurst

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接