DSC'de yapılandırma verilerini kullanma

Şunlar için geçerlidir: Windows PowerShell 4.0, Windows PowerShell 5.0

Yerleşik DSC ConfigurationData parametresini kullanarak, bir yapılandırma içinde kullanılabilecek verileri tanımlayabilirsiniz. Bu, birden çok düğüm veya farklı ortamlar için kullanılabilecek tek bir yapılandırma oluşturmanıza olanak tanır. Örneğin, bir uygulama geliştiriyorsanız, hem geliştirme hem de üretim ortamları için tek bir yapılandırma kullanabilir ve yapılandırma verilerini kullanarak her ortam için veri belirtebilirsiniz.

Bu konuda ConfigurationData karma tablosu yapısı açıklanmaktadır. Yapılandırma verilerinin nasıl kullanılacağına ilişkin örnekler için bkz. Yapılandırma ve ortam verilerini ayırma.

ConfigurationData ortak parametresi

DSC yapılandırması, yapılandırmayı derlerken belirttiğiniz ortak bir ConfigurationData parametresini alır. Yapılandırmaları derleme hakkında bilgi için bkz. DSC yapılandırmaları.

ConfigurationData parametresi, AllNodes adlı en az bir anahtara sahip olması gereken bir karma tablodur. Ayrıca bir veya daha fazla tuşa da sahip olabilir.

Not

Bu konudaki örneklerde adlı tek bir ek anahtar ( adlandırılmış AllNodes anahtarı dışında) NonNodeDatakullanılır, ancak istediğiniz sayıda ek anahtar ekleyebilir ve istediğiniz şekilde adlandırabilirsiniz.

$MyData =
@{
    AllNodes = @()
    NonNodeData = ""
}

AllNodes anahtarının değeri bir dizidir. Bu dizinin her öğesi aynı zamanda NodeName adlı en az bir anahtara sahip olması gereken bir karma tablodur:

$MyData =
@{
    AllNodes =
    @(
        @{
            NodeName = "VM-1"
        },


        @{
            NodeName = "VM-2"
        },


        @{
            NodeName = "VM-3"
        }
    );

    NonNodeData = ""
}

Her karma tablosuna başka anahtarlar da ekleyebilirsiniz:

$MyData =
@{
    AllNodes =
    @(
        @{
            NodeName = "VM-1"
            Role     = "WebServer"
        },


        @{
            NodeName = "VM-2"
            Role     = "SQLServer"
        },


        @{
            NodeName = "VM-3"
            Role     = "WebServer"
        }
    );

    NonNodeData = ""
}

Tüm düğümlere bir özellik uygulamak için, NodeName'i olan AllNodes dizisinin *bir üyesini oluşturabilirsiniz. Örneğin, her düğüme bir LogPath özellik vermek için şunları yapabilirsiniz:

$MyData =
@{
    AllNodes =
    @(
        @{
            NodeName     = "*"
            LogPath      = "C:\Logs"
        },


        @{
            NodeName     = "VM-1"
            Role         = "WebServer"
            SiteContents = "C:\Site1"
            SiteName     = "Website1"
        },


        @{
            NodeName     = "VM-2"
            Role         = "SQLServer"
        },


        @{
            NodeName     = "VM-3"
            Role         = "WebServer"
            SiteContents = "C:\Site2"
            SiteName     = "Website3"
        }
    );
}

Bu, diğer bloklarınVM-1 (, VM-2ve VM-3) her birine değerine "C:\Logs" sahip bir ada LogPath sahip bir özellik eklemenin eşdeğeridir.

ConfigurationData karma tablosu tanımlama

ConfigurationData'yi yapılandırmayla aynı betik dosyasındaki bir değişken olarak (önceki örneklerimizde olduğu gibi) veya ayrı .psd1 bir dosyada tanımlayabilirsiniz. Bir .psd1 dosyada ConfigurationData'yı tanımlamak için yalnızca yapılandırma verilerini temsil eden karma tablo içeren bir dosya oluşturun.

Örneğin, aşağıdaki içeriklere sahip adlı MyData.psd1 bir dosya oluşturabilirsiniz:

@{
    AllNodes =
    @(
        @{
            NodeName    = 'VM-1'
            FeatureName = 'Web-Server'
        },

        @{
            NodeName    = 'VM-2'
            FeatureName = 'Hyper-V'
        }
    )
}

Yapılandırma verileriyle yapılandırma derleme

Yapılandırma verilerini tanımladığınız bir yapılandırmayı derlemek için yapılandırma verilerini ConfigurationData parametresinin değeri olarak geçirirsiniz.

Bu, AllNodes dizisindeki her giriş için bir MOF dosyası oluşturur. Her MOF dosyası, karşılık gelen dizi girişinin özelliğiyle NodeName adlandırılır.

Örneğin, yapılandırma verilerini yukarıdaki dosyada MyData.psd1 olduğu gibi tanımlarsanız, bir yapılandırma derlenmesi hem hem de VM-1.mofVM-2.mof dosyaları oluşturur.

Değişken kullanarak yapılandırma verilerini yapılandırmayla derleme

Yapılandırmayla aynı .ps1 dosyada değişken olarak tanımlanan yapılandırma verilerini kullanmak için, yapılandırmayı derlerken configurationData parametresinin değeri olarak değişken adını geçirirsiniz:

MyDscConfiguration -ConfigurationData $MyData

Veri dosyası kullanarak yapılandırma verilerini yapılandırmayla derleme

Bir .psd1 dosyasında tanımlanan yapılandırma verilerini kullanmak için, yapılandırmayı derlerken configurationData parametresinin değeri olarak bu dosyanın yolunu ve adını geçirirsiniz:

MyDscConfiguration -ConfigurationData .\MyData.psd1

Yapılandırmada ConfigurationData değişkenlerini kullanma

DSC, bir yapılandırma betiğinde kullanılabilecek aşağıdaki özel değişkenleri sağlar:

  • $AllNodesConfigurationData'da tanımlanan düğüm koleksiyonunun tamamını ifade eder. Kullanarak AllNodes koleksiyonunu filtreleyebilirsiniz. Where() ve . ForEach().
  • ConfigurationData , bir yapılandırma derlenirken parametre olarak geçirilen karma tablosunun tamamını ifade eder.
  • MyTypeName değişkenin kullanıldığı yapılandırma adını içerir. Örneğin, yapılandırmasında MyDscConfigurationdeğeri $MyTypeName olacaktır MyDscConfiguration.
  • Node , kullanılarak filtrelendikten sonra AllNodes koleksiyonundaki belirli bir girdiye başvurur . Where() veya . ForEach().

Düğüm olmayan verileri kullanma

Önceki örneklerde gördüğümüz gibi ConfigurationData karma tablosu, gerekli AllNodes anahtarına ek olarak bir veya daha fazla anahtara sahip olabilir. Bu konudaki örneklerde yalnızca tek bir ek düğüm kullandık ve adını verdik NonNodeData. Ancak, istediğiniz sayıda ek anahtar tanımlayabilir ve istediğiniz her şeyi adlandırabilirsiniz.

Düğüm olmayan verileri kullanma örneği için bkz. Yapılandırma ve ortam verilerini ayırma.

Ayrıca Bkz.