Получите учетные данные хранилища Azure Backup в автоматизации DSC
Я хочу установить агент службы восстановления Azure и зарегистрировать этот агент в хранилище службы восстановления на локальном сервере, используя учетную запись автоматизации Azure.
В учетную запись автоматизации был импортирован пользовательский модуль, созданный rchaganti. Ресурс
Конфигурация DSC для установки Агента работает нормально, и если я предварительно загрузил файл с данными хранилища на диск, то шаг регистрации Mars также работает нормально. Я хотел бы загрузить учетные данные хранилища в DSC, чтобы иметь полностью автоматизированный процесс.
Когда я добавляю команду Get-AzureRmRecoveryServicesVault в мой DSC, я получаю следующую ошибку
Get-AzureRmRecoveryServicesVault: операция не выполнена. Запустите Login-AzureRmAccount для входа.
Моя учетная запись автоматизации не имеет веб-приложения "Запуск от имени", поэтому я не могу использовать предварительно созданный ресурс подключения. Кроме того, AD настроен на использование MFA, поэтому добавление ресурса учетных данных также не вариант.
Есть ли способ запустить Get-AzureRmRecoveryServicesVault внутри модуля в DSC без этой ошибки аутентификации? Я ищу аналогичное решение, как работает cMARSAgentInstall.
Мой файл DSC:
Configuration serverConfiguration
{
param
(
[Parameter(Mandatory=$True)]
[String]$workspaceID,
[Parameter(Mandatory=$True)]
[String]$workspaceKey,
[Parameter(Mandatory=$True)]
[String]$recoveryServiceVaultName,
[Parameter(Mandatory=$True)]
[String]$encryptionKey
)
Import-DscResource –ModuleName 'PSDesiredStateConfiguration'
Import-DscResource -Module cMMAgent -Name cMMAgentInstall
Import-DscResource -ModuleName 'cMicrosoftAzureRecoveryServices'
Node "MonitorAndBackup"
{
Function Get-TrueURL {
Param (
[parameter(Mandatory)]
$Url
)
$req = [System.Net.WebRequest]::Create($url)
$req.AllowAutoRedirect = $false
$req.Method = "GET"
$resp = $req.GetResponse()
if ($resp.StatusCode -eq "Found") {
return $resp.GetResponseHeader("Location")
}
else {
return $resp.responseURI
}
}
$mmAgentInstallerUrl = Get-TrueUrl -Url 'http://go.microsoft.com/fwlink/?LinkID=517476'
cMMAgentInstall MMAInstall {
Path = $mmAgentInstallerUrl
Ensure = 'Present'
WorkspaceID = $workspaceID
WorkspaceKey = $workspaceKey
}
$marsInstallerUrl = Get-TrueUrl -Url 'https://go.microsoft.com/fwLink/?LinkID=288905&clcid=0x409'
cMARSAgentInstall MARSInstall {
SetupPath = $marsInstallerUrl
EnableWindowsUpdate = $false
Ensure = 'Present'
}
$recoveryServiceVault = Get-AzureRmRecoveryServicesVault –Name $recoveryServiceVaultName
$credentialFileName = Get-AzureRmRecoveryServicesVaultSettingsFile -SiteIdentifier -Vault $recoveryServiceVault -Path 'D:\Temp\Test'
cMARSRegistration MARSRegistration {
VaultCredential = $credentialFileName
Ensure = 'Present'
}
cMARSEncryptionPhrase MARSEncryption {
EncryptionPassPhrase = $encryptionKey
Ensure = 'Present'
}
}