çekme hizmetini Desired State Configuration

Ö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.

Yerel Configuration Manager (LCM) bir Çekme Hizmeti çözümü tarafından merkezi olarak yönetilebilir. Bu yaklaşım kullanılırken, yönetilen düğüm bir hizmete kaydedilir ve LCM ayarlarında bir yapılandırma atanır. Yapılandırma ve yapılandırma için bağımlılık olarak gereken tüm DSC kaynakları makineye indirilir ve LCM tarafından yapılandırmayı yönetmek için kullanılır. Yönetilen makinenin durumu hakkındaki bilgiler raporlama için hizmete yüklenir. Bu kavram "çekme hizmeti" olarak adlandırılır.

Çekme hizmeti için geçerli seçenekler şunlardır:

  • Azure Otomasyonu Desired State Configuration hizmeti
  • Windows Server'da çalışan bir çekme hizmeti
  • Topluluk tarafından korunan açık kaynak çözümleri
  • SMB paylaşımı

Her çözüm için önerilen ölçek aşağıdaki gibidir:

Çözüm İstemci düğümleri
MDB/ESENT veritabanını kullanan Windows Çekme Sunucusu En fazla 500 düğüm
SQL veritabanını kullanan Windows Pull Server En fazla 3500 düğüm
Azure Automation DSC Hem küçük hem de büyük ortamlar

Önerilen çözüm ve en fazla özelliğe sahip seçenek Azure Otomasyonu DSC'dir. Otomasyon Hesabı başına düğüm sayısı için üst sınır tanımlanmadı.

Azure hizmeti, şirket içi düğümleri özel veri merkezlerinde veya Azure ve AWS gibi genel bulutlarda yönetebilir. Sunucuların doğrudan İnternet'e bağlanamadığı özel ortamlar için, giden trafiği yalnızca yayımlanan Azure IP aralığıyla sınırlamayı göz önünde bulundurun (bkz. Azure Veri Merkezi IP Aralıkları).

Windows Server'daki çekme hizmetinde şu anda kullanılamayan çevrimiçi hizmetin özellikleri şunlardır:

  • Aktarımdaki ve bekleyen tüm veriler şifrelenir
  • İstemci sertifikaları otomatik olarak oluşturulur ve yönetilir
  • Parolaları/kimlik bilgilerini veya sunucu adları ya da bağlantı dizeleri gibi değişkenleri merkezi olarak yönetmek için gizli dizi deposu
  • Düğüm LCM yapılandırmasını merkezi olarak yönetme
  • İstemci düğümlerine yapılandırmaları merkezi olarak atama
  • Üretime ulaşmadan önce test için "kanarya gruplarında" yapılandırma değişikliklerini serbest bırakma
  • Grafik raporlama
    • DSC kaynak ayrıntı düzeyinde durum ayrıntıları
    • Sorun giderme için istemci makinelerinden ayrıntılı hata iletileri
  • Uyarı, otomatik görevler, raporlama ve uyarı için Android/iOS uygulaması için Azure Log Analytics ile tümleştirme

Windows Server'da DSC çekme hizmeti

Çekme hizmetini Windows Server'da çalışacak şekilde yapılandırmak mümkündür. Windows Server'a dahil edilen çekme hizmeti çözümünün yalnızca bir veritabanına rapor verilerini indirmek ve yakalamak için yapılandırmaları ve modülleri depolama özelliklerini içerdiğini unutmayın. Azure'da hizmet tarafından sunulan özelliklerin çoğunu içermez ve bu nedenle hizmetin nasıl kullanılacağını değerlendirmek için iyi bir araç değildir.

Windows Server'da sunulan çekme hizmeti, DSC yapılandırma dosyalarının bu düğümler tarafından istendiğinde hedef düğümler için kullanılabilir olmasını sağlamak için OData arabirimi kullanan IIS'deki bir web hizmetidir.

Çekme sunucusu kullanma gereksinimleri:

  • Çalıştıran bir sunucu:
    • WMF/PowerShell 4.0 veya üzeri
    • IIS sunucu rolü
    • DSC Hizmeti
  • İdeal olan, hedef düğümlerde Yerel Configuration Manager (LCM) geçirilen kimlik bilgilerinin güvenliğini sağlamak için bir sertifika oluşturmanın bazı araçlarıdır

Windows Server'ı çekme hizmetini barındıracak şekilde yapılandırmanın en iyi yolu DSC yapılandırması kullanmaktır. Aşağıda örnek bir betik verilmiştir.

Desteklenen veritabanı sistemleri

WMF 4.0 WMF 5.0 WMF 5.1 WMF 5.1 (Windows Server Insider Preview 17090)
MDB ESENT (Varsayılan), MDB ESENT (Varsayılan), MDB ESENT (Varsayılan), SQL Server, MDB

Windows Server'ın 17090 sürümünden itibaren SQL Server Çekme Hizmeti (Windows Özelliği DSC-Service) için desteklenen bir seçenektir. Bu, Azure Otomasyonu DSC'ye geçirilmemiş büyük DSC ortamlarını ölçeklendirmek için yeni bir seçenek sağlar.

Not

SQL Server desteği WMF 5.1'in (veya önceki) önceki sürümlerine eklenmez ve yalnızca 17090'dan büyük veya buna eşit Windows Server sürümlerinde kullanılabilir.

Çekme sunucusunu SQL Server kullanacak şekilde yapılandırmak için SqlProvider'ı$true ve SqlConnectionString'i geçerli bir SQL Server Bağlantı Dizesi olarak ayarlayın. Daha fazla bilgi için bkz . SqlClient Bağlantı Dizeleri. xDscWebService ile SQL Server yapılandırması örneği için önce xDscWebService kaynağını kullanma bölümünü okuyun ve ardından GitHub'da 2-xDscWebService_RegistrationUseSQLProvider_Config.ps1 gözden geçirin.

xDscWebService kaynağını kullanma

Web çekme sunucusu ayarlamanın en kolay yolu, xPSDesiredStateConfiguration modülüne dahil edilen xDscWebService kaynağını kullanmaktır. Aşağıdaki adımlarda, web hizmetini ayarlayan bir Configuration kaynağın nasıl kullanılacağı açıklanmaktadır.

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

    Not

    Install-Module , PowerShell 5.0 ve üzeri sürümlerde bulunan PowerShellGet modülüne dahil edilir.

  2. DSC Çekme sunucusu için kuruluşunuzun içinden veya bir kamu yetkilisinden güvenilen bir Sertifika Yetkilisinden SSL sertifikası alın. Yetkiliden alınan sertifika genellikle PFX biçimindedir.

  3. Sertifikayı, olması gereken CERT:\LocalMachine\Myvarsayılan konumda DSC Çekme sunucusu olacak düğüme yükleyin.

    • Sertifika parmak izini not edin.
  4. Kayıt Anahtarı olarak kullanılacak GUID'yi seçin. PowerShell kullanarak bir tane oluşturmak için PS istemine aşağıdakileri girin ve enter tuşuna basın: [guid]::newGuid() veya New-Guid. Bu anahtar, kayıt sırasında kimlik doğrulaması yapmak için istemci düğümleri tarafından paylaşılan anahtar olarak kullanılır. Daha fazla bilgi için aşağıdaki Kayıt Anahtarı bölümüne bakın.

  5. PowerShell ISE'de aşağıdaki yapılandırma betiğini (F5) başlatın ( xPSDesiredStateConfiguration modülünün klasörüne olarak Sample_xDscWebServiceRegistration.ps1dahildir) . Bu betik, çekme sunucusunu ayarlar.

    configuration Sample_xDscWebServiceRegistration
    {
        param
        (
            [string[]]$NodeName = 'localhost',
    
            [ValidateNotNullOrEmpty()]
            [string] $certificateThumbPrint,
    
            [Parameter(HelpMessage='This should be a string with enough entropy (randomness)' +
                ' to protect the registration of clients to the pull server.  We will use new' +
                ' GUID by default.'
            )]
            [ValidateNotNullOrEmpty()]
            [string] $RegistrationKey   # A guid that clients use to initiate conversation with pull server
        )
    
        Import-DSCResource -ModuleName PSDesiredStateConfiguration
        Import-DSCResource -ModuleName xPSDesiredStateConfiguration
    
        Node $NodeName
        {
            WindowsFeature DSCServiceFeature
            {
                Ensure = "Present"
                Name   = "DSC-Service"
            }
    
            xDscWebService PSDSCPullServer
            {
                Ensure                  = "Present"
                EndpointName            = "PSDSCPullServer"
                Port                    = 8080
                PhysicalPath            = "$env:SystemDrive\inetpub\PSDSCPullServer"
                CertificateThumbPrint   = $certificateThumbPrint
                ModulePath              = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Modules"
                ConfigurationPath       = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Configuration"
                State                   = "Started"
                DependsOn               = "[WindowsFeature]DSCServiceFeature"
                RegistrationKeyPath     = "$env:PROGRAMFILES\WindowsPowerShell\DscService"
                AcceptSelfSignedCertificates = $true
                UseSecurityBestPractices     = $true
                Enable32BitAppOnWin64   = $false
            }
    
            File RegistrationKeyFile
            {
                Ensure          = 'Present'
                Type            = 'File'
                DestinationPath = "$env:ProgramFiles\WindowsPowerShell\DscService\RegistrationKeys.txt"
                Contents        = $RegistrationKey
            }
        }
    }
    
  6. SSL sertifikasının parmak izini certificateThumbPrint parametresi ve GUID kayıt anahtarını RegistrationKey parametresi olarak geçirerek yapılandırmayı çalıştırın:

    # To find the Thumbprint for an installed SSL certificate for use with the pull server list all
    # certificates in your local store and then copy the thumbprint for the appropriate certificate
    # by     reviewing the certificate subjects
    
    dir Cert:\LocalMachine\my
    
    # Then include this thumbprint when running the configuration
    $sample_xDscWebServiceRegistrationSplat = @{
        certificateThumbprint = 'A7000024B753FA6FFF88E966FD6E19301FAE9CCC'
        RegistrationKey = '140a952b-b9d6-406b-b416-e0f759c9c0e4'
        OutputPath = 'C:\Configs\PullServer'
    }
    Sample_xDscWebServiceRegistration @sample_xDscWebServiceRegistrationSplat
    
    # Run the compiled configuration to make the target node a DSC Pull Server
    Start-DscConfiguration -Path c:\Configs\PullServer -Wait -Verbose
    

Kayıt Anahtarı

İstemci düğümlerinin yapılandırma kimliği yerine yapılandırma adlarını kullanabilmesi için sunucuya kaydolmasına izin vermek için, yukarıdaki yapılandırma tarafından oluşturulan bir kayıt anahtarı içinde adlı RegistrationKeys.txt bir dosyaya C:\Program Files\WindowsPowerShell\DscServicekaydedilir. Kayıt anahtarı, istemci tarafından çekme sunucusuna ilk kayıt sırasında kullanılan paylaşılan bir gizli dizi olarak çalışır. İstemci, kayıt başarıyla tamamlandıktan sonra çekme sunucusunda benzersiz kimlik doğrulaması yapmak için kullanılan otomatik olarak imzalanan bir sertifika oluşturur. Bu sertifikanın parmak izi yerel olarak depolanır ve çekme sunucusunun URL'si ile ilişkilendirilir.

Not

Kayıt anahtarları PowerShell 4.0'da desteklenmez.

Bir düğümü çekme sunucusuyla kimlik doğrulaması yapacak şekilde yapılandırmak için kayıt anahtarının bu çekme sunucusuna kaydedilecek tüm hedef düğümler için meta yapılandırmada olması gerekir. Hedef makine başarıyla kaydedildikten sonra aşağıdaki meta yapılandırmada RegistrationKey'in kaldırıldığını ve değerin çekme sunucusundaki dosyada RegistrationKeys.txt depolanan değerle eşleşmesi gerektiğini unutmayın (bu örnekte '140a952b-b9d6-406b-b416-e0f759c9c0e4'). Kayıt anahtarı değerini her zaman güvenli bir şekilde değerlendirin, çünkü tüm hedef makinelerin çekme sunucusuna kaydolmasına izin verir.

[DSCLocalConfigurationManager()]
configuration Sample_MetaConfigurationToRegisterWithLessSecurePullServer
{
    param
    (
        [ValidateNotNullOrEmpty()]
        [string] $NodeName = 'localhost',

        [ValidateNotNullOrEmpty()]
        [string] $RegistrationKey, # the key used to set up pull server in previous configuration

        [ValidateNotNullOrEmpty()]
        [string] $ServerName = 'localhost' # The name of the pull server, same as $NodeName used in previous configuration
    )

    Node $NodeName
    {
        Settings
        {
            RefreshMode        = 'Pull'
        }

        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL          = "https://$ServerName`:8080/PSDSCPullServer.svc"
            RegistrationKey    = $RegistrationKey
            ConfigurationNames = @('ClientConfig')
        }

        ReportServerWeb CONTOSO-PullSrv
        {
            ServerURL       = "https://$ServerName`:8080/PSDSCPullServer.svc"
            RegistrationKey = $RegistrationKey
        }
    }
}

$MetaConfigurationSplat = @{
    RegistrationKey = $RegistrationKey
    OutputPath = 'c:\Configs\TargetNodes'
}

Sample_MetaConfigurationToRegisterWithLessSecurePullServer @MetaConfigurationSplat

Not

ReportServerWeb bölümü, raporlama verilerinin çekme sunucusuna gönderilmesini sağlar.

Meta yapılandırma dosyasında ConfigurationID özelliğinin olmaması, çekme sunucusunun çekme sunucusu protokolünün V2 sürümünü desteklediği anlamına gelir, bu nedenle ilk kayıt gereklidir. Buna karşılık ConfigurationID'nin varlığı, çekme sunucusu protokolünün V1 sürümünün kullanıldığı ve kayıt işleminin olmadığı anlamına gelir.

Not

Bir PUSH senaryosunda, geçerli sürümde, çekme sunucusuna hiç kaydolmamış düğümler için meta yapılandırma dosyasında configurationid özelliğinin tanımlanmasını gerekli kılan bir hata vardır. Bu, V1 Çekme Sunucusu protokollerini zorlar ve kayıt hatası iletilerini önler.

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

Çekme sunucusu kurulumu tamamlandıktan sonra, çekme sunucusu yapılandırmasındaki ConfigurationPath ve ModulePath özellikleri tarafından tanımlanan klasörler, hedef düğümlerin çekmesi için kullanılabilecek modülleri ve yapılandırmaları yerleştireceğiniz yerdir. Çekme sunucusunun bunları doğru şekilde işlemesi için bu dosyaların belirli bir biçimde olması gerekir.

DSC kaynak modülü paket biçimi

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ı bir modül olarak adlandırılabilir xWebAdministration_3.1.2.0.zip. Modülün her sürümü tek bir zip dosyasında bulunmalıdır. Her zip dosyasında bir kaynağın yalnızca tek bir sürümü olduğundan, WMF 5.0'da tek bir dizinde birden çok modül sürümü desteğiyle eklenen modül biçimi desteklenmez. Bu, çekme sunucusuyla kullanmak üzere DSC kaynak modüllerini paketlemeden önce dizin yapısında küçük bir değişiklik yapmanız gerektiği anlamına gelir. WMF 5.0'da DSC kaynağı içeren modüllerin varsayılan biçimidir {Module Folder}\{Module Version}\DscResources\{DSC Resource Folder}\. Çekme sunucusu için paketlemeden önce yolun olması {Module Folder}\DscResources\{DSC Resource Folder}\için {Module version} klasörünü kaldırın. Bu değişiklikle, yukarıda açıklandığı gibi klasörü sıkıştırın ve bu zip dosyalarını ModulePath klasörüne yerleştirin.

Yeni eklenen modül için sağlama toplamı dosyası oluşturmak için kullanın New-DscChecksum {module zip file} .

Yapılandırma MOF biçimi

Hedef düğümdeki LCM'nin yapılandırmayı doğru edebilmesi 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 parametresi alır. cmdlet'i, ConfigurationMOFName yapılandırma mof dosyasının adı olan adlı ConfigurationMOFName.mof.checksumbir sağlama toplamı dosyası oluşturur. 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. MOF dosyalarını ve ilişkili sağlama toplamı dosyalarını ConfigurationPath klasörüne yerleştirin.

Not

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

Araçlar

Çekme sunucusunu ayarlamayı, doğrulamayı ve yönetmeyi kolaylaştırmak için xPSDesiredStateConfiguration modülünün en son sürümünde örnek olarak aşağıdaki araçlar yer alır:

  1. Çekme sunucusunda kullanılmak üzere DSC kaynak modüllerini ve yapılandırma dosyalarını paketlemeye yardımcı olacak bir modül. PublishModulesAndMofsToPullServer.psm1. Aşağıdaki örnekler:

    # Example 1 - Package all versions of given modules installed locally and MOF files are in c:\LocalDepot
    $moduleList = @('xWebAdministration', 'xPhp')
    Publish-DSCModuleAndMof -Source C:\LocalDepot -ModuleNameList $moduleList
    
    # Example 2 - Package modules and mof documents from c:\LocalDepot
    Publish-DSCModuleAndMof -Source C:\LocalDepot -Force
    
  2. Çekme sunucusunu doğrulayan bir betik doğru yapılandırıldı. PullServerSetupTests.ps1.

Çekme Hizmeti için Topluluk Çözümleri

DSC topluluğu, çekme hizmeti protokollerini uygulamak için birden çok çözüm yazdı. Şirket içi ortamlar için bunlar çekme hizmeti özellikleri ve artımlı geliştirmelerle topluluğa geri katkıda bulunma fırsatı sunar.

Çekme istemcisi yapılandırması

Aşağıdaki konular çekme istemcilerini ayarlamayı ayrıntılı olarak açıklar:

Ayrıca bkz.