Azure Otomasyonu Durum Yapılandırmasında DSC yapılandırmalarını derleme

Dekont

Otomasyon Durumu Yapılandırması'nı etkinleştirmeden önce, konuk yapılandırması adlı Azure İlkesi özelliği tarafından yönetilen daha yeni bir DSC sürümünün genel kullanıma sunulduğunun bilinmesini isteriz. Konuk yapılandırma hizmeti DSC Uzantısı, Azure Otomasyonu Durum Yapılandırması özelliklerini ve müşteri geri bildirimlerinden en sık istenen özellikleri birleştirir. Konuk yapılandırması, Arc özellikli sunucular aracılığıyla karma makine desteğini de içerir.

İstenen Durum Yapılandırması (DSC) yapılandırmalarını Azure Otomasyonu Durum Yapılandırması'nda aşağıdaki yollarla derleyebilirsiniz:

  • Azure Durum Yapılandırması derleme hizmeti

    • Etkileşimli kullanıcı arabirimine sahip başlangıç yöntemi
    • İş durumunu kolayca izleme
  • Windows PowerShell

    • Yerel iş istasyonunda veya derleme hizmetinde Windows PowerShell'den arama
    • Geliştirme testi işlem hattıyla tümleştirme
    • Karmaşık parametre değerleri sağlama
    • Büyük ölçekte düğüm ve düğüm olmayan verilerle çalışma
    • Önemli performans geliştirmesi

Yapılandırmaları Azure VM'lerinize göndermek için Azure İstenen Durum Yapılandırması (DSC) uzantısıyla Azure Resource Manager şablonlarını da kullanabilirsiniz. Azure DSC uzantısı, Azure VM'lerinde çalışan DSC yapılandırmalarını teslim etmek, uygulamak ve raporlamak için Azure VM Aracısı çerçevesini kullanır. Azure Resource Manager şablonlarını kullanarak derleme ayrıntıları için bkz . Azure Resource Manager şablonlarıyla İstenen Durum Yapılandırması uzantısı.

Azure State Configuration'da DSC yapılandırması derleme

Portal

  1. Otomasyon hesabınızda Durum yapılandırması (DSC) seçeneğine tıklayın.
  2. Yapılandırmalar sekmesine ve ardından derlenecek yapılandırma adına tıklayın.
  3. Derle'ye tıklayın.
  4. Yapılandırmada parametre yoksa, derlemek isteyip istemediğinizi onaylamanız istenir. Yapılandırmada parametreler varsa, parametre değerlerini sağlayabilmeniz için Yapılandırmayı Derle dikey penceresi açılır.
  5. Derleme işi durumunu izleyebilebilmeniz için Derleme İşi sayfası açılır. Bu sayfayı, Azure Otomasyonu Durum Yapılandırması çekme sunucusuna yerleştirilen düğüm yapılandırmalarını (MOF yapılandırma belgeleri) izlemek için de kullanabilirsiniz.

Azure PowerShell

Windows PowerShell ile derlemeye başlamak için Start-AzAutomationDscCompilationJob kullanabilirsiniz. Aşağıdaki örnek kod, SampleConfig adlı bir DSC yapılandırmasının derlenmesine başlar.

Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'SampleConfig'

Start-AzAutomationDscCompilationJob , iş durumunu izlemek için kullanabileceğiniz bir derleme işi nesnesi döndürür. Daha sonra derleme işinin durumunu belirlemek için Get-AzAutomationDscCompilationJob ve akışlarını (çıktı) görüntülemek için Get-AzAutomationDscCompilationJobOutput ile bu derleme işi nesnesini kullanabilirsiniz. Aşağıdaki örnek SampleConfig yapılandırmasının derlenmesini başlatır, tamamlanana kadar bekler ve akışlarını görüntüler.

$CompilationJob = Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'SampleConfig'

while($null -eq $CompilationJob.EndTime -and $null -eq $CompilationJob.Exception)
{
    $CompilationJob = $CompilationJob | Get-AzAutomationDscCompilationJob
    Start-Sleep -Seconds 3
}

$CompilationJob | Get-AzAutomationDscCompilationJobOutput –Stream Any

Temel parametreleri bildirme

Parametre türleri ve özellikleri de dahil olmak üzere DSC yapılandırmalarındaki parametre bildirimi, Azure Otomasyonu runbook'lardakiyle aynı şekilde çalışır. Runbook parametreleri hakkında daha fazla bilgi edinmek için bkz. Azure Otomasyonu'de runbook başlatma.

Aşağıdaki örnek, derleme sırasında oluşturulan ParametersExample.sample node yapılandırmasındaki özelliklerin değerlerini belirlemek için ve IsPresent parametrelerini kullanırFeatureName.

Configuration ParametersExample
{
    param(
        [Parameter(Mandatory=$true)]
        [string] $FeatureName,

        [Parameter(Mandatory=$true)]
        [boolean] $IsPresent
    )

    $EnsureString = 'Present'
    if($IsPresent -eq $false)
    {
        $EnsureString = 'Absent'
    }

    Node 'sample'
    {
        WindowsFeature ($FeatureName + 'Feature')
        {
            Ensure = $EnsureString
            Name   = $FeatureName
        }
    }
}

Azure Otomasyonu Durum Yapılandırması portalında veya Azure PowerShell ile temel parametreleri kullanan DSC yapılandırmalarını derleyebilirsiniz.

Portal

Portalda, Derle'ye tıkladıktan sonra parametre değerlerini girebilirsiniz.

Configuration compile parameters

Azure PowerShell

PowerShell, anahtarın parametre adıyla eşleştiği ve değerin parametre değerine eşit olduğu bir karma tablodaki parametreleri gerektirir.

$Parameters = @{
    'FeatureName' = 'Web-Server'
    'IsPresent' = $False
}

Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'ParametersExample' -Parameters $Parameters

Nesneleri parametre olarak geçirme PSCredential hakkında bilgi için bkz . Kimlik bilgileri varlıkları.

Azure Otomasyonu bileşik kaynakları içeren yapılandırmaları derleme

Bileşik Kaynaklar özelliği, DSC yapılandırmalarını bir yapılandırmanın içinde iç içe kaynaklar olarak kullanmanıza olanak tanır. Bu özellik, tek bir kaynağa birden çok yapılandırmanın uygulanmasını sağlar. Bileşik kaynaklar hakkında daha fazla bilgi edinmek için bkz . Bileşik kaynaklar: Kaynak olarak DSC yapılandırması kullanma.

Dekont

Bileşik kaynakları içeren yapılandırmaların doğru derlenmesi için, önce bileşiklerin bağlı olduğu tüm DSC kaynaklarını Azure Otomasyonu içeri aktarmanız gerekir. DSC bileşik kaynağı eklemek, Azure Otomasyonu herhangi bir PowerShell modülü eklemekten farklı değildir. Bu işlem, Azure Otomasyonu Modülleri Yönetme bölümünde belgelenmiştir.

yapılandırmaları Azure Otomasyonu derlerken ConfigurationData'ları yönetme

ConfigurationData , PowerShell DSC kullanırken yapısal yapılandırmayı ortama özgü herhangi bir yapılandırmadan ayırmanıza olanak tanıyan yerleşik bir DSC parametresidir. Daha fazla bilgi için bkz . PowerShell DSC'de "What" yerine "Where" öğesini ayırma.

Dekont

Azure Otomasyonu Durum Yapılandırması'nda derleme yaparken Azure PowerShell'de kullanabilirsiniz ConfigurationData ancak Azure portalında kullanamazsınız.

Aşağıdaki örnek DSC yapılandırması, ve $AllNodes anahtar sözcükleri aracılığıyla $ConfigurationData kullanırConfigurationData. Bu örnek için xWeb Yönetici istration modülüne de ihtiyacınız vardır.

Configuration ConfigurationDataSample
{
    Import-DscResource -ModuleName xWebAdministration -Name MSFT_xWebsite

    Write-Verbose $ConfigurationData.NonNodeData.SomeMessage

    Node $AllNodes.Where{$_.Role -eq 'WebServer'}.NodeName
    {
        xWebsite Site
        {
            Name         = $Node.SiteName
            PhysicalPath = $Node.SiteContents
            Ensure       = 'Present'
        }
    }
}

Önceki DSC yapılandırmasını Windows PowerShell ile derleyebilirsiniz. Aşağıdaki betik, Azure Otomasyonu Durum Yapılandırması çekme hizmetine iki düğüm yapılandırması ekler: ConfigurationDataSample.MyVM1 ve ConfigurationDataSample.MyVM3.

$ConfigData = @{
    AllNodes = @(
        @{
            NodeName = 'MyVM1'
            Role = 'WebServer'
        },
        @{
            NodeName = 'MyVM2'
            Role = 'SQLServer'
        },
        @{
            NodeName = 'MyVM3'
            Role = 'WebServer'
        }
    )

    NonNodeData = @{
        SomeMessage = 'I love Azure Automation State Configuration and DSC!'
    }
}

Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'ConfigurationDataSample' -ConfigurationData $ConfigData

Derleme sırasında Azure Otomasyonu varlıklarla çalışma

Varlık başvuruları hem Azure Otomasyonu Durum Yapılandırmasında hem de runbook'larda aynıdır. Daha fazla bilgi için, aşağıdakilere bakın:

Kimlik bilgileri varlıkları

Azure Otomasyonu'deki DSC yapılandırmaları cmdlet'ini kullanarak Otomasyon kimlik bilgisi varlıklarına Get-AutomationPSCredential başvurabilir. Yapılandırmanın bir PSCredential nesneyi belirten bir parametresi varsa, kimlik bilgilerini almak için cmdlet'ine bir Azure Otomasyonu kimlik bilgisi varlığının dize adını geçirerek kullanınGet-AutomationPSCredential. Ardından, nesneyi gerektiren PSCredential parametre için bu nesneyi kullanın. Arka planda, bu ada sahip Azure Otomasyonu kimlik bilgisi varlığı alınır ve yapılandırmaya geçirilir. Aşağıdaki örnekte bu senaryo iş başında gösterilmektedir.

Düğüm yapılandırmalarında (MOF yapılandırma belgeleri) kimlik bilgilerinin güvenli tutulması için düğüm yapılandırma MOF dosyasında kimlik bilgilerinin şifrelenmesi gerekir. Şu anda Düğüm yapılandırması MOF oluşturma sırasında kimlik bilgilerini düz metin olarak çıkarmak için PowerShell DSC izni vermeniz gerekir. PowerShell DSC, Azure Otomasyonu bir derleme işi aracılığıyla MOF dosyasının tamamını şifrelediğinin farkında değildir.

PowerShell DSC'ye, yapılandırma Verileri kullanılarak oluşturulan düğüm yapılandırması MDF'lerinde kimlik bilgilerinin düz metin olarak çıkışının uygun olduğunu belirtebilirsiniz. DSC yapılandırmasında görünen ve kimlik bilgilerini kullanan her düğüm bloğu adı için üzerinden ConfigurationData geçirmeniz PSDscAllowPlainTextPassword = $true gerekir.

Aşağıdaki örnekte Otomasyon kimlik bilgisi varlığı kullanan bir DSC yapılandırması gösterilmektedir.

Configuration CredentialSample
{
    Import-DscResource -ModuleName PSDesiredStateConfiguration
    $Cred = Get-AutomationPSCredential 'SomeCredentialAsset'

    Node $AllNodes.NodeName
    {
        File ExampleFile
        {
            SourcePath      = '\\Server\share\path\file.ext'
            DestinationPath = 'C:\destinationPath'
            Credential      = $Cred
        }
    }
}

Önceki DSC yapılandırmasını PowerShell ile derleyebilirsiniz. Aşağıdaki PowerShell kodu, Azure Otomasyonu Durum Yapılandırması çekme sunucusuna iki düğüm yapılandırması ekler: CredentialSample.MyVM1 ve CredentialSample.MyVM2.

$ConfigData = @{
    AllNodes = @(
        @{
            NodeName = '*'
            PSDscAllowPlainTextPassword = $True
        },
        @{
            NodeName = 'MyVM1'
        },
        @{
            NodeName = 'MyVM2'
        }
    )
}

Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'CredentialSample' -ConfigurationData $ConfigData

Dekont

Derleme tamamlandığında, bu iletiyi güvenle yoksayabilirsiniz hata iletisini The 'Microsoft.PowerShell.Management' module was not imported because the 'Microsoft.PowerShell.Management' snap-in was already imported. alabilirsiniz.

Windows PowerShell'de DSC yapılandırmanızı derleme

Windows PowerShell'de DSC yapılandırmalarını derleme işlemi, PowerShell DSC belgelerinde Yazma, Derleme ve Yapılandırma Uygulama bölümüne eklenmiştir. Bu işlemi bir geliştirici iş istasyonundan veya Azure DevOps gibi bir derleme hizmetinde yürütebilirsiniz. Daha sonra yapılandırmayı Azure State Configuration hizmetine derleyerek üretilen MOF dosyalarını içeri aktarabilirsiniz.

Windows PowerShell'de derleme, yapılandırma içeriğini imzalama seçeneği de sağlar. DSC aracısı, imzalı düğüm yapılandırmasını yönetilen düğümde yerel olarak doğrular. Doğrulama, düğüme uygulanan yapılandırmanın yetkili bir kaynaktan gelmesini sağlar.

Azure dışında derlenmiş düğüm yapılandırmalarını (MOF dosyaları) da içeri aktarabilirsiniz. İçeri aktarma işlemi bir geliştirici iş istasyonundan veya Azure DevOps gibi bir hizmetten derlemeyi içerir. Bu yaklaşımın performans ve güvenilirlik gibi birçok avantajı vardır.

Dekont

Azure Otomasyonu içeri aktarmasına izin vermek için düğüm yapılandırma dosyasının 1 MB'tan büyük olmaması gerekir.

Düğüm yapılandırmalarının imzalandırılması hakkında daha fazla bilgi için bkz . WMF 5.1 ' deki geliştirmeler - Yapılandırmayı imzalama ve modül.

Azure portalında düğüm yapılandırmasını içeri aktarma

  1. Otomasyon hesabınızda Yapılandırma Yönetimi'nin altında Durum yapılandırması (DSC) öğesine tıklayın.

  2. Durum yapılandırması (DSC) sayfasında Yapılandırmalar sekmesine ve ardından Ekle'ye tıklayın.

  3. İçeri Aktar sayfasında Düğüm Yapılandırma Dosyası alanının yanındaki klasör simgesine tıklayarak yerel bilgisayarınızda bir düğüm yapılandırma MOF dosyasına göz atın.

    Browse for local file

  4. Yapılandırma Adı alanına bir ad girin. Bu ad, düğüm yapılandırmasının derlendiği yapılandırmanın adıyla eşleşmelidir.

  5. Tamam'a tıklayın.

Azure PowerShell ile düğüm yapılandırmasını içeri aktarma

Bir düğüm yapılandırmasını Otomasyon hesabınıza aktarmak için Import-AzAutomationDscNodeConfiguration cmdlet'ini kullanabilirsiniz.

Import-AzAutomationDscNodeConfiguration -AutomationAccountName 'MyAutomationAccount' -ResourceGroupName 'MyResourceGroup' -ConfigurationName 'MyNodeConfiguration' -Path 'C:\MyConfigurations\TestVM1.mof'

Sonraki adımlar