DSC yapılandırması

uygulama hedefi: Windows PowerShell 4,0, Windows PowerShell 5,0

DSC yapılandırması, özel bir işlev türünü tanımlayan PowerShell betikleridir. Bir yapılandırma tanımlamak için PowerShell anahtar sözcük yapılandırmasını kullanırsınız.

Configuration MyDscConfiguration {
    Node "TEST-PC1" {
        WindowsFeature MyFeatureInstance {
            Ensure = 'Present'
            Name = 'RSAT'
        }
        WindowsFeature My2ndFeatureInstance {
            Ensure = 'Present'
            Name = 'Bitlocker'
        }
    }
}
MyDscConfiguration

Betiği bir dosya olarak kaydedin .ps1 .

Yapılandırma söz dizimi

Yapılandırma betiği aşağıdaki bölümlerden oluşur:

  • Yapılandırma bloğu. Bu en dıştaki betik blobudur. Bunu yapılandırma anahtar sözcüğünü kullanarak ve bir ad belirterek tanımlarsınız. Bu durumda, yapılandırmanın adı "MyDscConfiguration" olur.
  • Bir veya daha fazla düğüm bloğu. Bunlar, yapılandırmakta olduğunuz düğümleri (bilgisayarlar veya VM 'Ler) tanımlar. Yukarıdaki yapılandırmada, "TEST-PC1" adlı bir bilgisayarı hedefleyen bir düğüm bloğu vardır. Düğüm bloğu birden çok bilgisayar adını kabul edebilir.
  • Bir veya daha fazla kaynak bloğu. Bu, yapılandırmanın yapılandırma yaptığı kaynakların özelliklerini ayarlamadır. Bu durumda, her biri "WindowsFeature" kaynağını çağıran iki kaynak bloğu vardır.

Bir yapılandırma bloğunda, normalde bir PowerShell işlevinde olabilecek her şeyi yapabilirsiniz. Örneğin, önceki örnekte, yapılandırmada hedef bilgisayarın adını sabit olarak kodistemediğiniz takdirde, düğüm adı için bir parametre ekleyebilirsiniz:

Bu örnekte, yapılandırmayı derlerken, düğümün adını ComputerName parametresi olarak geçirerek belirtirsiniz. Ad varsayılan olarak "localhost" olarak belirlenmiştir.

Configuration MyDscConfiguration
{
    param
    (
        [string[]]$ComputerName='localhost'
    )

    Node $ComputerName
    {
        WindowsFeature MyFeatureInstance
        {
            Ensure = 'Present'
            Name = 'RSAT'
        }

        WindowsFeature My2ndFeatureInstance
        {
            Ensure = 'Present'
            Name = 'Bitlocker'
        }
    }
}

MyDscConfiguration

Düğüm bloğu birden çok bilgisayar adını da kabul edebilir. Yukarıdaki örnekte, -ComputerName parametresini kullanabilir veya bir dizi bilgisayarın virgülle ayrılmış listesini doğrudan düğüm bloğuna geçirebilirsiniz.

MyDscConfiguration -ComputerName "localhost", "Server01"

Bir yapılandırma içindeki bir bilgisayar listesini düğüm bloğunda belirtirken, dizi gösterimi kullanmanız gerekir.

Configuration MyDscConfiguration
{
    Node @('localhost', 'Server01')
    {
        WindowsFeature MyFeatureInstance
        {
            Ensure = 'Present'
            Name = 'RSAT'
        }

        WindowsFeature My2ndFeatureInstance
        {
            Ensure = 'Present'
            Name = 'Bitlocker'
        }
    }
}

MyDscConfiguration

Yapılandırma derleniyor

Bir yapılandırmaya göre işlem yapmadan önce, bir MOF belgesinde derlemeniz gerekir. Bunu, yapılandırmayı çağırarak bir PowerShell işlevi çağırmış olursunuz. Örneğin yalnızca yapılandırmanın adını içeren son satır, yapılandırmayı çağırır.

Not

Bir yapılandırmayı çağırmak için, işlevin genel kapsamda olması gerekir (diğer tüm PowerShell işlevleri ile olduğu gibi). Bunu, "nokta kaynağını belirleme" betiği ile ya da ıSE 'yi kullanarak yapılandırma betiğini çalıştırarak veya kullanımda Betiği Çalıştır düğmesine tıklayarak yapabilirsiniz. Beyana noktaya kaynak için, . .\myConfig.ps1 myConfig.ps1 yapılandırmanızı içeren komut dosyasının adı olan komutunu çalıştırın.

Yapılandırmayı çağırdığınızda:

  • Tüm değişkenleri çözümler
  • Geçerli dizinde yapılandırmayla aynı ada sahip bir klasör oluşturur.
  • Yeni dizinde düğü. mof adlı bir dosya oluşturur; burada, düğüde yapılandırmanın hedef düğümün adıdır. Birden çok düğüm varsa her düğüm için bir MOF dosyası oluşturulur.

Not

MOF dosyası, hedef düğümün tüm yapılandırma bilgilerini içerir. Bu nedenle, güvenli tutmanız önemlidir. Daha fazla bilgi için bkz. MOF dosyasını güvenli hale getirme.

Yukarıdaki ilk yapılandırmanın derlenmesi aşağıdaki klasör yapısına neden olur:

. .\MyDscConfiguration.ps1
MyDscConfiguration
    Directory: C:\users\default\Documents\DSC Configurations\MyDscConfiguration
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       10/23/2015   4:32 PM           2842 localhost.mof

Yapılandırma, ikinci örnekte olduğu gibi, derleme zamanında sağlanması gereken bir parametre alır. Şöyle görünür:

. .\MyDscConfiguration.ps1
MyDscConfiguration -ComputerName 'MyTestNode'
    Directory: C:\users\default\Documents\DSC Configurations\MyDscConfiguration
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       10/23/2015   4:32 PM           2842 MyTestNode.mof

Yapılandırmanızda yeni kaynakları kullanma

Önceki örnekleri çalıştırdıysanız, açıkça içeri aktarmadan bir kaynağı kullandığınızı fark etmiş olabilirsiniz. Günümüzde DSC, PSDesiredStateConfiguration modülünün bir parçası olarak 12 kaynakla birlikte gönderilir.

Cmdlet, Get-DscResource, sistemde hangi kaynakların yüklü olduğunu ve LCM tarafından kullanılabilir olduğunu belirlemek için kullanılabilir. Bu modüller içine yerleştirildikten $env:PSModulePath ve Get-dscresourcetarafından düzgün şekilde tanındıktan sonra, yine de yapılandırmanızda yüklü olmaları gerekir.

Import-DscResource yalnızca bir yapılandırma bloğunda tanınabilen bir dinamik anahtar sözcüktür, bu bir cmdlet değildir. Import-DscResource iki parametreyi destekler:

  • ModuleName , kullanmanın önerilen yoludur Import-DscResource . İçeri aktarılacak kaynakları içeren modülün adını (Ayrıca modül adlarının dize dizisini) kabul eder.
  • Ad , alınacak kaynağın adıdır. Bu, Get-dscresourcetarafından "Name" olarak döndürülen kolay ad değildir, ancak kaynak şemasını tanımlarken kullanılan sınıf adı ( Get-Dscresourcetarafından ResourceType olarak döndürülür).

Kullanma hakkında daha fazla bilgi için Import-DSCResource bkz. Import-Dscresource kullanma

PowerShell v4 ve v5 farklılıkları

DSC kaynaklarının PowerShell 4,0 ' de depolanması gerektiği fark vardır. Daha fazla bilgi için bkz. kaynak konumu.

Ayrıca Bkz.