Замена пароля учётной записи служб Service Bus и Workflow Manager

Changing the Service Bus and Workflow Manager service account passwordВ ходе эксплуатации экземпляра SharePoint Workflow Manager в определённый момент времени может возникнуть необходимость смены пароля для сервисной учётной записи, от имени которой работают службы Service Bus и Workflow Manager. Учитывая то, что данная учётная запись, как правило, задействована, как в настройках соответствующих служб Windows, так и настройках пулов приложений IIS, для корректной смены пароля следует выполнить некий ритуал со специальными PowerShell-командлетами, которым в свою очередь требуется приложение "тайных костылей".

В нашем случае службы Service Bus и Workflow Manager работают в рамках одного выделенного сервера на базе Windows Server 2022 и выполняются в контексте одной и той же сервисной доменной учётной записи. Той самой учётной записи, что была использована в ходе развёртывания экземпляра SharePoint Workflow Manager. У нас нет задачи менять саму учётную запись на какую-либо другую, но нам необходимо произвести смену пароля у используемой учётной записи.

Прежде, чем приступить к смене пароля, мы должны убедиться в том, что службы Service Bus и Workflow Manager функционируют в штатном режиме и не имеют явных проблем. Важно сделать такую предварительную проверку для того, чтобы в случае возникновения проблем после смены пароля и перезагрузки сервера, точно понимать, что возникшие проблемы связаны именно со сменой пароля, а не имеют другие давние причины.

Убеждаемся что запущены и работают службы "Service Bus Gateway", "Service Bus Message Broker", "Service Bus Resource Provider", "Service Fabric Host Service", "Workflow Manager Backend".

Checking Service Bus and Workflow Manager

Из меню "Пуск" с правами администратора открываем консоль "Workflow Manager PowerShell" (теоретически можно использовать стандартную консоль PowerShell, но тогда потребуется выполнять команду "Import-Module WorkflowManager"):

Launching the Workflow Manager PowerShell Console

Выполняем команды проверки текущего состояния фермы Workflow Manager:

Get-WFFarm
Get-WFFarmStatus

Checking Workflow Manager Status with the Get-WFFarmStatus PowerShell Cmdlet

Первый командлет не должен вызывать никаких ошибок выполнения и должен вывести информацию о ферме Workflow Manager.
Второй командлет должен показать текущий статус служб WorkflowServiceFrontEnd/WorkflowServiceBackend (они должны быть запущены).

Важным недокументированным моментом и "тайным костылём" является наличие пустого каталога:

C:\ProgramData\Service Bus\1.1

Если этого каталога нет в файловой системе, то его придётся создать, чтобы избежать ошибки выполнения командлета Update-SBHost из состава Service Bus 1.1  "Update-SBHost : Method failed with unexpected error code 3.". Если у вас используется более старая версия Service Bus 1.0, то и имя подкаталога, соответственно, нужно создавать "\Service Bus\1.0". Есть ещё вариант, при котором предлагается временно переименовывать существующий подкаталог "1.1" (в случае его наличия) в подкаталог "1.0", но мне этот вариант кажется странным и есть подозрение, что такая ситуация возможна лишь на "измучанном" сервере, где сначала стояла версия Service Bus 1.1, а затем по какой причине был выполнен откат на версию Service Bus 1.0.

На данном этапе можно считать, что предварительные условия соблюдены и теперь выполняем непосредственную смену пароля для учётной записи в домене.

После смены пароля в домене возвращаемся на наш сервер WFM и с правами администратора открываем консоль "Service Bus PowerShell" (либо стандартную консоль PowerShell с предварительной загрузкой модуля командой "Import-Module ServiceBus"). Выполняем команды остановки служб Service Bus, замены пароля и повторного запуска служб:

Stop-SBHost
$newpwd = ConvertTo-SecureString "NeWP#s5w0rD!" -AsPlainText -Force
Update-SBHost -RunAsPassword $newpwd
Start-SBHost

В некоторых старых статьях блогов и на форумах можно найти примеры с использованием командлетов Stop-SBFarm/Start-SBFarm, однако есть мнение, что использование этих командлетов может привести к дополнительным осложнениям.

Далее, с правами администратора открываем консоль "Workflow Manager PowerShell" и
выполняем команды остановки компонент Workflow Manager (службы Workflow Manager Backend, пула IIS WorkflowMgmtPool), замены пароля и повторного запуска WFM:

Stop-WFHost
$newpwd = ConvertTo-SecureString "NeWP#s5w0rD!" -AsPlainText -Force
Update-WFHost -RunAsPassword $newpwd
Start-WFHost

После того как все команды отработают без ошибок, можем повторно выполнить  проверку состояния фермы WFM:

Get-WFFarm
Get-WFFarmStatus

На этом процедуру замены пароля можно считать выполненной, но для большего успокоения можно провести полную перезагрузку сервера SB/WFM и после запуска системы убедиться в том, что всё функционирует штатно.

Добавить комментарий