跳至主要内容

將自訂狀態報告新增至安裝 Script

自動安裝檔案中的建議預先定義巨集會報告最終作業系統部署狀態,並在下載及執行安裝後 Script 時報告狀態。您可以在安裝後 Script 中包含其他的狀態報告。

Linux

若是 Linux,您可以使用下列 curl 指令來報告狀態。
curl -X PUT -globoff #predefined.otherSettings.statusSettings.urlStatus#
-H "Content-Type: application/json" -d '{"deployStatus":{"id":"<status_ID>"}}'
-cert #predefined.otherSettings.statusSettings.certLocation#/cert.pem
-key #predefined.otherSettings.statusSettings.certLocation#/key.pem
-cacert #predefined.otherSettings.statusSettings.certLocation#/ca-bundle.crt

其中 <status_ID> 可以是下列其中一個值。

  • 44. 工作量部署成功

  • 45. 工作量部署正在執行,但出現警告

  • 46. 工作量部署失敗

  • 47. 工作量部署訊息

  • 48. 自訂安裝後 Script 錯誤

請注意,curl 指令針對 Lenovo XClarity Administrator 用於報告狀態的 HTTPS URL (predefined.otherSettings.statusSettings.urlStatus) 以及含有在第一次開機時從主機 OS 存取 urlStatus Web 服務所需要的憑證的資料夾 (predefined.otherSettings.statusSettings.certLocation),使用預先定義的巨集。下列範例會報告在安裝後 Script 中發生的錯誤。

下列範例會報告在安裝後 Script 中發生的錯誤。
curl -X PUT -globoff #predefined.otherSettings.statusSettings.urlStatus#
-H "Content-Type: application/json" -d '{"deployStatus":{"id":"48"}}'
-cert #predefined.otherSettings.statusSettings.certLocation#/cert.pem
-key #predefined.otherSettings.statusSettings.certLocation#/key.pem
-cacert #predefined.otherSettings.statusSettings.certLocation#/ca-bundle.crt

Windows

若是 Wiindows,您可以匯入 LXCA.psm1 Script,然後呼叫下列指令以報告狀態。

  • initializeRestClient

    起始設定 REST 用戶端。使用下列語法以執行此指令。執行報告指令之前,必須先執行此指令。

    initializeRestClient
  • testLXCAConnection

    確認 XClarity Administrator 可以連線至主機伺服器。使用下列語法以執行此指令。此指令是選擇性的,但建議在執行報告指令之前,在安裝 Script 中使用。

    testLXCAConnection –masterIP "#predefined.otherSettings.lxcaIp#"
  • reportWorkloadDeploymentSucceeded

    報告要記錄在 XClarity Administrator 工作日誌中的成功完成訊息。使用下列語法以執行此指令。

    提示
    如果自訂自動安裝檔案或安裝後 Script 中含有 #predefined.unattendSettings.reportWorkloadNotComplete# 巨集,則在安裝後 Script 中加入 reportWorkloadDeploymentSucceeded 指令,以表示成功完成。否則,XClarity Administrator 會在執行所有安裝後 Script 之後,自動報告完成狀態。
    reportWorkloadDeploymentSucceeded -masterIP "#predefined.otherSettings.lxcaIp#" 
    -UUID "#predefined.hostPlatforms.uuid#"
  • reportWorkloadDeploymentRunningWithWarning

    報告要記錄在 XClarity Administrator 工作日誌中的警告訊息。使用下列語法以執行此指令。

    reportWorkloadDeploymentRunningWithWarning -masterIP "#predefined.otherSettings.lxcaIp#" 
    -UUID "#predefined.hostPlatforms.uuid#" –WarningMessage "<message_text>"
  • reportWorkloadDeploymentFailed

    報告要記錄在 XClarity Administrator 工作日誌中的失敗訊息。使用下列語法以執行此指令。

    reportWorkloadDeploymentFailed -masterIP "#predefined.otherSettings.lxcaIp#" 
    -UUID "#predefined.hostPlatforms.uuid#" -ErrorMessage "<message_text>"
  • reportCustomPostInstallScriptError

    報告要記錄在 XClarity Administrator 工作日誌中的安裝後 Script 錯誤訊息。使用下列語法以執行此指令。

    reportCustomPostInstallScriptError -masterIP "#predefined.otherSettings.lxcaIp#" 
    -UUID "#predefined.hostPlatforms.uuid#" -Message "<message_text>"
  • reportWorkloadDeploymentMessage

    報告要記錄在 XClarity Administrator 工作日誌中,但不影響部署狀態的一般訊息。使用下列語法以執行此指令。

    reportWorkloadDeploymentMessage -masterIP "#predefined.otherSettings.lxcaIp#" 
    -UUID "#predefined.hostPlatforms.uuid#" -Message "<message_text>"

其中 <message_text> 是您想要針對每個狀態狀況傳回 XClarity Administrator 的訊息。

請注意,這些指令針對 XClarity Administrator 實例的 IP 位址 (#predefined.otherSettings.lxcaIp#) 以及用於部署作業系統的主機伺服器的 UUID (#predefined.hostPlatforms.uuid#),使用預先定義的巨集。

下列範例是 PowerShell 安裝 Script,會在安裝失敗時安裝 Java 並報告錯誤

import-module C:\windows\system32\WindowsPowerShell\v1.0\Modules\LXCA\LXCA.psm1

initializeRestClient

testLXCAConnection –masterIP "#predefined.otherSettings.lxcaIp#"

Write-Output "Reporting status to Lenovo XClarity Administator..."
reportWorkloadDeploymentMessage -masterIP "#predefined.otherSettings.lxcaIp#"
-UUID "#predefined.hostPlatforms.uuid#" -Message "Installing Java"

Write-Output "Install Java...."
Invoke-Command -ScriptBlock {#predefined.otherSettings.deployDataAndSoftwareLocation#\jre-8u151-windows-x64.exe
[INSTALLCFG=#predefined.otherSettings.deployDataAndSoftwareLocation#\java_configfile.cfg] /s}

if ($LastExitCode -ne 0) {
reportWorkloadDeploymentFailed -masterIP "#predefined.otherSettings.lxcaIp#"
-UUID "#predefined.hostPlatforms.uuid#" -ErrorMessage "Java could not be installed"
}

Write-Output "Completed install of Java for Administrator user."