Share via


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 localhostolmalı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-DSCConfigurationyapı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>.mofburada 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 SharePointConfigRefreshMode'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

Windows Yerel Configuration Manager Yapılandırma