转自:http://www.ibm.com/developerworks/cn/websphere/techjournal/0911_stelzer/0911_stelzer.html
IBM WebSphere CloudBurst Appliance 是一个新的促进私有云环境创建和管理的 IBM 硬件设备。WebSphere CloudBurst 模式表示可共享、可重复的部署的拓扑定义,它在私有云创建中具有重要作用。WebSphere CloudBurst 包含几个基于行业最佳实践的预加载 WebSphere Application Server 模式。WebSphere CloudBurst 不仅提供这些模式以帮助您快速构建带有不同拓扑的虚拟系统,它还允许您定制云以满足您的业务要求。
您可以使用一些定制技术,比如,您可以:
本系列的 第 1 部分 重点介绍了这些和其他一些技术。本文主要关注脚本包,内容涉及:
脚本包设计用于定制模式中的各个部件的行为。使用脚本包的目的是在 WebSphere CloudBurst 提供的标准定制之外进一步定制您的 WebSphere Application Server 环境。一个典型的场景是将一个 WebSphere Application Server 应用程序安装到 WebSphere CloudBurst 提供的服务器或集群环境中,如本系列 第 1 部分 所述。
脚本包是包含要执行的工件和要在其上执行的工件的归档文件(.zip)。脚本包可以简单到只包含一个脚本文件,也可以复杂到包含一个全新的产品。WebSphere CloudBurst 没有定义或限制脚本包的内容。包含在脚本包中的脚本定义脚本包的要求。图 1 展示一个样例脚本包的内容。
如图所示,这个样例脚本包名为 MyLabApplication.zip,包含两类文件:
模式由虚拟映像部件组成,每个虚拟映像部件部署后都在自己的虚拟机内运行。每个脚本包与一个虚拟映像部件关联。部署时,虚拟映像部件变成一个虚拟机,与该虚拟映像部件关联的脚本包在那个虚拟机上运行。关联脚本包和虚拟映像部件非常简单,只需将脚本包拖放到虚拟映像部件上。
在部署过程中,WebSphere CloudBurst 首先为每个虚拟映像部件创建并配置一个虚拟机。一旦这个拓扑配置完成并运行,WebSphere CloudBurst 将作为根上下文通过 SSH 连接到脚本包指向的虚拟机。然后,WebSphere CloudBurst 将解压缩脚本包归档文件并执行其中的脚本。
本小节介绍创建一个脚本包并将其部署到云的步骤。
创建一个包含可执行脚本和支持工件的归档文件(.zip)后,您就可以在 WebSphere CloudBurst 中创建一个脚本包。
脚本包上也没有人为限制。您的脚本包可以安装应用程序,配置 WebSphere Application Server,调优操作系统和安装全新的产品等。尽管没有限制,但有一些关于脚本包的用法的最佳实践,本系列 第 1 部分 介绍了相关的最佳实践。
您可能已经注意到,这个示例的许多脚本包字段使用了变量。这里有两类变量:
为了更好地理解这一点,请看看图 7 中的 Arguments 字段,注意 ${WAS_PASSWORD} 的使用。部署时,您需要为该环境输入一个密码,这个密码将在脚本包执行期间使用。不推荐使用硬编码密码方法,否则您的脚本包将绑定到使用相同密码的部署。
表 1 显示了一些经常使用的变量(WebSphere CloudBurst 定义的变量的完整列表可以在 WebSphere CloudBurst Information Center 找到)。记住,您不能使用 WebSphere CloudBurst 定义的变量名称创建用户定义变量。
| 变量 | 说明 |
|---|---|
| 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 界面来上传脚本包并操作该设备内已存在的脚本包。
这里有两个由命令行工具定义的与脚本包相关的对象:
图 8 展示如何使用命令行工具创建 My Demo Script. Package 脚本包(已使用 Web 控制台在前面的插图中定义)。
图 9 展示列示、查询和更新此设备中包含的脚本包的属性的典型命令。
您还可以利用命令行界面来更改脚本包的访问控制配置,甚至使用脚本包的 ID 从此设备删除一个脚本包,如图 10 所示。
模式创建的细节超出了本文的范围,但是让我们看看与脚本包相关的几个问题。
当您使用一个带有用户定义变量的脚本包创建您的模式时,将有机会为没有关联值的键定义值,或者修改那些已经定义值的变量的值(见图 11)。
如前所述,模式由虚拟映像部件组成,每个虚拟映像部件在部署时将在自己的虚拟机中运行。脚本包应该关联到执行该脚本包的虚拟机。通过用户界面创建模式时,您应该将脚本包拖放到虚拟映像部件之上。
也可以使用命令行工具关联脚本包和虚拟映像部件,您可以通过访问模式对象而不是使用脚本对象完成这个任务。图 12 展示了关联到一个模式的脚本包。
在部署过程中,WebSphere CloudBurst 首先为每个虚拟映像部件创建并配置一个虚拟机。一旦这个拓扑配置完成并运行,WebSphere CloudBurst 将作为根上下文 SSH 到脚本包对应的虚拟机,并将归档文件解压缩到该脚本包的 Working directory 字段定义的位置。接下来,它将运行 Executable 字段定义的命令,传递 Arguments 字段定义的参数。图 13 展示了这个简单的流程。
如果您在脚本包的 Logging directory 中定义了日志位置,WebSphere CloudBurst 将在该脚本包运行后开始收集日志,您可以通过虚拟系统视图查看这些日志。图 14 突出显示了脚本包日志的位置。每个已执行的脚本包都有独立的日志。
有时您可能需要改善一个脚本包的配置。脚本包格式允许您将一个名为 cbscript.json 的文件添加到归档文件的根目录。这个配置文件包含您的脚本包定义。通过将 cbscript.json 直接添加到您的归档文件中,您无需在创建脚本包时输入这个信息,这不仅有助于避免管理控制台上的排版错误,还有助于在多个设备间共享脚本包。
图 15 展示上述示例脚本包的 cbscript.json。
执行脚本包内定义的脚本时,WebSphere CloudBurst 拥有对多个环境变量的访问权,表 1 展示了部分这样的变量。这些预定义变量可以通过在要访问的变量的虚拟机上查找 /etc/virtualimage.properties 文件来访问。找到该文件后,您就可以利用 WebSphere CloudBurst 定义的所有变量。要取查找属性文件,您需要输入 ./etc/virtualimage.properties。图 16 展示了一个查找属性文件的示例,后面用几个 echo 语句展示预定义变量现已可用。
脚本包允许您进一步增强和定制您的 WebSphere Application Server 环境。可以定制的设置小到单个 WebSphere Application Server 属性,大到一个全新产品的安装和配置。如您所见,脚本包概念的设计具有通用性和灵活性,这大大增加了脚本包的用途。因模式所提供的功能不能满足需求而需要进行额外的定制和增强时,这种灵活性使脚本包可以发挥相应作用。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14789789/viewspace-628278/ ,如需转载,请注明出处,否则将追究法律责任。