2017-04-20 6 views
0

Azure Automation DSC를 통한 배포 용으로 dsc 구성에 pscredentials를 전달하려고합니다. 문서화 된 두 가지 방법으로는 작동하지 않습니다.Azure Automation DSC - DSC 구성에서 PSCredential 사용

1) 첫 번째 방법은 PSCredential을 dsc에 사용되는 자동화 계정과 연관된 자격 증명 저장소에 추가 할 수 있음을 나타냅니다. 내가 찾을 수있는 모든 문서는 하늘색 고전 포털을 참조하고 자격 증명 '유형'을 선택하도록 지시합니다. 그러나 Azure Automation 관리는 기존 포털에서 더 이상 사용할 수 없으며 새 포털에는 새 자격 증명에 대한 '유형'드롭 다운이 없으며 유형은 'Microsoft.Azure.Commands.Automation.Model.CredentialInfo'입니다. - pscredential 유형에있는 getnetworkcredential() 메소드가 없습니다. dsc config 내에서 일반 텍스트 비밀번호를 가져 와야 새 사용자 [user dsc resource]를 설정할 수 있습니다. 내가 여기서 뭔가를 놓치고 있는지, 아니면 고전적인 기능에서 자동화 기능을위한 새로운 포털 기능으로 전환 된 이상한 상태의 Azure일까요? 또한 Get-AutomationPSCredential을 사용하여 새 포털에 추가 한 자격 증명을 읽음으로써 암시 적으로 유형 변환을 확인했지만 시도하지 못했습니다 (해당 이름 아래에 개체를 찾지 못함).

2) 설명서에는 param() 블록을 추가하고 매개 변수로 pscredentials를 지정하면 컴파일하는 동안 매우 동일한 매개 변수가 동적으로 채워 지므로 포털을 통해 컴파일 할 때 값을 채울 수 있다고 나와 있습니다. 이것은 발생하지 않으며 컴파일 작업이 'param'을 인식하지 못하면 종료 예외가 발생하고 중지됩니다.

$configdata = @{ 
    AllNodes = @(
     @{ 
      NodeName = "samplenode" 
      PSDSCAllowPlainTextCredential = $true 
} 
) 
} 

configuration testconfig { 
    Import-DSCResource -ModuleName PSDesiredStateConfiguration 

    param (
     [pscredential]$cred 
    ) 

    Node $AllNodes.NodeName { 
     User testuser { 
     "blah blah blah" 
} 
} 
} 

어떤 도움을 크게 감상 할 수있다, 감사 :

코드는 다음과 같이 보인다!

답변

1

서류와 함께 MS로 사례를 열었습니다. GitHub의에에 오해의 소지가 있거나 dowright 잘못 중 하나 였고, 그들은 꽤 자세한 응답 및 유용한 지침을 제공 ... 아래 참조 : 당신이하지 않은 경우 명령 행에 대한

  1. 을,이 최고의 기사입니다 이미 본 : https://msdn.microsoft.com/en-us/powershell/dsc/configData https://msdn.microsoft.com/en-us/powershell/dsc/configdatacredentials https://docs.microsoft.com/en-us/azure/automation/automation-dsc-compile#credential-assets

  2. 자격 증명 자산입니다 검색 할 때 사용하는 올바른 PowerShell 명령 : - AutomationPSCredential를 얻기 좀 추가 설명이 helpf 할 수있는 곳입니다 의심 ul.

는 하나 개의 중요한 차이가있다 : • 가져 오기는-AutomationPSCredential는 [PSCredential] • 가져가 - AzureAutomationCredential 유형의 값을 반환 유형의 값을 반환 [CredentialInfo] • 가져 오기 - AzureRMAutomationCredential 유형의 값을 반환 [CredentialInfo을 ] • [CredentialInfo] 은 [PSCredential]

또 다른 차이점은 대신 사용할 수 없습니다 : • 가져가 - AutomationPSCredential이 컴파일시 자격 증명을 검색하고 시간을 실행할 수 없습니다. • 자격 증명은 은 MOF의 •로 컴파일 이에 대한 요구 사항 MOF의 컴파일러가 인식하지 • PSDscAllowPlainTextPassword = $ 진정한 푸른 자동화가 MOF를 암호화

또 다른 주요 차이점은 다음과 같습니다 • 가져 오기 - AzureAutomationCredential 및 GET- AzureRMAutomationCredential은 런타임에 실행됩니다. 따라서 스크립트는 사용하기 전에 Azure에 로그인해야합니다. • 실제로는 이 DSC 구성에서 이러한 cmdlet을 사용할 이유가 없습니다. • 나는 그것이 작동 할 경우 한 번에 바로 볼 수 그것을 시도했고 그것은 않습니다 (그러나 단지 성공 푸른 로그인 후)

가이 말을하는 데, 나는-AzureRMAutomationCredential 얻을 당신이 참조하는 Microsoft 문서를 사용 통지 않았다 . https://github.com/Microsoft/azure-docs/blob/master/articles/automation/automation-dsc-compile.md#credential-assets

이 기사가 부정확하고 구성이 이 이유있는 그대로 작동하지 않습니다 • 자격 증명은 DSC 구성 • 유형의 값 [PSCredential (유형의 값이 [CredentialInfo] 작동하지 않습니다)를 기대 기사에 는 푸른에 로그인하지 않는 등 은 Get-AzureRMAutomationCredential는

내가 세 가지 PowerShell을 혼동 될 수있는 자동화 자격 증명 자산을 검색 명령을 이해 할 수 없게됩니다. • 가져 오기 - AzureAutomationCredential는 푸른 서비스 관리 API (ASM) • 가져 오기 - AzureRMAutomationCredential 사용 (ARM) •의 ASM은 기존의 푸른 포털에 해당하는 푸른 자원 관리 API, ARM을 사용하여 저 는 설명 하나 개 더 비트를 추가 할 수 있도록 허용 은 새로운 Azure 포털 (Ibiza)과 일치합니다. • ASM은 ARM 보다 먼저 나오며 이전 버전과의 호환성을 위해 계속 지원됩니다. • Get-AutomationPSCredential이 자동화 Runbooks 용으로 작성되었습니다. • 은 Azure Automation DSC에서 작동합니다 (그러나 Windows에서는 작동하지 않습니다. PowerShell DSC). Azure Automation DSC의 Orchestrator.AssetManagement.Cmdlets도 모두 입니다. 왼쪽 창에서 러브 북을 편집하고 확장 cmdlet을 사용하여 Azure 포털에서 찾을 수 있습니다. • 다음 문서에서는 도 런북의 컨텍스트에서 이러한 cmdlet에 대해 설명합니다. https://azure.microsoft.com/en-us/blog/getting-started-with-azure-automation-automation-assets-2/

기억해야 할 중요한 것은 Orchestrator.AssetManagement.Cmdlets 독점적으로 자동화 환경에서 사용 을 위해 (예를 들어, Runbook 또는 DSC 구성) 구성 •된다 • 다른 곳에서는 사용할 수 없으며 작동하지 않을 것입니다 대화 형 PowerShell 세션에서 • DSC 구성은 이며 런타임에는 컴파일 타임에 평가되지 않습니다. • DSC 구성은 이며 실행 가능 코드가 아닌 정적 정의 (MOF)로 컴파일됩니다. • 예외는 Script 리소스이며 런타임시 PowerShell을 실행합니다 https://msdn.microsoft.com/en-us/PowerShell/DSC/scriptResource

0

Azure 자동화 자격 증명으로 이동하여 자격 증명 개체를 만듭니다.

Import-AzureRmAutomationDscConfiguration -SourcePath 'somepath' ` 

-ResourceGroupName $ ResourceGroupName -AutomationAccountName $ AutomationAccountName -Published -Force

구성 데이터 및 파라미터 준비 :

$ConfigurationData = @{ 
    AllNodes = @(
     @{ 
      NodeName = $nodeName 
      PSDscAllowPlainTextPassword = $true 
     } 
    ) 
} 

$Parameters = @{ 
    "nodeName" = $nodeName 
    "cred" = 'Azure Automation Credentials Name' 
} 

을하고 컴파일 :

Start-AzureRmAutomationDscCompilationJob -ResourceGroupName $ResourceGroupName -AutomationAccountName $AutomationAccountName ` 
-ConfigurationName 'anything' -Parameters $Parameters -ConfigurationData $ConfigurationData 
는 DSC 구성을 업로드
관련 문제