Sdílet prostřednictvím


Částečné konfigurace konfigurace požadovaného stavu PowerShellu

Platí pro: Windows PowerShell 5.0 a novější.

V PowerShellu 5.0 umožňuje konfigurace požadovaného stavu (DSC) doručovat konfigurace ve fragmentech a z více zdrojů. Místní nástroj Configuration Manager (LCM) v cílovém uzlu seskupí fragmenty před jejich použitím jako jednu konfiguraci. Tato funkce umožňuje sdílení kontroly nad konfigurací mezi týmy nebo jednotlivci. Pokud například na službě spolupracují dva nebo více týmů vývojářů, může každý z nich chtít vytvořit konfigurace pro správu své části služby. Každá z těchto konfigurací může být načtena z různých serverů vyžádané replikace a může být přidána v různých fázích vývoje. Částečné konfigurace také umožňují různým jednotlivcům nebo týmům ovládat různé aspekty konfigurace uzlů, aniž by bylo nutné koordinovat úpravy jediného konfiguračního dokumentu. Jeden tým může být například zodpovědný za nasazení virtuálního počítače a operačního systému, zatímco jiný tým může na tomto virtuálním počítači nasadit jiné aplikace a služby. S částečnými konfiguracemi si každý tým může vytvořit svou vlastní konfiguraci, aniž by kterákoli z nich byla zbytečně složitá.

Částečné konfigurace můžete použít v režimu push, pull nebo kombinaci obou.

Částečné konfigurace v režimu push

Chcete-li použít částečné konfigurace v režimu nabízených oznámení, nakonfigurujte LCM na cílovém uzlu tak, aby přijímal částečné konfigurace. Každá částečná konfigurace musí být odeslána do cíle pomocí rutiny Publish-DSCConfiguration . Cílový uzel pak zkombinuje částečnou konfiguraci do jedné konfigurace a konfiguraci můžete použít voláním rutiny Start-DscConfiguration .

Konfigurace LCM pro částečné konfigurace v režimu push-mode

Chcete-li nakonfigurovat LCM pro částečné konfigurace v režimu nabízených oznámení, vytvořte konfiguraci DSCLocalConfigurationManager s jedním blokem PartialConfiguration pro každou částečnou konfiguraci. Další informace o konfiguraci LCM naleznete v části Konfigurace místního správce konfigurace systému Windows. Následující příklad ukazuje konfiguraci LCM, která očekává dvě částečné konfigurace – jednu, která nasadí operační systém, a jednu, která nasadí a nakonfiguruje 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 pro každou částečnou konfiguraci je nastaven na "Push". Názvy bloků PartialConfiguration (v tomto případě "ServiceAccountConfig" a "SharePointConfig") se musí přesně shodovat s názvy konfigurací, které jsou odeslány do cílového uzlu.

Poznámka:

Název každého bloku PartialConfiguration se musí shodovat se skutečným názvem konfigurace tak, jak je specifikován v konfiguračním skriptu, nikoli s názvem souboru MOF, který by měl být buď názvem cílového uzlu, nebo localhost.

Publikování a spouštění částečných konfigurací v režimu nabízená komunikace

Pak zavoláte Publish-DSCConfiguration pro každou konfiguraci a předáte složky, které obsahují konfigurační dokumenty, jako parametry cesty . Publish-DSCConfigurationumístí konfigurační soubory MOF do cílových uzlů. Po publikování obou konfigurací můžete volat Start-DSCConfiguration –UseExisting na cílový uzel.

Pokud jste například zkompilovali následující konfigurační dokumenty MOF v uzlu pro vytváření:

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

Konfigurace byste publikovali a spustili následujícím způsobem:

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...

Poznámka:

Uživatel, který spouští rutinu Publish-DSCConfiguration , musí mít oprávnění správce v cílovém uzlu.

Částečné konfigurace v režimu vytažení

Částečné konfigurace je možné načíst z jednoho nebo více serverů vyžádané replikace (další informace o serverech vyžádané konfigurace Windows PowerShellu najdete v tématu Windows PowerShell Desired State Configuration Pull Servery. Chcete-li to provést, musíte nakonfigurovat LCM na cílovém uzlu tak, aby vyžádal částečné konfigurace, a správně pojmenovat a umístit konfigurační dokumenty na serverech pro vyžádání.

Konfigurace LCM pro konfigurace uzlů pro vyžádání

Chcete-li nakonfigurovat LCM tak, aby načítal částečné konfigurace ze serveru vyžádané replikace, definujete server vyžádané replikace v bloku ConfigurationRepositoryWeb (pro server vyžádané replikace) nebo ConfigurationRepositoryShare (pro server vyžádané replikace SMB). Poté vytvoříte bloky PartialConfiguration , které odkazují na server vyžádané replikace pomocí vlastnosti ConfigurationSource . Také je nutné vytvořit blok Nastavení, který určí, že LCM používá režim vyžádané replikace, a určíte ConfigurationNames nebo ConfigurationID, které server vyžádané replikace a cílový uzel používají k identifikaci konfigurací. Následující metakonfigurace definuje server vyžádané replikace HTTP s názvem CONTOSO-PullSrv a dvě částečné konfigurace, které tento server vyžádané replikace používají.

Další informace o konfiguraci LCM pomocí ConfigurationNames naleznete v části Nastavení klienta pro vyžádání replikované replikace pomocí názvů konfigurací. Informace o konfiguraci LCM pomocí ConfigurationID naleznete v části Nastavení klienta pro vyžádání pomocí ID konfigurace.

Konfigurace LCM pro konfigurace v režimu vytažení pomocí konfiguračních názvů

[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'
        }
}

Konfigurace LCM pro konfigurace režimu vytažení pomocí 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

Částečné konfigurace můžete vyžádat z více než jednoho serveru vyžádané replikace – stačilo by definovat každý server vyžádané replikace a poté odkazovat na příslušný server vyžádané replikace v každém bloku PartialConfiguration .

Po vytvoření metakonfigurace ji musíte spustit, abyste vytvořili konfigurační dokument (soubor MOF), a pak zavolat Set-DscLocalConfigurationManager ke konfiguraci LCM.

Pojmenování a umístění konfiguračních dokumentů na server vyžádané replikace (ConfigurationNames)

Částečné konfigurační dokumenty musí být umístěny ve složce určené jako ConfigurationPath v web.config souboru pro server vyžádané replikace (obvykle C:\Program Files\WindowsPowerShell\DscService\Configuration).

Pojmenování konfiguračních dokumentů na serveru vyžádané replikace v PowerShellu 5.1

Pokud stahujete pouze jednu částečnou konfiguraci z jednotlivého serveru vyžádané replikace, může mít konfigurační dokument libovolný název. Pokud načítáte více než jednu částečnou konfiguraci ze serveru vyžádané replikace, může být konfigurační dokument pojmenován buď <ConfigurationName>.mof, kde ConfigurationName je název částečné konfigurace, nebo <ConfigurationName>.<NodeName>.mof, kde ConfigurationName je název částečné konfigurace a NodeName je název cílového uzlu. To vám umožní načítat konfigurace ze serveru vyžádané replikace Azure Automation DSC.

Pojmenování konfiguračních dokumentů na serveru vyžádané replikace v PowerShellu 5.0

Konfigurační dokumenty musí být pojmenovány takto: ConfigurationName.mof, kde ConfigurationName je název částečné konfigurace. V našem příkladu by konfigurační dokumenty měly být pojmenovány takto:

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

Pojmenování a umístění konfiguračních dokumentů na server vyžádané replikace (ConfigurationID)

Částečné konfigurační dokumenty musí být umístěny ve složce určené jako ConfigurationPath v web.config souboru pro server vyžádané replikace (obvykle C:\Program Files\WindowsPowerShell\DscService\Configuration). Konfigurační dokumenty musí být pojmenovány následovně: <ConfigurationName>.<ConfigurationID>.mof, kde ConfigurationName je název částečné konfigurace a ConfigurationID je ID konfigurace definované v LCM na cílovém uzlu. V našem příkladu by konfigurační dokumenty měly být pojmenovány takto:

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

Spuštění částečných konfigurací ze serveru vyžádané replikace

Po nakonfigurování LCM na cílovém uzlu a vytvoření konfiguračních dokumentů a jejich správném pojmenování na serveru vyžádané replikace cílový uzel vyžádá částečné konfigurace, zkombinuje je a použije výslednou konfiguraci v pravidelných intervalech, jak je určeno vlastností RefreshFrequencyMins LCM. Pokud chcete vynutit aktualizaci, můžete zavolat rutinu Update-DscConfiguration , která konfigurace vyžádá a použije.

Částečné konfigurace ve smíšeném režimu push a pull

Můžete také kombinovat režimy push a pull pro částečné konfigurace. To znamená, že můžete mít jednu částečnou konfiguraci, která se stáhne ze serveru vyžádané replikace, zatímco se nasdílí jiná částečná konfigurace. Zadejte režim aktualizace pro každou částečnou konfiguraci, jak je popsáno v předchozích částech. Například následující metakonfigurace popisuje stejný příklad s částečnou ServiceAccountConfig konfigurací v režimu stahování a částečnou SharePointConfig konfigurací v režimu odesílání.

Smíšené režimy push a pull pomocí 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'
        }

}

Smíšené režimy nabíjení a stahování pomocí 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

Všimněte si, že RefreshMode zadaný v bloku Nastavení je "Pull", ale RefreshMode pro SharePointConfig částečnou konfiguraci je "Push".

Pojmenujte a vyhledejte konfigurační soubory MOF podle výše uvedeného popisu pro příslušné režimy aktualizace. Voláním Publish-DSCConfiguration publikujte částečnou SharePointConfig konfiguraci a buď počkejte, až ServiceAccountConfig se konfigurace načte ze serveru vyžádané replikace, nebo vynuťte aktualizaci voláním Update-DscConfiguration.

Příklad částečné konfigurace 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

Příklad částečné konfigurace 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

Viz také

Windows PowerShell servery pro vyžádání změn konfigurace požadovaného stavu

Windows Konfigurace místního Configuration Manager