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-DSCConfiguration
umí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