跳到主要内容

将定制状态报告添加到安装脚本

无人参与文件中建议的预定义宏报告最终操作系统部署状态,并报告下载和运行后安装脚本时的状态。可在安装后脚本中包含其他状态报告。

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. 定制安装后脚本错误

注:对于 Lenovo XClarity Administrator 用于报告状态的 HTTPS URL,curl 命令使用预定义的宏(predefined.otherSettings.statusSettings.urlStatus);对于包含首次引导时从主机操作系统访问 urlStatus Web 服务所需证书的文件夹,该命令也使用预定义的宏(predefined.otherSettings.statusSettings.certLocation)。以下示例报告安装后脚本中发生了错误。

以下示例报告安装后脚本中发生了一个错误。
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

对于 Windows,可导入 LXCA.psm1 脚本,然后调用以下命令来报告状态。

  • initializeRestClient

    初始化 REST 客户端。使用以下语法运行此命令。运行报告命令前需先运行此命令。

    initializeRestClient
  • testLXCAConnection

    验证 XClarity Administrator 可连接到主机服务器。使用以下语法运行此命令。此命令为可选,但建议包含在安装脚本中,然后再运行报告命令。

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

    报告成功完成消息,该消息将记录在 XClarity Administrator 作业日志中。使用以下语法运行此命令。

    提示
    如果定制无人参与文件或安装后脚本中包含 #predefined.unattendSettings.reportWorkloadNotComplete# 宏,则需在安装后脚本中添加 reportWorkloadDeploymentSucceeded 命令以表示成功完成。否则 XClarity Administrator 将在所有安装后脚本运行后自动报告一个完成状态。
    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 作业日志中。使用以下语法运行此命令。

    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 安装脚本,该脚本将安装 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."