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-DSCConfiguration
menempatkan 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>.mof
di 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