Добавление пользовательских средств сообщения о состоянии в скрипты установки
Рекомендуемые заранее определенные макросы в файле автоматической установки сообщают об окончательном состоянии развертывания операционной системы, а также о состоянии при загрузке и выполнении послеустановочных скриптов. В послеустановочные скрипты можно включить дополнительные средства сообщения о состоянии.
Linux
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."