IBM SmartCloud Enterprise+ 技巧: 使用 TSAM 和 Cygwin 在 Windows 上安装软件

在 Update Installer 快捷键无效的情况下使用此方法

本文将介绍 Windows® 操作系统调度任务的原生方法,在使用 Cygwin 脚本为 Tivoli® Service Automation Manager 产品安装软件(在本文中是 IBM® WebSphere® Application Server)的替代方法中,会用到这种方法。

Bhanu P Tholeti, 系统工程师和架构师, IBM

Bhanuprakash 过去 8 年一直在软件行业研究各种技术和产品,比如在 Pocket PC、基于 Web 的应用程序、视频流解决方案以及 Tivoli Workload Scheduler、WebSphere Data Interchange、Tivoli Service Automation Manager 和 Tivoli Provisioning Manager 等产品之上进行应用程序开发。作为 IBM SmartCloud Enterprise 的一员,他拥有丰富的云基础架构和虚拟机管理程序知识。



K. Sowjanya Chakravarthi, 系统工程师, IBM

Sowjanya CK 在过去四年多一直在 IBM 从事各种产品的研发。涉及的工作包括将 Tivoli Provisioning Manager 移植到 z/linux、Go Symphony 插件开发和 SCEplus 开发。



2012 年 11 月 22 日

本文将介绍一种在运行于 IBM SmartCloud Enterprise+ 上的 Windows® 操作系统上安装软件的方法。此处展示的方法可以防止发生与 Windows Start 菜单的快捷键更新有关的问题。

问题

传统安装过程的一个常见问题是:Windows Start 菜单中的 Update Installer 的快捷键没有更新,这会导致安装进程终止。然而,当您使用 Windows 命令行模式安装时,安装过程不会出现任何错误。本文将使用 WebSphere Application Server (WAS) 演示这种安装方法。

要安装 WebSphere Application Server,需使用启用了 SmartCloud 的 Rapid Deployment Services (RDS) 和简单包安装技术 (simple package installer technology, SPIN) 的 Cygwin 环境。如果对这些技术不太熟悉,那么可以参考本文的 结束语 部分,其中提供了有关这些技术的简要介绍。


解决方案

如果您正在 Tivoli Provisioning Manager (TPM) 和 Tivoli Service Automation Manager (TSAM) 产品中开发脚本,以便在 Windows 系统上使用 Cygwin 执行软件安装,那么这个方法会对您很有帮助。该方法使用了 Windows 调度任务的原生方法,此方法在 Cygwin 中是受支持的。

本文并没有直接通过 Cygwin 调用命令来安装 WebSphere Application Server(通常从 Tivoli Provisioning Manager 工作流 scriptlet 中执行该命令,使用来自 Cygwin 的命令提示符),而是通过调度一个任务,该任务调用了一个包含安装 WebSphere Application Server 的命令的批处理文件。

调度该任务后,您可以立即运行它。它会成功安装 WebSphere Application Server。

要了解如何退出安装程序,请查看以下代码片段中的安装日志。

scriptlet(bitNess,SoftwareInstallableFileName,spinDirCygwin,JAVA_HOME,decryptedPassword)
 language=bash target=DCMQuery(/Server[@id=$DeviceID]) timeout=6000 <<EOS

     cd $spinDirCygwin
     #unzip WAS-V70-BASE-V10.zip
     unzip $SoftwareInstallableFileName

     installableFileWithOutExt=`echo $SoftwareInstallableFileName | sed 's/.zip//g'`     

     
     mv $spinDirCygwin/*UPDI*
        $spinDirCygwin/$installableFileWithOutExt/spinPackage/software/was/v7/maint/
     if [ $bitNess == "64-bit" ];  then
          mv $spinDirCygwin/C1G2JML.zip
		   $spinDirCygwin/$installableFileWithOutExt/
		    spinPackage/software/was/v7/nd/
          mv $spinDirCygwin/*.pak
		   $spinDirCygwin/$installableFileWithOutExt/
		    spinPackage/software/was/v7/maint/
          mv $spinDirCygwin/*UPDI*
		   $spinDirCygwin/$installableFileWithOutExt/
		    spinPackage/software/was/v7/maint/
     else
          mv $spinDirCygwin/C1G2GML.zip
		   $spinDirCygwin/$installableFileWithOutExt/
		    spinPackage/software/was/v7/nd/
          mv $spinDirCygwin/*.pak
		   $spinDirCygwin/$installableFileWithOutExt/
		    spinPackage/software/was/v7/maint/
          mv $spinDirCygwin/*UPDI*
		   $spinDirCygwin/$installableFileWithOutExt/
		    spinPackage/software/was/v7/maint/
     fi

     cd $spinDirCygwin/$installableFileWithOutExt/spinPackage


     echo "set PATH=$JAVA_HOME\bin;%PATH% " > install.bat
     echo " cd C:\spin\\$installableFileWithOutExt\spinPackage\ " >> install.bat
     echo " cmd /c sce-was-v7-base-install.bat " >> install.bat

     echo "set PATH=$JAVA_HOME\bin;%PATH% " > installdmgr.bat
     echo " cmd /c sce-was-v7-dmgr.bat " >> installdmgr.bat

     echo "set PATH=$JAVA_HOME\bin;%PATH% " > installmanager.bat
     echo " cmd /c sce-was-v7-managed.bat localhost  " >> installmanager.bat

     chmod -R 755 $spinDirCygwin

     schtasks /create /tn "WASInstallSch" /tr
      "C:\spin\\$installableFileWithOutExt\spinPackage\install.bat"
      /sc daily /ru Administrator /rp $decryptedPassword
     schtasks /run /tn "WASInstallSch"     

     
     EOS

下面的命令调度了一个 cron 任务并立即执行该任务,并在执行完任务后删除它。

要在当前时间将该任务设置为每天运行,请执行以下命令:

schtasks /create /tn "Test Cron Job" /tr "C:\test.bat" /sc daily /ru
administrator /rp passwd

要立即运行该任务,请执行以下命令:

schtasks /run /tn "Test Cron Job"

要删除作业,请执行以下命令:

schtasks /delete /tn "Test Cron Job" /f

要读取最后的结果字段(如果得到 “0”,则表示安装成功),请执行以下命令:

schtasks /query /fo LIST /v

结束语

在尝试通过 Cygwin 软件并使用 SSH 连接安装软件时,这种调用安装功能的方法可用于任何存在此类潜在问题的软件安装。

本文中使用的技术

免费且开源的 Cygwin 是一种类似 UNIX® 的环境和适用于 Windows 的命令行接口,提供了基于 Windows 应用程序的本地集成、数据、其他系统应用程序资源、软件工具和类似 UNIX 环境的数据。您可以从 Cygwin 环境启动 Windows 应用程序,并在 Windows 操作环境中使用 Cygwin 工具和应用程序。

Cygwin 的组成内容包括:

  • 一个动态链接库 (DLL),它可以充当 API 兼容层,是 POSIX API 功能的重要组成部分。
  • 提供类似 UNIX 外观的软件工具和应用程序。

IBM 的 Rapid Deployment Services 是一组完整的服务,旨在帮助实现复杂的多产品部署;它采用了一种自动化的模式驱动方法以及全面的测试和验证,可以帮助缩短部署时间,降低出错率,提供必要的专业技能。

参考资料

学习

获得产品和技术

讨论

  • 加入 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, Tivoli
ArticleID=846718
ArticleTitle=IBM SmartCloud Enterprise+ 技巧: 使用 TSAM 和 Cygwin 在 Windows 上安装软件
publish-date=11222012