Перейти к основному содержимому

Добавление пользовательских средств сообщения о состоянии в скрипты установки

Рекомендуемые заранее определенные макросы в файле автоматической установки сообщают об окончательном состоянии развертывания операционной системы, а также о состоянии при загрузке и выполнении послеустановочных скриптов. В послеустановочные скрипты можно включить дополнительные средства сообщения о состоянии.

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. Ошибка пользовательского послеустановочного скрипта

Обратите внимание, что команда curl применяет заранее определенные макросы как для URL-адреса HTTPS, который Lenovo XClarity Administrator использует для сообщения о состояния (predefined.otherSettings.statusSettings.urlStatus), так и для папки, содержащей сертификаты, необходимые для доступа к веб-службе urlStatus из ОС хоста при первой загрузке (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 для каждого состояния.

Обратите внимание, что в этих командах используются заранее определенные макросы для IP-адреса экземпляра XClarity Administrator (#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."