本文将介绍一种在运行于 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 /ruadministrator /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 是一组完整的服务,旨在帮助实现复杂的多产品部署;它采用了一种自动化的模式驱动方法以及全面的测试和验证,可以帮助缩短部署时间,降低出错率,提供必要的专业技能。