Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: Windows PowerShell 5.0 e versioni successive.
In PowerShell 5.0, la configurazione dello stato desiderato (DSC) consente di recapitare le configurazioni in frammenti e da più origini. Gestione configurazione locale (LCM) nel nodo di destinazione raggruppa i frammenti prima di applicarli come una singola configurazione. Questa funzionalità consente di condividere il controllo della configurazione tra team o singoli utenti. Ad esempio, se due o più team di sviluppatori collaborano a un servizio, ognuno di essi potrebbe voler creare configurazioni per gestire la propria parte del servizio. Ognuna di queste configurazioni può essere estratta da server di pull diversi e può essere aggiunta in diverse fasi di sviluppo. Le configurazioni parziali consentono inoltre a diversi individui o team di controllare diversi aspetti della configurazione dei nodi senza dover coordinare la modifica di un singolo documento di configurazione. Ad esempio, un team potrebbe essere responsabile della distribuzione di una macchina virtuale e di un sistema operativo, mentre un altro team potrebbe distribuire altre applicazioni e servizi in tale macchina virtuale. Con le configurazioni parziali, ogni team può creare la propria configurazione, senza che nessuna delle due sia inutilmente complicata.
È possibile utilizzare configurazioni parziali in modalità push, pull o una combinazione delle due.
Configurazioni parziali in modalità push
Per utilizzare le configurazioni parziali in modalità push, configurare LCM sul nodo di destinazione per ricevere le configurazioni parziali. Ogni configurazione parziale deve essere inviata alla destinazione usando il Publish-DSCConfiguration cmdlet. Il nodo di destinazione combina quindi la configurazione parziale in un'unica configurazione ed è possibile applicare la configurazione chiamando il cmdlet Start-DscConfiguration .
Configurazione di LCM per le configurazioni parziali in modalità push
Per configurare Gestione configurazione locale per le configurazioni parziali in modalità push, creare una configurazione DSCLocalConfigurationManager con un blocco PartialConfiguration per ogni configurazione parziale. Per ulteriori informazioni sulla configurazione di Gestione configurazione locale, vedere Configurazione di Gestione configurazione locale in Windows. Nell'esempio seguente viene illustrata una configurazione di Gestione configurazione locale che prevede due configurazioni parziali: una che distribuisce il sistema operativo e una che distribuisce e configura 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
La modalità di aggiornamento per ogni configurazione parziale è impostata su "Push". I nomi dei blocchi PartialConfiguration (in questo caso, "ServiceAccountConfig" e "SharePointConfig") devono corrispondere esattamente ai nomi delle configurazioni di cui viene eseguito il push nel nodo di destinazione.
Annotazioni
Il nome di ogni blocco PartialConfiguration deve corrispondere al nome effettivo della configurazione specificato nello script di configurazione, non al nome del file MOF, che deve essere il nome del nodo di destinazione o localhost.
Pubblicazione e avvio di configurazioni parziali in modalità push
Si chiama quindi Publish-DSCConfiguration per ogni configurazione, passando le cartelle che contengono i documenti di configurazione come parametri Path .
Publish-DSCConfigurationinserisce i file MOF di configurazione nei nodi di destinazione. Dopo aver pubblicato entrambe le configurazioni, è possibile chiamare Start-DSCConfiguration –UseExisting il nodo di destinazione.
Ad esempio, se sono stati compilati i seguenti documenti MOF di configurazione nel nodo di creazione:
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
Le configurazioni vengono pubblicate ed eseguite nel modo seguente:
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...
Annotazioni
L'utente che esegue il cmdlet Publish-DSCConfiguration deve disporre dei privilegi di amministratore per il nodo di destinazione.
Configurazioni parziali in modalità pull
È possibile eseguire il pull delle configurazioni parziali da uno o più server di pull (per ulteriori informazioni sui server di pull, vedere Server di pull della configurazione dello stato desiderato di Windows PowerShell). A tale scopo, è necessario configurare la Gestione configurazione locale sul nodo di destinazione per estrarre le configurazioni parziali e denominare e individuare correttamente i documenti di configurazione sui server di estrazione.
Configurazione di Gestione configurazione locale per le configurazioni dei nodi pull
Per configurare Gestione configurazione locale per il pull di configurazioni parziali da un server di pull, è necessario definire il server di pull in un blocco ConfigurationRepositoryWeb (per un server di pull HTTP) o ConfigurationRepositoryShare (per un server di pull SMB). Si creano quindi blocchi PartialConfiguration che fanno riferimento al server di pull utilizzando la proprietà ConfigurationSource . È inoltre necessario creare un blocco Settings per specificare che LCM utilizza la modalità pull e per specificare ConfigurationNames o ConfigurationID utilizzati dal server di pull e dal nodo di destinazione per identificare le configurazioni. La seguente meta-configurazione definisce un server di pull HTTP denominato CONTOSO-PullSrv e due configurazioni parziali che utilizzano tale server di pull.
Per ulteriori informazioni sulla configurazione di Gestione configurazione locale tramite ConfigurationNames, vedere Configurazione di un client di pull tramite i nomi di configurazione. Per informazioni sulla configurazione di Gestione configurazione locale tramite ConfigurationID, vedere Configurazione di un client di pull tramite l'ID di configurazione.
Configurazione di LCM per le configurazioni in modalità pull utilizzando i nomi di configurazione
[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'
}
}
Configurazione di LCM per le configurazioni in modalità pull utilizzando 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
È possibile eseguire il pull di configurazioni parziali da più server di pull: è sufficiente definire ogni server di pull e quindi fare riferimento al server di pull appropriato in ogni blocco PartialConfiguration .
Dopo aver creato la metaconfigurazione, è necessario eseguirla per creare un documento di configurazione (un file MOF) e quindi chiamare Set-DscLocalConfigurationManager per configurare LCM.
Denominazione e posizionamento dei documenti di configurazione nel server di pull (ConfigurationNames)
I documenti di configurazione parziali devono essere inseriti nella cartella specificata come ConfigurationPath nel web.config file per il server di pull (in genere C:\Program Files\WindowsPowerShell\DscService\Configuration).
Denominazione dei documenti di configurazione nel server di pull in PowerShell 5.1
Se si esegue il pull di una sola configurazione parziale da un singolo server di pull, il documento di configurazione può avere qualsiasi nome. Se si esegue il pull di più configurazioni parziali da un server di pull, il documento di configurazione può essere denominato <ConfigurationName>.mof, dove ConfigurationName è il nome della configurazione parziale oppure <ConfigurationName>.<NodeName>.mof, dove ConfigurationName è il nome della configurazione parziale e NodeName è il nome del nodo di destinazione. In questo modo è possibile eseguire il pull delle configurazioni dal server di pull DSC di Automazione di Azure.
Denominazione dei documenti di configurazione nel server di pull in PowerShell 5.0
I documenti di configurazione devono essere denominati come segue: ConfigurationName.mof, dove ConfigurationName è il nome della configurazione parziale. Per il nostro esempio, i documenti di configurazione dovrebbero essere denominati come segue:
ServiceAccountConfig.mof
ServiceAccountConfig.mof.checksum
SharePointConfig.mof
SharePointConfig.mof.checksum
Denominazione e posizionamento dei documenti di configurazione nel server di pull (ConfigurationID)
I documenti di configurazione parziali devono essere inseriti nella cartella specificata come ConfigurationPath nel web.config file per il server di pull (in genere C:\Program Files\WindowsPowerShell\DscService\Configuration). I documenti di configurazione devono essere denominati come segue: <ConfigurationName>.<ConfigurationID>.mof, dove ConfigurationName è il nome della configurazione parziale e ConfigurationID è l'ID di configurazione definito in LCM sul nodo di destinazione. Per il nostro esempio, i documenti di configurazione dovrebbero essere denominati come segue:
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
Esecuzione di configurazioni parziali da un server di pull
Dopo che la Gestione configurazione locale nel nodo di destinazione è stata configurata e i documenti di configurazione sono stati creati e denominati correttamente nel server di pull, il nodo di destinazione estrarrà le configurazioni parziali, le combinerà e applicherà la configurazione risultante a intervalli regolari, come specificato dalla proprietà RefreshFrequencyMins di Gestione configurazione locale. Se si desidera forzare un aggiornamento, è possibile chiamare il cmdlet Update-DscConfiguration per eseguire il pull delle configurazioni e applicarle.
Configurazioni parziali in modalità mista push e pull
È inoltre possibile combinare le modalità push e pull per configurazioni parziali. In altre parole, è possibile che venga eseguita l'estrazione di una configurazione parziale da un server di pull, mentre viene eseguito il push di un'altra configurazione parziale. Specificare la modalità di aggiornamento per ogni configurazione parziale come descritto nelle sezioni precedenti. Ad esempio, la seguente meta-configurazione descrive lo stesso esempio, con la ServiceAccountConfig configurazione parziale in modalità pull e la SharePointConfig configurazione parziale in modalità push.
Modalità push e pull miste con 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'
}
}
Modalità push e pull miste con 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
Si noti che la modalità di aggiornamento specificata nel blocco Impostazioni è "Pull", ma la modalità di aggiornamento per la SharePointConfig configurazione parziale è "Push".
Denominare e individuare i file MOF di configurazione come descritto in precedenza per le rispettive modalità di aggiornamento.
Chiamare Publish-DSCConfiguration per pubblicare la SharePointConfig configurazione parziale e attendere che la ServiceAccountConfig configurazione venga estratta dal server di pull oppure forzare un aggiornamento chiamando Update-DscConfiguration.
Esempio di configurazione parziale di 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
Esempio di configurazione parziale di 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
Vedere anche
Server di pull della configurazione dello stato desiderato di Windows PowerShell