Konfigurasi parsial Konfigurasi Status yang Diinginkan PowerShell

Berlaku Untuk: Windows PowerShell 5.0 dan yang lebih baru.

Di PowerShell 5.0, Desired State Configuration (DSC) memungkinkan konfigurasi dikirimkan dalam fragmen dan dari berbagai sumber. Local Configuration Manager (LCM) pada simpul target menggabungkan fragmen sebelum menerapkannya sebagai konfigurasi tunggal. Kemampuan ini memungkinkan berbagi kontrol konfigurasi antara tim atau individu. Misalnya, jika dua atau beberapa tim pengembang berkolaborasi pada layanan, mereka mungkin masing-masing ingin membuat konfigurasi untuk mengelola bagian layanan mereka. Masing-masing konfigurasi ini dapat ditarik dari server penarikan yang berbeda, dan dapat ditambahkan pada berbagai tahap pengembangan. Konfigurasi parsial juga memungkinkan individu atau tim yang berbeda untuk mengontrol berbagai aspek konfigurasi simpul tanpa harus mengoordinasikan pengeditan satu dokumen konfigurasi. Misalnya, satu tim mungkin bertanggung jawab untuk menyebarkan VM dan sistem operasi, sementara tim lain mungkin menyebarkan aplikasi dan layanan lain pada VM tersebut. Dengan konfigurasi parsial, setiap tim dapat membuat konfigurasinya sendiri, tanpa salah satunya menjadi tidak perlu rumit.

Anda dapat menggunakan konfigurasi parsial dalam mode pendorongan, mode penarikan, atau kombinasi keduanya.

Konfigurasi parsial dalam mode pendorongan

Untuk menggunakan konfigurasi parsial dalam mode pendorongan, Anda mengonfigurasi LCM pada simpul target untuk menerima konfigurasi parsial. Setiap konfigurasi parsial harus didorong ke target dengan menggunakan Publish-DSCConfiguration cmdlet . Simpul target kemudian menggabungkan konfigurasi parsial ke dalam satu konfigurasi, dan Anda dapat menerapkan konfigurasi dengan memanggil cmdlet Start-DscConfiguration .

Mengonfigurasi LCM untuk konfigurasi parsial mode push

Untuk mengonfigurasi LCM untuk konfigurasi parsial dalam mode pendorongan, Anda membuat konfigurasi DSCLocalConfigurationManager dengan satu blok PartialConfiguration untuk setiap konfigurasi parsial. Untuk informasi selengkapnya tentang mengonfigurasi LCM, lihat Windows Mengonfigurasi Configuration Manager Lokal. Contoh berikut menunjukkan konfigurasi LCM yang mengharapkan dua konfigurasi parsial—satu yang menyebarkan OS, dan yang menyebarkan dan mengonfigurasi SharePoint.

[DSCLocalConfigurationManager()]
configuration PartialConfigDemo
{
    Node localhost
    {

        PartialConfiguration ServiceAccountConfig
        {
            Description = 'Configuration to add the SharePoint service account to the Administrators group.'
            RefreshMode = 'Push'
        }
           PartialConfiguration SharePointConfig
        {
            Description = 'Configuration for the SharePoint server'
            RefreshMode = 'Push'
        }
    }
}

PartialConfigDemo

RefreshMode untuk setiap konfigurasi parsial diatur ke "Push". Nama blok PartialConfiguration (dalam hal ini, "ServiceAccountConfig" dan "SharePointConfig") harus sama persis dengan nama konfigurasi yang didorong ke simpul target.

Catatan

Nama setiap blok PartialConfiguration harus cocok dengan nama aktual konfigurasi seperti yang ditentukan dalam skrip konfigurasi, bukan nama file MOF, yang harus berupa nama simpul target atau localhost.

Menerbitkan dan memulai konfigurasi parsial mode pendorongan

Anda kemudian memanggil Publish-DSCConfiguration untuk setiap konfigurasi, meneruskan folder yang berisi dokumen konfigurasi sebagai parameter Jalur . Publish-DSCConfigurationmenempatkan file MOF konfigurasi ke simpul target. Setelah menerbitkan kedua konfigurasi, Anda dapat memanggil Start-DSCConfiguration –UseExisting pada simpul target.

Misalnya, jika Anda telah mengkompilasi dokumen MOF konfigurasi berikut pada simpul penulisan:

Get-ChildItem -Recurse
    Directory: C:\PartialConfigTest

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        8/11/2016   1:55 PM                ServiceAccountConfig
d-----       11/17/2016   4:14 PM                SharePointConfig

    Directory: C:\PartialConfigTest\ServiceAccountConfig

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        8/11/2016   2:02 PM           2034 TestVM.mof

    Directory: C:\PartialConfigTest\SharePointConfig

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       11/17/2016   4:14 PM           1930 TestVM.mof

Anda akan menerbitkan dan menjalankan konfigurasi sebagai berikut:

Publish-DscConfiguration .\ServiceAccountConfig -ComputerName 'TestVM'
Publish-DscConfiguration .\SharePointConfig -ComputerName 'TestVM'
Start-DscConfiguration -UseExisting -ComputerName 'TestVM'
Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
17     Job17           Configuratio... Running       True            TestVM            Start-DscConfiguration...

Catatan

Pengguna yang menjalankan cmdlet Publish-DSCConfiguration harus memiliki hak istimewa administrator pada simpul target.

Konfigurasi parsial dalam mode penarikan

Konfigurasi parsial dapat ditarik dari satu atau beberapa server penarikan (untuk informasi selengkapnya tentang server penarikan, lihat Windows PowerShell Desired State Configuration Pull Servers. Untuk melakukan ini, Anda harus mengonfigurasi LCM pada simpul target untuk menarik konfigurasi parsial, dan memberi nama dan menemukan dokumen konfigurasi dengan benar di server penarikan.

Mengonfigurasi LCM untuk konfigurasi simpul penarikan

Untuk mengonfigurasi LCM untuk menarik konfigurasi parsial dari server penarikan, Anda menentukan server penarikan di blok ConfigurationRepositoryWeb (untuk server penarikan HTTP) atau ConfigurationRepositoryShare (untuk server penarikan SMB). Anda kemudian membuat blok PartialConfiguration yang merujuk ke server penarikan dengan menggunakan properti ConfigurationSource . Anda juga perlu membuat blok Pengaturan untuk menentukan bahwa LCM menggunakan mode penarikan, dan untuk menentukan ConfigurationNames atau ConfigurationID yang digunakan server penarikan dan simpul target untuk mengidentifikasi konfigurasi. Meta-configuration berikut mendefinisikan server penarikan HTTP bernama CONTOSO-PullSrv dan dua konfigurasi parsial yang menggunakan server penarikan tersebut.

Untuk informasi selengkapnya tentang mengonfigurasi LCM menggunakan ConfigurationNames, lihat Menyiapkan klien penarikan menggunakan nama konfigurasi. Untuk informasi tentang mengonfigurasi LCM menggunakan ConfigurationID, lihat Menyiapkan klien penarikan menggunakan ID konfigurasi.

Mengonfigurasi LCM untuk konfigurasi mode penarikan menggunakan nama konfigurasi

[DscLocalConfigurationManager()]
Configuration PartialConfigDemoConfigNames
{
        Settings
        {
            RefreshFrequencyMins            = 30;
            RefreshMode                     = "PULL";
            ConfigurationMode               ="ApplyAndAutocorrect";
            AllowModuleOverwrite            = $true;
            RebootNodeIfNeeded              = $true;
            ConfigurationModeFrequencyMins  = 60;
        }
        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL                       = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
            RegistrationKey                 = 5b41f4e6-5e6d-45f5-8102-f2227468ef38
            ConfigurationNames              = @("ServiceAccountConfig", "SharePointConfig")
        }

        PartialConfiguration ServiceAccountConfig
        {
            Description                     = "ServiceAccountConfig"
            ConfigurationSource             = @("[ConfigurationRepositoryWeb]CONTOSO-PullSrv")
        }

        PartialConfiguration SharePointConfig
        {
            Description                     = "SharePointConfig"
            ConfigurationSource             = @("[ConfigurationRepositoryWeb]CONTOSO-PullSrv")
            DependsOn                       = '[PartialConfiguration]ServiceAccountConfig'
        }
}

Mengonfigurasi LCM untuk konfigurasi mode penarikan menggunakan ConfigurationID

[DSCLocalConfigurationManager()]
configuration PartialConfigDemoConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode                     = 'Pull'
            ConfigurationID                 = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins            = 30
            RebootNodeIfNeeded              = $true
        }
        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL                       = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'

        }

           PartialConfiguration ServiceAccountConfig
        {
            Description                     = 'Configuration for the Base OS'
            ConfigurationSource             = '[ConfigurationRepositoryWeb]CONTOSO-PullSrv'
            RefreshMode                     = 'Pull'
        }
           PartialConfiguration SharePointConfig
        {
            Description                     = 'Configuration for the Sharepoint Server'
            ConfigurationSource             = '[ConfigurationRepositoryWeb]CONTOSO-PullSrv'
            DependsOn                       = '[PartialConfiguration]ServiceAccountConfig'
            RefreshMode                     = 'Pull'
        }
    }
}
PartialConfigDemo

Anda dapat menarik konfigurasi parsial dari lebih dari satu server penarikan—Anda hanya perlu menentukan setiap server penarikan, lalu merujuk ke server penarikan yang sesuai di setiap blok PartialConfiguration .

Setelah membuat meta-configuration, Anda harus menjalankannya untuk membuat dokumen konfigurasi (file MOF), lalu memanggil Set-DscLocalConfigurationManager untuk mengonfigurasi LCM.

Menamai dan menempatkan dokumen konfigurasi di server penarikan (ConfigurationNames)

Dokumen konfigurasi parsial harus ditempatkan di folder yang ditentukan sebagai ConfigurationPath dalam web.config file untuk server penarikan (biasanya C:\Program Files\WindowsPowerShell\DscService\Configuration).

Penamaan dokumen konfigurasi di server penarikan di PowerShell 5.1

Jika Anda hanya menarik satu konfigurasi parsial dari server penarikan individual, dokumen konfigurasi dapat memiliki nama apa pun. Jika Anda menarik lebih dari satu konfigurasi parsial dari server penarikan, dokumen konfigurasi dapat diberi nama , <ConfigurationName>.mofdi mana ConfigurationName adalah nama konfigurasi parsial, atau <ConfigurationName>.<NodeName>.mof, di mana ConfigurationName adalah nama konfigurasi parsial, dan NodeName adalah nama simpul target. Ini memungkinkan Anda untuk menarik konfigurasi dari Azure Automation server penarikan DSC.

Penamaan dokumen konfigurasi pada server penarikan di PowerShell 5.0

Dokumen konfigurasi harus diberi nama sebagai berikut: ConfigurationName.mof, di mana ConfigurationName adalah nama konfigurasi parsial. Misalnya, dokumen konfigurasi harus diberi nama sebagai berikut:

ServiceAccountConfig.mof
ServiceAccountConfig.mof.checksum
SharePointConfig.mof
SharePointConfig.mof.checksum

Penamaan dan penempatan dokumen konfigurasi di server penarikan (ConfigurationID)

Dokumen konfigurasi parsial harus ditempatkan di folder yang ditentukan sebagai ConfigurationPath dalam web.config file untuk server penarikan (biasanya C:\Program Files\WindowsPowerShell\DscService\Configuration). Dokumen konfigurasi harus diberi nama sebagai berikut: <ConfigurationName>.<ConfigurationID>.mof, di mana ConfigurationName adalah nama konfigurasi parsial dan ConfigurationID adalah ID konfigurasi yang ditentukan dalam LCM pada simpul target. Misalnya, dokumen konfigurasi harus diberi nama sebagai berikut:

ServiceAccountConfig.1d545e3b-60c3-47a0-bf65-5afc05182fd0.mof
ServiceAccountConfig.1d545e3b-60c3-47a0-bf65-5afc05182fd0.mof.checksum
SharePointConfig.1d545e3b-60c3-47a0-bf65-5afc05182fd0.mof
SharePointConfig.1d545e3b-60c3-47a0-bf65-5afc05182fd0.mof.checksum

Menjalankan konfigurasi parsial dari server penarikan

Setelah LCM pada simpul target dikonfigurasi, dan dokumen konfigurasi telah dibuat dan dinamai dengan benar pada server penarikan, simpul target akan menarik konfigurasi parsial, menggabungkannya, dan menerapkan konfigurasi yang dihasilkan secara berkala seperti yang ditentukan oleh properti RefreshFrequencyMins LCM. Jika Anda ingin memaksa refresh, Anda dapat memanggil cmdlet Update-DscConfiguration , untuk menarik konfigurasi dan menerapkannya.

Konfigurasi parsial dalam mode pendorongan dan penarikan campuran

Anda juga dapat mencampur mode dorong dan tarik untuk konfigurasi parsial. Artinya, Anda dapat memiliki satu konfigurasi parsial yang ditarik dari server penarikan, sementara konfigurasi parsial lainnya didorong. Tentukan mode refresh untuk setiap konfigurasi parsial seperti yang dijelaskan di bagian sebelumnya. Misalnya, meta-configuration berikut menjelaskan contoh yang sama, dengan ServiceAccountConfig konfigurasi parsial dalam mode tarik dan SharePointConfig konfigurasi parsial dalam mode pendorongan.

Mode pendorongan dan penarikan campuran menggunakan ConfigurationNames

[DscLocalConfigurationManager()]
Configuration PartialConfigDemoConfigNames
{
        Settings
        {
            RefreshFrequencyMins            = 30;
            RefreshMode                     = "PULL";
            ConfigurationMode               = "ApplyAndAutocorrect";
            AllowModuleOverwrite            = $true;
            RebootNodeIfNeeded              = $true;
            ConfigurationModeFrequencyMins  = 60;
        }
        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL                       = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
            RegistrationKey                 = 5b41f4e6-5e6d-45f5-8102-f2227468ef38
            ConfigurationNames              = @("ServiceAccountConfig", "SharePointConfig")
        }

        PartialConfiguration ServiceAccountConfig
        {
            Description                     = "ServiceAccountConfig"
            ConfigurationSource             = @("[ConfigurationRepositoryWeb]CONTOSO-PullSrv")
            RefreshMode                     = 'Pull'
        }

        PartialConfiguration SharePointConfig
        {
            Description                     = "SharePointConfig"
            DependsOn                       = '[PartialConfiguration]ServiceAccountConfig'
            RefreshMode                     = 'Push'
        }

}

Mode pendorongan dan penarikan campuran menggunakan ConfigurationID

[DSCLocalConfigurationManager()]
configuration PartialConfigDemo
{
    Node localhost
    {
        Settings
        {
            RefreshMode             = 'Pull'
            ConfigurationID         = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins    = 30
            RebootNodeIfNeeded      = $true
        }
        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL               = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'

        }

           PartialConfiguration ServiceAccountConfig
        {
            Description             = 'Configuration for the Base OS'
            ConfigurationSource     = '[ConfigurationRepositoryWeb]CONTOSO-PullSrv'
            RefreshMode             = 'Pull'
        }
           PartialConfiguration SharePointConfig
        {
            Description             = 'Configuration for the Sharepoint Server'
            DependsOn               = '[PartialConfiguration]ServiceAccountConfig'
            RefreshMode             = 'Push'
        }
    }
}
PartialConfigDemo

Perhatikan bahwa RefreshMode yang ditentukan dalam blok Pengaturan adalah "Pull", tetapi RefreshMode untuk SharePointConfig konfigurasi parsial adalah "Push".

Beri nama dan temukan file MOF konfigurasi seperti yang dijelaskan di atas untuk mode refresh masing-masing. Panggil Publish-DSCConfiguration untuk menerbitkan SharePointConfig konfigurasi parsial, dan tunggu ServiceAccountConfig konfigurasi ditarik dari server penarikan, atau paksa refresh dengan memanggil Update-DscConfiguration.

Contoh Konfigurasi Parsial ServiceAccountConfig

Configuration ServiceAccountConfig
{
    Param (
        [Parameter(Mandatory,
                   HelpMessage="Domain credentials required to add domain\sharepoint_svc to the local Administrators group.")]
        [ValidateNotNullOrEmpty()]
        [pscredential]$Credential
    )

    Import-DscResource -ModuleName PSDesiredStateConfiguration

    Node localhost
    {
        Group LocalAdmins
        {
            GroupName           = 'Administrators'
            MembersToInclude    = 'domain\sharepoint_svc',
                                  'admins@example.domain'
            Ensure              = 'Present'
            Credential          = $Credential
        }

        WindowsFeature Telnet
        {
            Name                = 'Telnet-Server'
            Ensure              = 'Absent'
        }
    }
}
ServiceAccountConfig

Contoh Konfigurasi Parsial SharePointConfig

Configuration SharePointConfig
{
    Param (
        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [pscredential]$ProductKey
    )

    Import-DscResource -ModuleName xSharePoint

    Node localhost
    {
        xSPInstall SharePointDefault
        {
            Ensure      = 'Present'
            BinaryDir   = '\\FileServer\Installers\Sharepoint\'
            ProductKey  = $ProductKey
        }
    }
}
SharePointConfig

Lihat juga

Windows PowerShell Desired State Configuration Pull Servers

Windows Mengonfigurasi Configuration Manager Lokal