Получите учетные данные хранилища 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'
    }    
}   

0 ответов

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