Usare DSC per configurare Windows Server
Uno degli altri amministratori dei server di Contoso è esperto nell'uso di Windows PowerShell e suggerisce di documentarsi sull'uso di PowerShell DSC per configurare i computer Windows Server appena distribuiti. Si apprende che PowerShell DSC consente di implementare la gestione della configurazione dichiarativa mediante una combinazione di script di PowerShell e funzionalità del sistema operativo. Si decide di approfondire l'argomento.
Nota
Un linguaggio di programmazione dichiarativo separa la finalità, ovvero cosa si vuole fare, dall'esecuzione, ovvero come si vuole procedere.
Che cos'è DSC?
DSC è una piattaforma di gestione basata su PowerShell che è possibile usare per gestire i server e l'infrastruttura IT correlata. DSC è costituito da tre componenti, descritti nella tabella seguente.
Componente | Descrizione |
---|---|
Configurazioni | Script di PowerShell dichiarativi che configurano e definiscono le risorse. Quando viene eseguita la configurazione, DSC applica la configurazione come definito. Questo garantisce che la risorsa di destinazione, in questo caso un server, si trovi nello stato definito. È il componente Gestione configurazione locale (LCM) ad applicare e gestire queste configurazioni. |
Risorse | Contiene il codice che definisce e applica lo stato di configurazione desiderato della risorsa. |
LCM | È il motore usato da DSC per applicare le configurazioni. Periodicamente, Gestione configurazione locale verifica lo stato del sistema e, se necessario, chiama il codice nelle risorse per riapplicare lo stato desiderato. |
Nota
Non è necessario installare alcun elemento per usare PowerShell DSC, perché è incluso in Windows.
DSC basato su Windows fa ampio ricorso al componente Gestione configurazione locale. Questo componente funge da motore di esecuzione degli script di Windows PowerShell DSC.
Nota
Gestione configurazione locale è parte integrante di tutte le versioni attualmente supportate dei sistemi operativi Windows.
Gestione configurazione locale è responsabile di:
- Coordinamento dell'implementazione delle impostazioni definite negli script DSC
- Monitoraggio dello stato di tali impostazioni
- Aggiornamento dello stato di un computer in modo che corrisponda allo stato desiderato
Ogni volta che si esegue Gestione configurazione locale, vengono completati i passaggi seguenti:
- Get: recupera lo stato corrente del computer.
- Test: confronta lo stato corrente del computer con lo stato desiderato usando uno script DSC compilato (file con estensione mof).
- Set: aggiorna la configurazione del computer in modo che corrisponda allo stato desiderato descritto nel file con estensione mof.
È possibile distribuire la configurazione DSC in modalità push o pull, come descritto nella tabella seguente.
Mode | Descrizione |
---|---|
Push | In questa modalità si esegue l'invio manuale, o push, delle configurazioni desiderate verso uno o più computer gestiti. Il componente Gestione configurazione locale verifica che lo stato di ogni computer gestito corrisponda alle specifiche di configurazione. |
Pull | In questa modalità, un server di pull contiene le informazioni di configurazione. Il componente Gestione configurazione locale in ogni computer gestito esegue il polling del server di pull a intervalli regolari, per impostazione predefinita ogni 15 minuti, per ottenere i dettagli di configurazione più recenti. Il server di pull invia quindi i dettagli di tutte le modifiche apportate alla configurazione a ogni computer gestito. |
Suggerimento
Sebbene sia possibile configurare un server Windows come server di pull, è anche possibile usare Desired State Configuration di Automazione di Azure.
Requisiti per DSC con Windows
Per usare DSC con Windows, è necessario che l'ambiente soddisfi diversi requisiti. Si tratta di:
- Sistema operativo. I computer gestiti devono eseguire Windows 8.1 o versione successiva oppure Windows Server 2012 R2 o versione successiva.
- Gestione remota Windows. Nei computer gestiti deve essere abilitato Gestione remota Windows (WinRM).
Con DSC, è possibile definire lo stato desiderato di:
- Un sistema operativo
- Un'applicazione
Uso degli script
È possibile usare uno script per definire DSC. Una volta creata e compilata la configurazione, è possibile assegnarla ai computer che dovranno riceverla.
Creare uno script
L'implementazione di DSC spesso inizia con la creazione di uno script di configurazione (con estensione ps1) che descrive lo stato desiderato. Di seguito è riportato un semplice esempio di configurazione. In questo caso, lo script verifica la presenza di Internet Information Services (IIS) e, se necessario, lo installa.
configuration IISInstall
{
# Import the required module.
Import-DscResource -ModuleName PsDesiredStateConfiguration
node "localhost"
{
WindowsFeature IIS
{
Ensure = "Present"
Name = "Web-Server"
}
}
}
Dopo aver creato lo script, salvarlo. In questo caso, salvarlo con il nome IISInstall.ps1.
Compilare la configurazione
Dopo aver creato uno script di configurazione, è necessario compilarlo. La compilazione genera uno o più file MOF contenenti le configurazioni applicabili ai nodi di destinazione. Per compilare uno script, in una console di PowerShell individuare la cartella in cui è stata salvata la configurazione (file script) ed eseguire i comandi seguenti per compilare la configurazione in un file MOF:
.\IISInstall.ps1
IISInstall
Applicare la configurazione
Il passaggio successivo consiste nell'applicare la configurazione. Eseguire questa operazione eseguendo il cmdlet Start-DscConfiguration
.
Importante
Per consentire l'esecuzione di DSC, è necessario configurare Windows per la comunicazione remota di PowerShell, anche quando si esegue una configurazione localhost.
Ad esempio, in una console di PowerShell passare alla cartella in cui è stata salvata la configurazione ed eseguire il comando di PowerShell seguente:
Start-DscConfiguration .\IISInstall
Suggerimento
È possibile verificare l'esito positivo dell'operazione di configurazione eseguendo il cmdlet Get-DscConfigurationStatus
.