Program PowerShell Desired State Configuration częściowych konfiguracji
Dotyczy: Windows PowerShell 5.0 i nowszych.
W programie PowerShell 5.0 Desired State Configuration (DSC) umożliwia dostarczanie konfiguracji w fragmentach i z wielu źródeł. Lokalna Configuration Manager (LCM) w węźle docelowym umieszcza fragmenty razem przed zastosowaniem ich jako pojedynczej konfiguracji. Ta funkcja umożliwia udostępnianie kontroli nad konfiguracją między zespołami lub osobami. Jeśli na przykład co najmniej dwa zespoły deweloperów współpracują z usługą, mogą oni chcieć utworzyć konfiguracje do zarządzania częścią usługi. Każdą z tych konfiguracji można ściągnąć z różnych serwerów ściągania i można je dodać na różnych etapach programowania. Konfiguracje częściowe umożliwiają również różnym osobom lub zespołom kontrolowanie różnych aspektów konfigurowania węzłów bez konieczności koordynowania edytowania pojedynczego dokumentu konfiguracji. Na przykład jeden zespół może być odpowiedzialny za wdrożenie maszyny wirtualnej i systemu operacyjnego, podczas gdy inny zespół może wdrożyć inne aplikacje i usługi na tej maszynie wirtualnej. W przypadku konfiguracji częściowych każdy zespół może utworzyć własną konfigurację, bez konieczności niepotrzebnego komplikowania.
Konfiguracje częściowe można używać w trybie wypychania, trybie ściągania lub kombinacji tych dwóch.
Częściowe konfiguracje w trybie wypychania
Aby użyć konfiguracji częściowych w trybie wypychania, należy skonfigurować narzędzie LCM w węźle docelowym w celu odbierania częściowych konfiguracji. Każda konfiguracja częściowa musi zostać wypchnięta do obiektu docelowego przy użyciu Publish-DSCConfiguration
polecenia cmdlet . Następnie węzeł docelowy łączy konfigurację częściową w jedną konfigurację i można zastosować konfigurację, wywołując polecenie cmdlet Start-DscConfiguration .
Konfigurowanie programu LCM na potrzeby konfiguracji częściowych w trybie wypychania
Aby skonfigurować narzędzie LCM dla częściowych konfiguracji w trybie wypychania, należy utworzyć konfigurację DSCLocalConfigurationManager z jednym blokiem PartialConfiguration dla każdej konfiguracji częściowej. Aby uzyskać więcej informacji na temat konfigurowania programu LCM, zobacz Konfigurowanie lokalnego Configuration Manager systemu Windows. W poniższym przykładzie pokazano konfigurację LCM, która oczekuje dwóch częściowych konfiguracji — jednej, która wdraża system operacyjny, oraz jednej, która wdraża i konfiguruje program 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
Tryb RefreshMode dla każdej konfiguracji częściowej jest ustawiony na wartość "Wypychanie". Nazwy bloków PartialConfiguration (w tym przypadku "ServiceAccountConfig" i "SharePointConfig") muszą być zgodne dokładnie z nazwami konfiguracji wypychanych do węzła docelowego.
Uwaga
Nazwa każdego bloku PartialConfiguration musi być zgodna z rzeczywistą nazwą konfiguracji, jak określono w skrypcie konfiguracji, a nie nazwą pliku MOF, który powinien być albo nazwą węzła docelowego lub localhost
.
Publikowanie i uruchamianie konfiguracji częściowych trybu wypychania
Następnie należy wywołać metodę Publish-DSCConfiguration dla każdej konfiguracji, przekazując foldery zawierające dokumenty konfiguracji jako parametry ścieżki .
Publish-DSCConfiguration
umieszcza pliki MOF konfiguracji w węzłach docelowych. Po opublikowaniu obu konfiguracji można wywołać metodę Start-DSCConfiguration –UseExisting
w węźle docelowym.
Jeśli na przykład skompilowane zostały następujące dokumenty MOF konfiguracji w węźle tworzenia:
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
Konfiguracje należy opublikować i uruchomić w następujący sposób:
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...
Uwaga
Użytkownik z uruchomionym poleceniem cmdlet Publish-DSCConfiguration musi mieć uprawnienia administratora w węźle docelowym.
Częściowe konfiguracje w trybie ściągania
Konfiguracje częściowe można ściągnąć z co najmniej jednego serwera ściągania (aby uzyskać więcej informacji na temat serwerów ściągania, zobacz Windows PowerShell Desired State Configuration serwery ściągania. W tym celu należy skonfigurować narzędzie LCM w węźle docelowym, aby ściągnąć częściowe konfiguracje, a następnie nazwać i prawidłowo zlokalizować dokumenty konfiguracyjne na serwerach ściągania.
Konfigurowanie narzędzia LCM dla konfiguracji węzła ściągania
Aby skonfigurować narzędzie LCM do ściągania częściowych konfiguracji z serwera ściągania, należy zdefiniować serwer ściągania w bloku ConfigurationRepositoryWeb (dla serwera ściągania HTTP) lub ConfigurationRepositoryShare (dla serwera ściągania SMB). Następnie należy utworzyć bloki PartialConfiguration odwołujące się do serwera ściągania przy użyciu właściwości ConfigurationSource . Należy również utworzyć blok Ustawienia , aby określić, że narzędzie LCM używa trybu ściągania, oraz określić wartości ConfigurationNames lub ConfigurationID używane przez serwer ściągania i węzeł docelowy do identyfikowania konfiguracji. Poniższa meta-konfiguracja definiuje serwer ściągania HTTP o nazwie CONTOSO-PullSrv i dwie częściowe konfiguracje, które używają tego serwera ściągania.
Aby uzyskać więcej informacji na temat konfigurowania programu LCM przy użyciu configurationNames, zobacz Konfigurowanie klienta ściągania przy użyciu nazw konfiguracji. Aby uzyskać informacje na temat konfigurowania programu LCM przy użyciu identyfikatora konfiguracji, zobacz Konfigurowanie klienta ściągania przy użyciu identyfikatora konfiguracji.
Konfigurowanie programu LCM dla konfiguracji trybu ściągania przy użyciu nazw konfiguracji
[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'
}
}
Konfigurowanie narzędzia LCM dla konfiguracji trybu ściągania przy użyciu identyfikatora 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
Konfiguracje częściowe można ściągnąć z więcej niż jednego serwera ściągania — wystarczy zdefiniować każdy serwer ściągania, a następnie odwołać się do odpowiedniego serwera ściągania w każdym bloku PartialConfiguration .
Po utworzeniu metakonfiguracji należy uruchomić go, aby utworzyć dokument konfiguracji (plik MOF), a następnie wywołać polecenie Set-DscLocalConfigurationManager , aby skonfigurować LCM.
Nazewnictwo i umieszczanie dokumentów konfiguracji na serwerze ściągania (ConfigurationNames)
Dokumenty konfiguracji częściowej należy umieścić w folderze określonym jako ConfigurationPath w web.config
pliku serwera ściągania (zazwyczaj C:\Program Files\WindowsPowerShell\DscService\Configuration
).
Nazewnictwo dokumentów konfiguracji na serwerze ściągania w programie PowerShell 5.1
Jeśli ściągasz tylko jedną konfigurację częściową z pojedynczego serwera ściągania, dokument konfiguracji może mieć dowolną nazwę. Jeśli ściągasz więcej niż jedną konfigurację częściową z serwera ściągania, dokument konfiguracji może mieć nazwę <ConfigurationName>.mof
, gdzie ConfigurationName jest nazwą konfiguracji częściowej lub <ConfigurationName>.<NodeName>.mof
, gdzie ConfigurationName jest nazwą konfiguracji częściowej, a NodeName jest nazwą węzła docelowego. Umożliwia to ściąganie konfiguracji z serwera ściągania Azure Automation DSC.
Nazewnictwo dokumentów konfiguracji na serwerze ściągania w programie PowerShell 5.0
Dokumenty konfiguracji muszą mieć następującą nazwę: ConfigurationName.mof
, gdzie ConfigurationName jest nazwą konfiguracji częściowej. W naszym przykładzie dokumenty konfiguracji powinny mieć następującą nazwę:
ServiceAccountConfig.mof
ServiceAccountConfig.mof.checksum
SharePointConfig.mof
SharePointConfig.mof.checksum
Nazewnictwo i umieszczanie dokumentów konfiguracji na serwerze ściągania (ConfigurationID)
Dokumenty konfiguracji częściowej należy umieścić w folderze określonym jako ConfigurationPath w web.config
pliku serwera ściągania (zazwyczaj C:\Program Files\WindowsPowerShell\DscService\Configuration
). Dokumenty konfiguracji muszą mieć następującą nazwę: <ConfigurationName>.<ConfigurationID>.mof
, gdzie ConfigurationName jest nazwą częściowej konfiguracji, a ConfigurationID jest identyfikatorem konfiguracji zdefiniowanym w narzędziu LCM w węźle docelowym. W naszym przykładzie dokumenty konfiguracji powinny mieć następującą nazwę:
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
Uruchamianie częściowych konfiguracji z serwera ściągania
Po skonfigurowaniu narzędzia LCM w węźle docelowym, a dokumenty konfiguracji zostały utworzone i prawidłowo nazwane na serwerze ściągania, węzeł docelowy ściągnie częściowe konfiguracje, połączy je i zastosuje wynikową konfigurację w regularnych odstępach czasu zgodnie z właściwością RefreshFrequencyMins właściwości LCM. Jeśli chcesz wymusić odświeżenie, możesz wywołać polecenie cmdlet Update-DscConfiguration , aby ściągnąć konfiguracje i zastosować je.
Konfiguracje częściowe w mieszanych trybach wypychania i ściągania
Można również mieszać tryby wypychania i ściągania dla konfiguracji częściowych. Oznacza to, że można mieć jedną częściową konfigurację, która jest ściągana z serwera ściągania, podczas gdy inna konfiguracja częściowa jest wypychana. Określ tryb odświeżania dla każdej konfiguracji częściowej zgodnie z opisem w poprzednich sekcjach. Na przykład poniższa meta_konfiguracja opisuje ten sam przykład z częściową ServiceAccountConfig
konfiguracją w trybie ściągania i SharePointConfig
częściową konfiguracją w trybie wypychania.
Mieszane tryby wypychania i ściągania przy użyciu 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'
}
}
Mieszane tryby wypychania i ściągania przy użyciu identyfikatora 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
Należy pamiętać, że tryb RefreshMode określony w bloku Ustawienia to "Pull", ale tryb RefreshMode dla konfiguracji częściowej SharePointConfig
to "Push".
Nazwij i znajdź pliki MOF konfiguracji zgodnie z powyższym opisem dla odpowiednich trybów odświeżania.
Wywołaj metodę Publish-DSCConfiguration
publikowania SharePointConfig
konfiguracji częściowej i zaczekaj ServiceAccountConfig
na ściągnięcie konfiguracji z serwera ściągania lub wymuś odświeżenie przez wywołanie polecenia Update-DscConfiguration.
Przykład konfiguracji częściowej 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
Przykład konfiguracji częściowej programu 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
Zobacz też
serwery ściągania Windows PowerShell Desired State Configuration
Konfigurowanie Configuration Manager lokalnego systemu Windows