嘗試在 IBM SmartCloud Enterprise+ 上安裝軟體時,可能會遇到一些潛在的問題。考慮到這一點,您需要考慮以下這種替代安裝方法,本文使用 Internet Information Services Version 6 作為一個樣本。
本文使用的環境包含:
Internet Information Services (IIS) V6 32 位
使用 Microsoft Windows 2003/2008 Server 作為 WMware ESXBox 上的虛擬機器
Cygwin(預設安裝在 Windows VM 上)
SmartCloud Enterprise+
快速部署服務 (RDS)
簡單包安裝程式 (SPIN)
AIX
Tivoli Service Automation Manager(以及已安裝的 Tivoli Process Automation Engine (TPAE)、Tivoli Service Request Manager (TSRM) 和 Tivoli Provisioning Manager (TPM))
Windows 2003 或 2008 Server 用作 vmware ESXBox 上的虛擬機器
Cygwin 預設安裝在 windows VM 上
這是一種典型的雲環境,在這種環境中,您既有一個管理環境,也有一個被管理的環境;軟體會從管理環境安裝到被管理的環境(也就是從 Tivoli Service Automation Manager 安裝到虛擬機器)。
問題
我們希望將一個軟體安裝在 IBM SmartCloud Enterprise+ 上的一個 Windows 作業系統中。為示範此方法而安裝的軟體是 Internet Information Services Version 6。使用具有啟用了 SmartCloud 的快速部署服務和簡單包安裝程式的 Cygwin 環境來安裝 IIS。如果不熟悉這些技術,請先查看本文的 結束語。
當由於無法啟動作業系統中的某些必要服務而無法啟動安裝進程時,傳統的安裝就會出現問題。在這種情況下,可以在安裝日誌中看到 IIS 錯誤訊息,如清單 1 所示。
清單 1. 終止安裝進程的 IIS 日誌錯誤訊息
v10\spinPackage\spin\tools\iis\iis_on_base.txt" failed with the below error message[4/18/2012 14:24:21] OC_CLEANUP:Executing Postinstall for the WWW component...[4/18/2012 14:24:21] OC_CLEANUP:Calling RunMofCompOnIISFiles[4/18/2012 14:24:21] OC_CLEANUP:InetStartSerice():ServiceName=W3SVC unable to startWARNING. Err=0x424.[4/18/2012 14:24:22] OC_CLEANUP:!FAIL![4/18/2012 14:24:22] OC_CLEANUP:Postinstall of Component 'iis_www' FAILED[4/18/2012 14:24:22] OC_CLEANUP:Executing Postinstall for the FTP component...[4/18/2012 14:24:22] OC_CLEANUP:InetStartSerice():ServiceName=MSFTPSVC unable to startWARNING. Err=0x424.[4/18/2012 14:24:22] OC_CLEANUP:!FAIL![4/18/2012 14:24:22] OC_CLEANUP:Postinstall of Component 'iis_ftp' FAILED[4/18/2012 14:24:22] OC_CLEANUP:ProcessSection.[OC_CLEANUP}.Start.[4/18/2012 14:24:22] OC_CLEANUP:...ProcessEntry:100=5...[4/18/2012 14:24:22] OC_CLEANUP:Calling ProcessSection:SNMP_W3SVC_chk_cleanup:Start.
該問題的確切原因不得而知,但該問題是因為一些服務(比如 MSFTPSVC 和 W3SVC)無法供要啟動的安裝程式使用而引起的(這些服務通常只在使用者登入到作業系統後才能使用)。
傳統方法
預設情況下,Tivoli Service Automation Manager 使用了一個基於 SSH 的鏈路來串連虛擬機器。所有在 SmartCloud Enterprise+ 中的 Windows 虛擬機器預設情況下已將 Cygwin 安裝,所以 Tivoli Service Automation Manager 登入到 Windows VM 時使用一個 SSH 串連到 Cygwin 環境中。這使所有操作能夠通過 Cygwin 在 Windows VM 上執行。Tivoli Service Automation Manager 的 device.execute 工作流程通常用於在 Cygwin shell 上執行命令。該 shell 調用 Windows 的命令提示字元來執行任何 Windows 操作。所有 BAT 檔案都可使用 cmd \c {command} 從 Cygwin shell 執行。
device.execute 命令可按以下方式使用:
cmdtlcmTmpDir = "cmd /C " + "\"" + "mkdir " + TempDir + "\""
Device.ExecuteCommand(DeviceID, cmdtlcmTmpDir, <null>, "default", "6000", "ignore",
<null>, <null>, <null>)
DeviceID 是需要用來執行該命令的目標虛擬機器。