Доступ к Azure VM через Powershell, удаленный из Azure Automation

Я пытаюсь получить доступ к Azure VM с помощью удаленного взаимодействия PowerShell от автоматизации Azure. Все наши vms внутри подписки не имеют общедоступных ips (только приватные ip). Я пытался получить доступ через New-Pssession (как показано ниже), но не повезло.

Не могли бы вы дать мне знать, каковы другие способы добиться этого?

$connectionName = "AzureRunAsConnection"
$SPC = Get-AutomationConnection -Name $connectionName
Write-Output $SPC
Add-AzureRmAccount -ServicePrincipal -TenantId $SPC.TenantId -ApplicationId $SPC.ApplicationId -CertificateThumbprint $SPC.CertificateThumbprint
Get-AzureRmSubScription
Select-AzureRMSubscription -SubscriptionId 'XXXXXXXXXXXXXXX'
Get-AzureRMAutomationAccount | fl *
$username = 'XXXXXXX'
$password = 'XXXXXXXX'
$secpasswd = ConvertTo-SecureString $password -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ($username, $secpasswd)
$S = New-PsSession -ComputerName XXXXXXXX -Credential $mycreds
Enter-PSSession -Session $S

1 ответ

Решение

Если вы хотите получить доступ к виртуальным машинам с помощью модулей запуска Azure Automation, вам потребуется использовать Hybrid Runbook Workers. Это агент, установленный на одном из ваших серверов и зарегистрированный с вашей учетной записью Azure Automation. Отсюда вы можете выполнить свой runbook на вашем Hybrid Runbook Worker.

После этого вы можете настроить запуск Runbook на Hybrid Runbook Worker, это будет эффективно выполнять Runbook, как если бы он был на вашем сервере.

Если ваша книга запусков сначала выполняет некоторые действия в Azure, то я настоятельно рекомендую разделить ваши книги запусков, чтобы один выполнял действия в Azure, а затем вызывал другую книгу запусков, передавая соответствующие параметры, но выполняясь в Hybrid Runbook Worker. Вы можете использовать PowerShell для запуска Runbook автоматизации Azure в Hybrid Runbook Worker, как показано в следующем примере:

Start-AzureRmAutomationRunbook –AutomationAccountName "MyAutomationAccount" –Name "Test-Runbook" -RunOn "MyHybridGroup"

Вы можете использовать эту опцию, если у вас нет публичного IP-адреса на виртуальной машине.

Другой вариант - использовать комбинацию WinRM, сертификатов и хранилища ключей Azure для подключения с использованием Enter-PSSession, Подробнее о настройке этого подробно рассказано в документации по настройке доступа WinRM для виртуальных машин в Azure Resource Manager. Однако обратите внимание, что вы можете использовать этот метод, только если ваша виртуальная машина имеет публичный IP-адрес.

Другие вопросы по тегам