DSC SMB çekme sunucusu ayarlama

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

Önemli

Çekme Sunucusu (Windows Özelliği DSC-Hizmeti), Windows Server'ın desteklenen bir bileşenidir, ancak yeni özellikler veya özellikler sunma planı yoktur. DSC'nin daha yeni bir sürümünün artık genel kullanıma sunulduğu ve konuk yapılandırması adlı Azure İlkesi özelliği tarafından yönetildiğini bilmenizi isteriz. Konuk yapılandırma hizmeti DSC Uzantısı, Azure Otomasyonu State Configuration 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.

DSC SMB çekme sunucusu, DSC yapılandırma dosyalarının ve DSC kaynaklarının, bu düğümler tarafından istendiğinde hedef düğümler için kullanılabilir olmasını sağlayan SMB dosya paylaşımlarını barındıran bir bilgisayardır.

DSC için SMB çekme sunucusu kullanmak için şunları yapmak gerekir:

  • PowerShell 4.0 veya üzerini çalıştıran bir sunucuda SMB dosya paylaşımı ayarlama
  • PowerShell 4.0 veya üzerini çalıştıran bir istemciyi bu SMB paylaşımından çekecek şekilde yapılandırma

SMB dosya paylaşımı oluşturmak için xSmbShare kaynağını kullanma

SMB dosya paylaşımını ayarlamanın çeşitli yolları vardır, ancak DSC kullanarak bunu nasıl yapabileceğinize bakalım.

xSmbShare kaynağını yükleme

xSmbShare modülünü yüklemek için Install-Module cmdlet'ini çağırın.

Not

Install-Module , PowerShell 5.0'da bulunan PowerShellGet modülüne dahildir. xSmbShare, SMB dosya paylaşımı oluşturmak için kullanılabilecek xSmbShare DSC kaynağını içerir.

Dizin ve dosya paylaşımı oluşturma

Aşağıdaki yapılandırma, paylaşım için dizini oluşturmak için Dosya kaynağını ve SMB paylaşımını ayarlamak için xSmbShare kaynağını kullanır:

Configuration SmbShare
{
    Import-DscResource -ModuleName PSDesiredStateConfiguration
    Import-DscResource -ModuleName xSmbShare

    Node localhost
    {

        File CreateFolder
        {
            DestinationPath = 'C:\DscSmbShare'
            Type = 'Directory'
            Ensure = 'Present'
        }

        xSMBShare CreateShare
        {
            Name = 'DscSmbShare'
            Path = 'C:\DscSmbShare'
            FullAccess = 'administrator'
            ReadAccess = 'myDomain\Contoso-Server$'
            FolderEnumerationMode = 'AccessBased'
            Ensure = 'Present'
            DependsOn = '[File]CreateFolder'
        }
    }
}

Yapılandırma, henüz yoksa dizinini C:\DscSmbShareoluşturur ve ardından bu dizini SMB dosya paylaşımı olarak kullanır. Dosya paylaşımına yazması veya dosya paylaşımından silinmesi gereken tüm hesaplara FullAccess verilmelidir. ReadAccess , paylaşımdan yapılandırmaları ve/veya DSC kaynaklarını alan tüm istemci düğümlerine verilmelidir.

Not

DSC varsayılan olarak sistem hesabı olarak çalışır, bu nedenle bilgisayarın paylaşıma erişimi olmalıdır.

Dosya sistemine çekme istemcisine erişim verme

ReadAccess'in bir istemci düğümüne verilmesi, düğümün SMB paylaşımına erişmesine izin verir, ancak bu paylaşımdaki dosya veya klasörlere erişmez. İstemci düğümlerine SMB paylaşım klasörü ve alt klasörleri için açıkça erişim vermalısınız. Bunu, CNtfsAccessControl modülünde yer alan cNtfsPermissionEntry kaynağını kullanarak ekleyerek DSC ile yapabiliriz. Aşağıdaki yapılandırma, çekme istemcisine ReadAndExecute erişimi veren bir cNtfsPermissionEntry bloğu ekler:

Configuration DSCSMB
{
    Import-DscResource -ModuleName PSDesiredStateConfiguration
    Import-DscResource -ModuleName xSmbShare
    Import-DscResource -ModuleName cNtfsAccessControl

    Node localhost
    {

        File CreateFolder
        {
            DestinationPath = 'C:\DscSmbShare'
            Type = 'Directory'
            Ensure = 'Present'
        }

        xSMBShare CreateShare
        {
            Name = 'DscSmbShare'
            Path = 'C:\DscSmbShare'
            FullAccess = 'administrator'
            ReadAccess = 'myDomain\Contoso-Server$'
            FolderEnumerationMode = 'AccessBased'
            Ensure = 'Present'
            DependsOn = '[File]CreateFolder'
        }

        cNtfsPermissionEntry PermissionSet1
        {
            Ensure = 'Present'
            Path = 'C:\DscSmbShare'
            Principal = 'myDomain\Contoso-Server$'
            AccessControlInformation = @(
                cNtfsAccessControlInformation
                {
                    AccessControlType = 'Allow'
                    FileSystemRights = 'ReadAndExecute'
                    Inheritance = 'ThisFolderSubfoldersAndFiles'
                    NoPropagateInherit = $false
                }
            )
            DependsOn = '[File]CreateFolder'
        }
    }
}

Yapılandırmaları ve kaynakları yerleştirme

İstemci düğümlerinin SMB paylaşım klasörüne çekmesini istediğiniz tüm yapılandırma MOF dosyalarını ve/veya DSC kaynaklarını kaydedin.

Herhangi bir yapılandırma MOF dosyası, hedef düğümün LCM'sinin ConfigurationID özelliğinin değeri olan olarak adlandırılmalıdır<ConfigurationID>.mof<ConfigurationID>. Çekme istemcilerini ayarlama hakkında daha fazla bilgi için bkz. Yapılandırma kimliğini kullanarak çekme istemcisi ayarlama.

Not

SMB çekme sunucusu kullanıyorsanız yapılandırma kimliklerini kullanmanız gerekir. Yapılandırma adları SMB için desteklenmez.

Her kaynak modülünün aşağıdaki desene {Module Name}_{Module Version}.zipgöre sıkıştırılmış ve adlandırılmış olması gerekir. Örneğin, 3.1.2.0 modül sürümüne sahip xWebAdminstration adlı modül olarak adlandırılır xWebAdministration_3.2.1.0.zip. Modülün her sürümü tek bir zip dosyasında bulunmalıdır. Zip dosyasındaki modülün ayrı sürümleri desteklenmez. DSC kaynak modüllerini çekme sunucusuyla kullanmak üzere paketlemeden önce dizin yapısında küçük bir değişiklik yapmanız gerekir.

WMF 5.0'da DSC kaynağı içeren modüllerin varsayılan biçimi şeklindedir {Module Folder}\{Module Version}\DscResources\{DSC Resource Folder}\.

Çekme sunucusu için paketlemeden önce yolu olması için klasörü kaldırmanız {Module version} yeterlidir {Module Folder}\DscResources\{DSC Resource Folder}\. Bu değişiklikle, yukarıda açıklandığı gibi klasörü sıkıştırın ve bu zip dosyalarını SMB paylaşım klasörüne yerleştirin.

MOF sağlama toplamı oluşturma

Hedef düğümdeki LCM'nin yapılandırmayı doğrulayabilmesi için yapılandırma MOF dosyasının sağlama toplamı dosyasıyla eşlenmesi gerekir. Sağlama toplamı oluşturmak için New-DSCCheckSum cmdlet'ini çağırın. cmdlet'i, MOF yapılandırmasının bulunduğu klasörü belirten bir Path parametre alır. Cmdlet, adlı bir sağlama toplamı dosyası ConfigurationMOFName.mof.checksumoluşturur; burada ConfigurationMOFName yapılandırma mof dosyasının adıdır. Belirtilen klasörde birden fazla yapılandırma MOF dosyası varsa, klasördeki her yapılandırma için bir sağlama toplamı oluşturulur.

Sağlama toplamı dosyası, yapılandırma MOF dosyasıyla$env:PROGRAMFILES\WindowsPowerShell\DscService\Configuration (varsayılan olarak) aynı dizinde bulunmalı ve uzantı eklenmiş olarak .checksum aynı ada sahip olmalıdır.

Not

Yapılandırma MOF dosyasını herhangi bir şekilde değiştirirseniz sağlama toplamı dosyasını da yeniden oluşturmanız gerekir.

SMB için çekme istemcisi ayarlama

SMB paylaşımından yapılandırmaları ve/veya kaynakları çeken bir istemci ayarlamak için, yapılandırmaların ve DSC kaynaklarının çekildiği paylaşımı belirten ConfigurationRepositoryShare ve ResourceRepositoryShare bloklarıyla istemcinin Yerel Configuration Manager (LCM) yapılandırabilirsiniz.

LCM'yi yapılandırma hakkında daha fazla bilgi için bkz. Yapılandırma kimliğini kullanarak çekme istemcisi ayarlama.

Not

Kolaylık olması için, bu örnekte Credential parametresine düz metin parola geçirilmesine izin vermek için PSDscAllowPlainTextPassword kullanılır. Kimlik bilgilerini daha güvenli bir şekilde geçirme hakkında daha fazla bilgi için bkz. Yapılandırma Verileri'ndeki Kimlik Bilgileri Seçenekleri. Yalnızca kaynak çekiyor olsanız bile SMB çekme sunucusu için meta yapılandırmanın Ayarlar bloğunda bir ConfigurationID belirtmeniz GEREKİr.

$secpasswd = ConvertTo-SecureString "Pass1Word" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("TestUser", $secpasswd)

[DSCLocalConfigurationManager()]
configuration SmbCredTest
{
    Node $AllNodes.NodeName
    {
        Settings
        {
            RefreshMode = 'Pull'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
            ConfigurationID    = '16db7357-9083-4806-a80c-ebbaf4acd6c1'
        }

         ConfigurationRepositoryShare SmbConfigShare
        {
            SourcePath = '\\WIN-E0TRU6U11B1\DscSmbShare'
            Credential = $mycreds
        }

        ResourceRepositoryShare SmbResourceShare
        {
            SourcePath = '\\WIN-E0TRU6U11B1\DscSmbShare'
            Credential = $mycreds

        }
    }
}

$ConfigurationData = @{
    AllNodes = @(
        @{
            #the "*" means "all nodes named in ConfigData" so we don't have to repeat ourselves
            NodeName="localhost"
            PSDscAllowPlainTextPassword = $true
        })
}

Teşekkürler

Aşağıdaki kişilere özel teşekkürler:

  • Mike F. Robbins, DSC için SMB kullanma gönderileri bu konudaki içeriği bilgilendirmeye yardımcı oldu. Blogu Mike F Robbins'te.
  • cNtfsAccessControl modülünü yazan Serge Nikalaichyk. Bu modülün kaynağı cNtfsAccessControl konumundadır.

Ayrıca bkz.

Windows PowerShell Desired State Configuration Genel Bakış

Yapılandırmaları Kabul Etme

Yapılandırma kimliğini kullanarak çekme istemcisi ayarlama