Sdílet prostřednictvím


PowerShell Desired State Configuration částečné konfigurace

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

V PowerShellu 5.0 umožňuje Desired State Configuration (DSC) doručovat konfigurace ve fragmentech a z více zdrojů. Místní Configuration Manager (LCM) na cílovém uzlu dává fragmenty dohromady, než je použije jako jednu konfiguraci. Tato funkce umožňuje sdílení kontroly konfigurace mezi týmy nebo jednotlivci. Pokud například na službě spolupracují dva nebo více týmů vývojářů, každý z nich může chtít vytvořit konfigurace pro správu své části služby. Každou z těchto konfigurací je možné načíst z různých serverů vyžádané replikace a je možné je přidat v různých fázích vývoje. Částečné konfigurace také umožňují různým jednotlivcům nebo týmům řídit různé aspekty konfigurace uzlů, aniž by bylo nutné koordinovat úpravy jednoho dokumentu konfigurace. 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 může každý tým vytvořit vlastní konfiguraci, aniž by to bylo zbytečně složité.

Částečné konfigurace můžete použít v režimu nabízení, vyžádání obsahu nebo jejich kombinaci.

Částečné konfigurace v režimu nabízení

Chcete-li použít částečné konfigurace v režimu nabízení, nakonfigurujte LCM na cílovém uzlu tak, aby přijímal částečné konfigurace. Každou částečnou konfiguraci je nutné odeslat 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 nabízeného režimu

Chcete-li nakonfigurovat LCM pro částečné konfigurace v režimu nabízení, vytvořte konfiguraci DSCLocalConfigurationManager s jedním blokem PartialConfiguration pro každou částečnou konfiguraci. Další informace o konfiguraci LCM najdete v tématu Konfigurace místní Configuration Manager systému Windows. Následující příklad ukazuje konfiguraci LCM, která očekává dvě částečné konfigurace – jednu, která nasazuje operační systém, a druhou, která nasazuje a konfiguruje 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") musí přesně odpovídat názvům konfigurací, které jsou nasdíleny do cílového uzlu.

Poznámka

Název každého bloku PartialConfiguration musí odpovídat skutečnému názvu konfigurace zadanému v konfiguračním skriptu, nikoli názvu souboru MOF, který by měl být buď název cílového uzlu, nebo localhost.

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

Potom zavoláte Publish-DSCConfiguration pro každou konfiguraci a předáte složky, které obsahují konfigurační dokumenty jako parametry path . 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ém uzlu.

Pokud jste například zkompilovali následující dokumenty MOF konfigurace na uzlu 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 na cílovém uzlu oprávnění správce.

Částečné konfigurace v režimu vyžádání obsahu

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

Konfigurace LCM pro konfigurace uzlů vyžádané replikace

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

Další informace o konfiguraci LCM pomocí ConfigurationNames najdete v tématu Nastavení klienta vyžádané replikace pomocí názvů konfigurace. Informace o konfiguraci LCM pomocí Id konfigurace najdete v tématu Nastavení klienta vyžádané replikace pomocí ID konfigurace.

Konfigurace LCM pro konfigurace režimu vyžádání 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 vyžádání 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čí definovat každý server vyžádané replikace a pak se podívat 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 dokument konfigurace (soubor MOF) a pak voláním set-DscLocalConfigurationManager nakonfigurujete 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 zadané jako ConfigurationPath v web.config souboru pro server vyžádané replikace (obvykle C:\Program Files\WindowsPowerShell\DscService\Configuration).

Názvové konfigurační dokumenty na serveru vyžádané replikace v PowerShellu 5.1

Pokud z jednotlivého serveru vyžádané replikace natahujete jenom jednu částečnou konfiguraci, může mít dokument o konfiguraci libovolný název. Pokud ze serveru vyžádané replikace odebíráte více než jednu částečnou konfiguraci, může mít dokument konfigurace název <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í vyžádat konfigurace ze serveru Azure Automation vyžádané replikace DSC.

Názvové konfigurační dokumenty 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 měly být konfigurační dokumenty 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 zadané 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 takto: <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 měly být konfigurační dokumenty 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 konfiguraci LCM na cílovém uzlu a vytvoření konfiguračních dokumentů a správný název na serveru vyžádané replikace, cílový uzel stáhne částečné konfigurace, zkombinuje je a použije výslednou konfiguraci v pravidelných intervalech podle vlastnosti RefreshFrequencyMins LCM. Pokud chcete vynutit aktualizaci, můžete volat rutinu Update-DscConfiguration , která načte konfigurace a použije je.

Částečné konfigurace ve smíšených režimech push a pull

Pro částečnou konfiguraci můžete také kombinovat režimy push a pull. To znamená, že můžete mít jednu částečnou konfiguraci, která se načítá ze serveru vyžádané replikace, zatímco jiná částečná konfigurace se odešle. Zadejte režim aktualizace pro každou částečnou konfiguraci, jak je popsáno v předchozích částech. Například následující meta konfigurace popisuje stejný příklad s částečnou ServiceAccountConfig konfigurací v režimu vyžádání obsahu a částečnou SharePointConfig konfigurací v režimu nabízení.

Smíšené režimy nabízených oznámení a vyžádání změn 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ízených oznámení a vyžádání změ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 částečnou SharePointConfig konfiguraci je "Push".

Pojmenujte a vyhledejte konfigurační soubory MOF, jak je popsáno výše pro příslušné režimy aktualizace. Zavolejte Publish-DSCConfiguration a publikujte SharePointConfig částečnou konfiguraci a buď počkejte ServiceAccountConfig na načtení konfigurace 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 služby 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 Desired State Configuration servery vyžádané replikace

Konfigurace místní Configuration Manager systému Windows