PowerShell Desired State Configuration kısmi yapılandırmalar
Şunun için geçerlidir: Windows PowerShell 5.0 ve üzeri.
PowerShell 5.0'da Desired State Configuration (DSC), yapılandırmaların parçalar halinde ve birden çok kaynaktan teslim edilmesini sağlar. Hedef düğümdeki Yerel Configuration Manager (LCM), parçaları tek bir yapılandırma olarak uygulamadan önce bir araya getirir. Bu özellik, ekipler veya kişiler arasında yapılandırma denetiminin paylaşılmasına olanak tanır. Örneğin, iki veya daha fazla geliştirici ekibi bir hizmet üzerinde işbirliği yapıyorlarsa, her biri hizmetin kendi bölümünü yönetmek için yapılandırmalar oluşturmak isteyebilir. Bu yapılandırmaların her biri farklı çekme sunucularından çekilebilir ve geliştirmenin farklı aşamalarına eklenebilir. Kısmi yapılandırmalar, farklı kişilerin veya ekiplerin tek bir yapılandırma belgesini düzenlemeye gerek kalmadan düğümleri yapılandırmanın farklı yönlerini denetlemesine de olanak tanır. Örneğin, bir ekip vm ve işletim sistemi dağıtmakla sorumlu olabilirken, başka bir ekip bu VM'ye başka uygulama ve hizmetler dağıtabilir. Kısmi yapılandırmalarla, her takım gereksiz şekilde karmaşık olmadan kendi yapılandırmasını oluşturabilir.
Kısmi yapılandırmaları gönderme modunda, çekme modunda veya ikisinin birleşiminde kullanabilirsiniz.
Gönderme modunda kısmi yapılandırmalar
Gönderim modunda kısmi yapılandırmaları kullanmak için hedef düğümdeki LCM'yi kısmi yapılandırmaları alacak şekilde yapılandırabilirsiniz. Her kısmi yapılandırma, cmdlet'i kullanılarak Publish-DSCConfiguration
hedefe gönderilmelidir. Hedef düğüm daha sonra kısmi yapılandırmayı tek bir yapılandırmada birleştirir ve Start-DscConfiguration cmdlet'ini çağırarak yapılandırmayı uygulayabilirsiniz.
LCM'yi gönderim modu kısmi yapılandırmalar için yapılandırma
LCM'yi gönderme modunda kısmi yapılandırmalar için yapılandırmak için, her kısmi yapılandırma için bir PartialConfiguration bloğu ile bir DSCLocalConfigurationManager yapılandırması oluşturursunuz. LCM'yi yapılandırma hakkında daha fazla bilgi için bkz. Windows Yerel Configuration Manager Yapılandırma. Aşağıdaki örnekte biri işletim sistemini dağıtan, diğeri de SharePoint'i dağıtan ve yapılandıran olmak üzere iki kısmi yapılandırma bekleyen bir LCM yapılandırması gösterilmektedir.
[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
Her kısmi yapılandırma için RefreshMode "Gönder" olarak ayarlanır. PartialConfiguration bloklarının adları (bu durumda, "ServiceAccountConfig" ve "SharePointConfig") hedef düğüme gönderilen yapılandırmaların adlarıyla tam olarak eşleşmelidir.
Not
Her PartialConfiguration bloğunun adı, MOF dosyasının adıyla değil, yapılandırma betiğinde belirtildiği gibi yapılandırmanın gerçek adıyla eşleşmelidir; hedef düğümün adı veya localhost
olmalıdır.
Gönderme modu kısmi yapılandırmalarını yayımlama ve başlatma
Ardından her yapılandırma için Publish-DSCConfiguration çağrısı yaparak yapılandırma belgelerini içeren klasörleri Yol parametreleri olarak geçirirsiniz. Publish-DSCConfiguration
yapılandırma MOF dosyalarını hedef düğümlere yerleştirir. Her iki yapılandırmayı da yayımladıktan sonra hedef düğümde çağrısı Start-DSCConfiguration –UseExisting
yapabilirsiniz.
Örneğin, yazma düğümünde aşağıdaki yapılandırma MOF belgelerini derlediyseniz:
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
Yapılandırmaları aşağıdaki gibi yayımlayabilir ve çalıştırabilirsiniz:
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...
Not
Publish-DSCConfiguration cmdlet'ini çalıştıran kullanıcının hedef düğümde yönetici ayrıcalıkları olmalıdır.
Çekme modunda kısmi yapılandırmalar
Kısmi yapılandırmalar bir veya daha fazla çekme sunucusu tarafından çekilebilir (çekme sunucuları hakkında daha fazla bilgi için bkz. Çekme Sunucuları Windows PowerShell Desired State Configuration. Bunu yapmak için hedef düğümdeki LCM'yi kısmi yapılandırmaları çekecek şekilde yapılandırmanız ve yapılandırma belgelerini çekme sunucularında düzgün bir şekilde adlandırmanız ve bulmanız gerekir.
LCM'yi çekme düğümü yapılandırmaları için yapılandırma
LCM'yi bir çekme sunucusundan kısmi yapılandırmaları çekecek şekilde yapılandırmak için, çekme sunucusunu ConfigurationRepositoryWeb (HTTP çekme sunucusu için) veya ConfigurationRepositoryShare (SMB çekme sunucusu için) bloğunda tanımlarsınız. Ardından ConfigurationSource özelliğini kullanarak çekme sunucusuna başvuran PartialConfiguration blokları oluşturursunuz. Ayrıca LCM'nin çekme modunu kullandığını belirtmek ve çekme sunucusunun ve hedef düğümün yapılandırmaları tanımlamak için kullandığı ConfigurationNames veya ConfigurationID değerlerini belirtmek için bir Ayarlar bloğu oluşturmanız gerekir. Aşağıdaki meta yapılandırma, CONTOSO-PullSrv adlı bir HTTP çekme sunucusunu ve bu çekme sunucusunu kullanan iki kısmi yapılandırmayı tanımlar.
ConfigurationNames kullanarak LCM'yi yapılandırma hakkında daha fazla bilgi için bkz. Yapılandırma adlarını kullanarak çekme istemcisi ayarlama. ConfigurationID kullanarak LCM'yi yapılandırma hakkında bilgi için bkz. Yapılandırma kimliği kullanarak çekme istemcisi ayarlama.
Yapılandırma adlarını kullanarak LCM'yi çekme modu yapılandırmaları için yapılandırma
[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'
}
}
ConfigurationID kullanarak LCM'yi çekme modu yapılandırmaları için yapılandırma
[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
Birden fazla çekme sunucusundan kısmi yapılandırmaları çekebilirsiniz; yalnızca her çekme sunucusunu tanımlamanız ve ardından her PartialConfiguration bloğunda uygun çekme sunucusuna başvurmanız gerekir.
Meta yapılandırmayı oluşturduktan sonra, bunu çalıştırarak bir yapılandırma belgesi (MOF dosyası) oluşturmanız ve ardından LCM'yi yapılandırmak için Set-DscLocalConfigurationManager'ı çağırmanız gerekir.
Yapılandırma belgelerini çekme sunucusuna adlandırma ve yerleştirme (ConfigurationNames)
Kısmi yapılandırma belgeleri, çekme sunucusunun dosyasında ConfigurationPathweb.config
olarak belirtilen klasöre yerleştirilmelidir (genellikle C:\Program Files\WindowsPowerShell\DscService\Configuration
).
PowerShell 5.1'de çekme sunucusundaki yapılandırma belgelerini adlandırma
Tek bir çekme sunucusundan yalnızca bir kısmi yapılandırma çekiyorsanız, yapılandırma belgesinin herhangi bir adı olabilir. Çekme sunucusundan birden fazla kısmi yapılandırma çekiyorsanız, yapılandırma belgesi olarak adlandırılabilir <ConfigurationName>.mof
; burada ConfigurationName kısmi yapılandırmanın adıdır veya <ConfigurationName>.<NodeName>.mof
burada ConfigurationName kısmi yapılandırmanın adıdır ve NodeName hedef düğümün adıdır. Bu, Azure Otomasyonu DSC çekme sunucusundan yapılandırmaları çekmenizi sağlar.
PowerShell 5.0'da çekme sunucusundaki yapılandırma belgelerini adlandırma
Yapılandırma belgeleri şu şekilde adlandırılmalıdır: ConfigurationName.mof
, burada ConfigurationName kısmi yapılandırmanın adıdır. Örneğimizde, yapılandırma belgeleri aşağıdaki gibi adlandırılmalıdır:
ServiceAccountConfig.mof
ServiceAccountConfig.mof.checksum
SharePointConfig.mof
SharePointConfig.mof.checksum
Yapılandırma belgelerini çekme sunucusuna adlandırma ve yerleştirme (ConfigurationID)
Kısmi yapılandırma belgeleri, çekme sunucusunun dosyasında ConfigurationPathweb.config
olarak belirtilen klasöre yerleştirilmelidir (genellikle C:\Program Files\WindowsPowerShell\DscService\Configuration
). Yapılandırma belgeleri şu şekilde adlandırılmalıdır: <ConfigurationName>.<ConfigurationID>.mof
, burada ConfigurationName kısmi yapılandırmanın adı, ConfigurationID ise hedef düğümdeki LCM'de tanımlanan yapılandırma kimliğidir. Örneğimizde, yapılandırma belgeleri aşağıdaki gibi adlandırılmalıdır:
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
Çekme sunucusundan kısmi yapılandırmalar çalıştırma
Hedef düğümdeki LCM yapılandırıldıktan ve yapılandırma belgeleri oluşturulduktan ve çekme sunucusunda düzgün şekilde adlandırıldıktan sonra, hedef düğüm kısmi yapılandırmaları çeker, bunları birleştirir ve LCM'nin RefreshFrequencyMins özelliği tarafından belirtilen düzenli aralıklarla sonuçta elde edilen yapılandırmayı uygular. Yenilemeye zorlamak istiyorsanız, yapılandırmaları çekmek ve uygulamak için Update-DscConfiguration cmdlet'ini çağırabilirsiniz.
Karma gönderme ve çekme modlarında kısmi yapılandırmalar
Kısmi yapılandırmalar için gönderim ve çekme modlarını da karıştırabilirsiniz. Diğer bir ifadeyle, çekme sunucusundan çekilen kısmi bir yapılandırmanız olabilirken, başka bir kısmi yapılandırma gönderiliyor olabilir. Önceki bölümlerde açıklandığı gibi her kısmi yapılandırma için yenileme modunu belirtin. Örneğin, aşağıdaki meta yapılandırma, çekme modunda kısmi yapılandırma ve SharePointConfig
gönderme modunda kısmi yapılandırma ile ServiceAccountConfig
aynı örneği açıklar.
ConfigurationNames kullanarak karma gönderme ve çekme modları
[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'
}
}
ConfigurationID kullanarak karma gönderme ve çekme modları
[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
Ayarlar bloğunda belirtilen RefreshMode değerinin "Çekme" olduğunu, ancak kısmi yapılandırma için SharePointConfig
RefreshMode'un "Gönderme" olduğunu unutmayın.
İlgili yenileme modları için yukarıda açıklandığı gibi yapılandırma MOF dosyalarını adlandırın ve bulun.
Kısmi yapılandırmayı yayımlamak için çağrısında Publish-DSCConfiguration
bulunup SharePointConfig
yapılandırmanın ServiceAccountConfig
çekme sunucusundan çekilmesini bekleyin veya Update-DscConfiguration çağrısı yaparak yenilemeye zorlayın.
Örnek ServiceAccountConfig Kısmi Yapılandırma
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
Örnek SharePointConfig Kısmi Yapılandırma
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
Ayrıca Bkz.
Çekme Sunucularını Windows PowerShell Desired State Configuration
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin