Bagikan melalui


Layanan Tarik Konfigurasi Status yang Diinginkan

Penting

Pull Server (Windows Feature DSC-Service) adalah komponen Windows Server yang didukung, namun tidak ada rencana untuk menawarkan fitur atau kemampuan baru. kami ingin Anda tahu bahwa versi DSC yang lebih baru sekarang tersedia secara umum, dikelola oleh fitur Azure Policy bernama konfigurasi tamu. Layanan konfigurasi tamu menggabungkan fitur Ekstensi DSC, Konfigurasi Status Azure Automation, dan fitur yang paling umum diminta dari umpan balik pelanggan. Konfigurasi tamu juga mencakup dukungan mesin hibrid melalui server yang mendukung Arc.

Manajer Konfigurasi Lokal (LCM) dapat dikelola secara terpusat oleh solusi Layanan Tarik. Saat menggunakan pendekatan ini, simpul yang dikelola terdaftar dengan layanan dan menetapkan konfigurasi dalam pengaturan LCM. Konfigurasi dan semua sumber daya DSC yang diperlukan sebagai dependensi untuk konfigurasi diunduh ke komputer dan digunakan oleh LCM untuk mengelola konfigurasi. Informasi tentang status komputer yang dikelola diunggah ke layanan untuk pelaporan. Konsep ini disebut sebagai "layanan tarik".

Opsi saat ini untuk layanan tarik meliputi:

  • Layanan Konfigurasi Status yang Diinginkan Azure Automation
  • Layanan tarik yang berjalan di Windows Server
  • Solusi sumber terbuka yang dikelola komunitas
  • Berbagi UKM

Skala yang direkomendasikan untuk setiap larutan adalah sebagai berikut:

Solusi Node klien
Windows Pull Server menggunakan database MDB/ESENT Hingga 500 node
Windows Pull Server menggunakan database SQL Hingga 3500 node
Azure Automation DSC Baik lingkungan kecil maupun besar

Solusi yang direkomendasikan, dan opsi dengan fitur terbanyak yang tersedia, adalah Azure Automation DSC. Batas atas untuk jumlah node per Akun Automation belum diidentifikasi.

Layanan Azure dapat mengelola simpul lokal di pusat data privat, atau di cloud publik seperti Azure dan AWS. Untuk lingkungan privat di mana server tidak dapat langsung terhubung ke Internet, pertimbangkan untuk membatasi lalu lintas keluar hanya ke rentang IP Azure yang diterbitkan (lihat Rentang IP Azure dan Tag Layanan).

Fitur layanan online yang saat ini tidak tersedia di layanan tarik di Windows Server meliputi:

  • Semua data dienkripsi dalam transit dan saat tidak aktif
  • Sertifikat klien dibuat dan dikelola secara otomatis
  • Penyimpanan rahasia untuk mengelola kata sandi/kredensial secara terpusat, atau variabel seperti nama server atau string koneksi
  • Kelola konfigurasi LCM node secara terpusat
  • Menetapkan konfigurasi secara terpusat ke simpul klien
  • Rilis perubahan konfigurasi ke "grup kenari" untuk pengujian sebelum mencapai produksi
  • Pelaporan grafis
    • Detail status pada tingkat granularitas sumber daya DSC
    • Pesan kesalahan bertele-tele dari komputer klien untuk pemecahan masalah
  • Integrasi dengan Azure Log Analytics untuk pemberitahuan, tugas otomatis, aplikasi Android/iOS untuk pelaporan dan pemberitahuan

Layanan tarik DSC di Windows Server

Dimungkinkan untuk mengonfigurasi layanan tarik untuk berjalan di Windows Server. Perhatikan bahwa solusi layanan tarik yang disertakan dalam Windows Server hanya menyertakan kemampuan menyimpan konfigurasi dan modul untuk mengunduh dan menangkap data laporan ke dalam database. Ini tidak menyertakan banyak kemampuan yang ditawarkan oleh layanan di Azure dan karenanya, bukan alat yang baik untuk mengevaluasi bagaimana layanan akan digunakan.

Layanan tarik yang ditawarkan di Windows Server adalah layanan web di IIS yang menggunakan antarmuka OData untuk membuat file konfigurasi DSC tersedia untuk simpul target saat simpul tersebut memintanya.

Persyaratan untuk menggunakan server pull:

  • Server yang menjalankan:
    • WMF/PowerShell 4.0 atau lebih tinggi
    • Peran server IIS
    • Layanan DSC
  • Idealnya, beberapa cara untuk menghasilkan sertifikat, untuk mengamankan kredensial yang diteruskan ke Manajer Konfigurasi Lokal (LCM) pada simpul target

Cara terbaik untuk mengonfigurasi Windows Server ke layanan tarik host adalah dengan menggunakan konfigurasi DSC. Contoh skrip disediakan di bawah ini.

Sistem basis data yang didukung

Mulai rilis 17090 Windows Server, WMF 5.1 menyertakan dukungan untuk opsi SQL Server untuk Layanan Tarik (Windows Feature DSC-Service). Ini memberikan opsi baru untuk menskalakan lingkungan DSC besar yang belum bermigrasi ke Azure Automation DSC.

Untuk mengonfigurasi server tarik menggunakan SQL Server, atur SqlProvider ke $true dan SqlConnectionString ke String Koneksi SQL Server yang valid. Untuk informasi selengkapnya, lihat String Koneksi SqlClient. Untuk contoh konfigurasi SQL Server dengan xDscWebService, pertama-tama baca Menggunakan sumber daya xDscWebService , lalu tinjau 2-xDscWebService_RegistrationUseSQLProvider_Config.ps1 di GitHub.

Menggunakan sumber daya xDscWebService

Cara termudah untuk menyiapkan server tarik web adalah dengan menggunakan sumber daya xDscWebService , yang disertakan dalam modul xPSDesiredStateConfiguration . Langkah-langkah berikut menjelaskan cara menggunakan sumber daya yang Configuration menyiapkan layanan web.

  1. Panggil cmdlet Install-Module untuk menginstal modul xPSDesiredStateConfiguration .

  2. Dapatkan sertifikat SSL untuk server DSC Pull dari Otoritas Sertifikat tepercaya, baik dalam organisasi Anda atau otoritas publik. Sertifikat yang diterima dari otoritas biasanya dalam format PFX.

  3. Instal sertifikat pada simpul yang akan menjadi server DSC Pull di lokasi default, yang seharusnya .CERT:\LocalMachine\My Catat sidik jari sertifikat.

  4. Pilih GUID yang akan digunakan sebagai Kunci Pendaftaran. Untuk menghasilkannya menggunakan PowerShell, masukkan yang berikut ini pada prompt PS dan tekan enter: [guid]::newGuid() atau New-Guid. Kunci ini akan digunakan oleh simpul klien sebagai kunci bersama untuk mengautentikasi selama pendaftaran. Untuk informasi selengkapnya, lihat bagian Kunci Pendaftaran di bawah.

  5. Di PowerShell ISE, mulai (F5) skrip konfigurasi berikut (disertakan dalam folder modul xPSDesiredStateConfiguration sebagai Sample_xDscWebServiceRegistration.ps1.

    Skrip ini menyiapkan server tarik.

    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. Jalankan konfigurasi, meneruskan sidik jari sertifikat SSL sebagai parameter certificateThumbPrint dan kunci pendaftaran GUID sebagai parameter RegistrationKey :

    # 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 = 'AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00'
        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
    

Kunci Pendaftaran

Untuk mengizinkan simpul klien mendaftar ke server sehingga mereka dapat menggunakan nama konfigurasi alih-alih ID konfigurasi, kunci pendaftaran yang dibuat oleh konfigurasi di atas disimpan dalam file bernama RegistrationKeys.txtC:\Program Files\WindowsPowerShell\DscService. Kunci pendaftaran berfungsi sebagai rahasia bersama yang digunakan selama pendaftaran awal oleh klien dengan server tarik. Klien akan menghasilkan sertifikat yang ditandatangani sendiri yang digunakan untuk mengautentikasi secara unik ke server tarik setelah pendaftaran berhasil diselesaikan. Sidik jari sertifikat ini disimpan secara lokal dan dikaitkan dengan URL server tarik.

Nota

Kunci pendaftaran tidak didukung di PowerShell 4.0.

Untuk mengonfigurasi simpul untuk diautentikasi dengan server tarik, kunci pendaftaran harus berada dalam metakonfigurasi untuk setiap simpul target yang akan mendaftar dengan server tarik ini. Perhatikan bahwa RegistrationKey dalam metakonfigurasi di bawah ini dihapus setelah mesin target berhasil mendaftar, dan nilainya harus cocok dengan nilai yang disimpan dalam RegistrationKeys.txt file di server tarik ('140a952b-b9d6-406b-b416-e0f759c9c0e4' untuk contoh ini). Selalu perlakukan nilai kunci pendaftaran dengan aman, karena mengetahuinya memungkinkan mesin target apa pun untuk mendaftar ke server tarik.

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

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

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

    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

Nota

Bagian ReportServerWeb memungkinkan data pelaporan dikirim ke server tarik.

Kurangnya properti ConfigurationID dalam file metakonfigurasi secara implisit berarti bahwa server tarik mendukung versi V2 dari protokol server tarik sehingga pendaftaran awal diperlukan. Sebaliknya, keberadaan ConfigurationID berarti bahwa protokol server tarik versi V1 digunakan dan tidak ada pemrosesan pendaftaran.

Nota

Dalam skenario PUSH, ada bug dalam rilis saat ini yang mengharuskan untuk menentukan properti ConfigurationID dalam file metakonfigurasi untuk simpul yang belum pernah terdaftar dengan server tarik. Ini akan memaksa protokol V1 Pull Server dan menghindari pesan kegagalan pendaftaran.

Menempatkan konfigurasi dan sumber daya

Setelah penyiapan server tarik selesai, folder yang ditentukan oleh properti ConfigurationPath dan ModulePath dalam konfigurasi server tarik adalah tempat Anda akan menempatkan modul dan konfigurasi yang akan tersedia untuk ditarik oleh simpul target. File-file ini harus dalam format tertentu agar server tarik dapat memprosesnya dengan benar.

Format paket modul sumber daya DSC

Setiap modul sumber daya perlu di-zip dan diberi nama sesuai dengan pola <Module Name>_<Module Version>.zipberikut.

Misalnya, modul bernama xWebAdminstration dengan versi modul 3.1.2.0 akan diberi nama xWebAdministration_3.1.2.0.zip. Setiap versi modul harus terkandung dalam satu file zip. Karena hanya ada satu versi sumber daya di setiap file zip, format modul yang ditambahkan di WMF 5.0 dengan dukungan untuk beberapa versi modul dalam satu direktori tidak didukung. Ini berarti bahwa sebelum mengemas modul sumber daya DSC untuk digunakan dengan server tarik, Anda perlu membuat perubahan kecil pada struktur direktori. Format default modul yang berisi sumber daya DSC di WMF 5.0 adalah <Module Folder>\<Module Version>\DscResources\<DSC Resource Folder>\. Sebelum mengemas untuk server tarik, hapus <Module version> folder sehingga jalurnya menjadi <Module Folder>\DscResources\<DSC Resource Folder>\. Dengan perubahan ini, zip folder seperti yang dijelaskan di atas dan tempatkan file zip ini di folder ModulePath .

Gunakan New-DscChecksum <module zip file> untuk membuat file checksum untuk modul yang baru ditambahkan.

Format MOF konfigurasi

File MOF konfigurasi perlu dipasangkan dengan file checksum sehingga LCM pada simpul target dapat memvalidasi konfigurasi. Untuk membuat checksum, panggil cmdlet New-DscChecksum. Cmdlet mengambil parameter Path yang menentukan folder tempat konfigurasi MOF berada. Cmdlet membuat file checksum bernama ConfigurationMOFName.mof.checksum, di mana ConfigurationMOFName nama file konfigurasi mof. Jika ada lebih dari satu file MOF konfigurasi di folder yang ditentukan, checksum dibuat untuk setiap konfigurasi dalam folder. Tempatkan file MOF dan file checksum terkaitnya di folder ConfigurationPath .

Nota

Jika Anda mengubah file MOF konfigurasi dengan cara apa pun, Anda juga harus membuat ulang file checksum.

Peralatan

Untuk menyiapkan, memvalidasi, dan mengelola server tarik, gunakan alat berikut yang disertakan sebagai contoh dalam versi terbaru modul xPSDesiredStateConfiguration:

  1. Modul yang akan membantu mengemas modul sumber daya DSC dan file konfigurasi untuk digunakan di server tarik. PublishModulesAndMofsToPullServer.psm1. Contoh di bawah ini:

    # 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. Skrip yang memvalidasi server tarik dikonfigurasi dengan benar. PullServerSetupTests.ps1.

Solusi Komunitas untuk Layanan Tarik

Komunitas DSC telah menulis beberapa solusi untuk mengimplementasikan protokol layanan tarik. Untuk lingkungan lokal, ini menawarkan kemampuan layanan tarik dan peluang untuk berkontribusi kembali ke komunitas dengan peningkatan bertahap.

Tarik konfigurasi klien

Topik berikut menjelaskan penyiapan klien tarik secara rinci:

Lihat juga