Подключитесь к ServiceFabri c с помощью Azure Automation - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь запустить следующий тестовый сценарий с использованием гибридного работника Runbook через Azure Автоматизация:

Connect-ServiceFabricCluster -ConnectionEndpoint "the-service-fabric-azure-url" -FindType FindByThumbprint -FindValue "the-thumbprint" -X509Credential -ServerCertThumbprint "the-thumbprint" -StoreLocation CurrentUser -StoreName My -Verbose

$app = Get-ServiceFabricApplication -ApplicationName "fabric:/the-application-name"

Write-Output $app

Когда я запускаю этот сценарий локально на моей машине, он работает. Когда я запускаю этот скрипт, используя сеанс Powershell на виртуальной машине, он также работает.

Когда я помещаю этот сценарий в модуль Runbook, а затем запускаю модуль Runbook через гибридную рабочую группу (которая указывает на ту же виртуальную машину, поскольку в этой группе зарегистрирован только один работник), я получаю сообщение об ошибке:

Connect-ServiceFabricCluster : An error occurred during this operation. Please check the trace logs for more details. At line:1 char:1 +   
Connect-ServiceFabricCluster -ConnectionEndpoint "my-service-fabric-url... +  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +   
CategoryInfo : InvalidOperation: (:) [Connect-ServiceFabricCluster], FabricException +   
FullyQualifiedErrorId : CreateClusterConnectionErrorId,Microsoft.ServiceFabric.Powershell.ConnectCluster

Что мне нужно настроить, чтобы гибридная группа могла выполнять тот же сценарий, который локальный сеанс Powershell уже может выполнять правильно?


Некоторые дополнительная информация:

  • ServiceFabri c SDK установлен на ВМ. Поскольку я могу подключиться с виртуальной машины к ServiceFabri c через сеанс Powershell, подтверждает, что SDK доступен на виртуальной машине.
  • Гибридная группа работает правильно. Если я запускаю небольшой скрипт Powershell, который выводит имя локального компьютера, он возвращает имя моей Azure виртуальной машины, поэтому я знаю, что он запускается на компьютере, на котором я хочу его запустить. Любой запущенный мной скрипт, не относящийся к ServiceFabri c, работал без проблем.
  • Я удостоверился в установке сертификата ServiceFabri c на ВМ. На виртуальной машине я могу перейти на сайт SF Explorer и запустить скрипт через сеанс PowerShell, поэтому я знаю, что сертификат установлен правильно, потому что в противном случае это тоже не сработало бы.
  • У меня также есть установил сертификат в саму учетную запись Azure Automation, но это не повлияло на полученную ошибку.
  • В сообщении об ошибке упоминается проверка журналов трассировки, но я не знаю, где это is.
  • Узлы Service Fabri c и рабочая виртуальная машина гибридного Runbook находятся в одной виртуальной сети. Поскольку я могу подключиться с виртуальной машины к ServiceFabri c через сеанс Powershell, похоже, это не проблема сети.

1 Ответ

1 голос
/ 29 апреля 2020

Вы используете расположение сертификата, основанное на пользователе, который запускает скрипт (-StoreLocation CurrentUser -StoreName My).

Вы должны использовать местоположение, к которому может получить доступ (/ любая) учетная запись, которая вместо этого запускает автоматизацию.

Azure Автоматизация имеет встроенную поддержку для это с помощью команды Get-AzAutomationCertificate.

Подробнее здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...