2016-02-17 2 views
1

У меня есть система, которая каждую ночь выполняет набор конфигураций DSC для создания машин. Это инициируется запланированной работой (MultiJob) в Дженкинсе. Затем задание расписания запускает отдельные задания и ждет завершения всех заданий. 90% времени это работает без проблем.Перезагрузка задания DSC backgound после перезагрузки

Однако иногда для одного из отдельных заданий требуется перезагрузка. Это правильно настроено с помощью LCM и с использованием ресурса DSC xPendingReboot. Здесь нет проблем.

Проблема заключается в том, что задание PowerShell, выполняемое на целевой машине, завершается при начале перезагрузки. Это затем запускает следующий этап процесса сборки, который терпит неудачу, потому что процесс DSC на самом деле еще не завершен.

Кто-нибудь знает, как восстановить требуемое задание DSC на целевой машине после его перезагрузки?

Обновление (непроверено): В настоящее время работает над сценарием, который вызывает метод GetCimSessionInstanceId на LCM для получения дескриптора сеанса при завершении задания. Этот идентификатор сеанса можно использовать для повторной загрузки CimSession на удаленном компьютере после перезагрузки с помощью командлета Get-CimSession. Мое предположение заключается в том, что я смогу удаленно выполнить Get-Job на сеансе cim, чтобы определить, продолжался ли процесс DSC. Это приводит к дополнительному вопросу. Как мы можем определить, что начальное задание dsc закончилось из-за перезагрузки или на самом деле это конец процесса?

ответ

1

Этот подход должен работать на то, что вы ищете http://nanalakshmanan.github.io/blog/DSC-get-job-details-post-reboot/

+0

Спасибо за ответ, подход имеет полный смысл. Я попробую это скоро. – Cobster

+0

@ Cobster - работал подход? –

+0

Другие приоритеты имеют приоритет над этой проблемой. Я планирую вернуться к этому вопросу позже сегодня. – Cobster

Смежные вопросы