Powershell DSC – Preziosa risorsa sconosciuta e poco usata! – Scenario Exchange 2016

Powershell DSC (Desired State Configuration) è un’estensione di Powershell disponibile da Windows Server 2012 R2 e Windows 8.1. Il suo approccio favorisce la gestione e la configurazione dei sistemi utilizzando il metodo dichiarativo anziché quello imperativo.

Per chiarire, uno script di Powershell definisce come un task deve essere eseguito mentre la DSC definisce cosa deve essere eseguito; uno script di Powershell non è di per se costruito per essere rieseguito al bisogno, una configurazione DSC invece verrà riapplicata più e più volte se necessario in autonomia; uno script di Powershell deve essere sviluppato nella procedura corretta per evitare errori o stop, una configurazione DSC si farà carico del processo adeguato e corretto per completare le azioni.

Il metodo DSC si basa sulle risorse, che possono essere applicate alla configurazione per controllare e gestire servizi di Windows o di altri applicativi, gestire file e chiavi di registro. Da sottolineare il fatto che queste risorse possono essere sviluppate da terzi, andando quindi a creare un catalogo di combinazioni e possibilità davvero ampio.

Per fornire un esempio di DSC, analizzeremo l’aspetto di configurazione applicato ad Exchange 2016

Prima di tutto è necessario installare la DSC. Lo potete fare eseguendo il seguente comando:

Add-WindowsFeature Dsc-Service

Eseguitelo su di un server (o più server) che selezionerete come server di PULL per il vostro ambiente DSC, ovvero dove andrete a creare le configurazioni.
Dovete quindi scaricare ed installare seguendo le istruzioni nel link i moduli xExchange per la DSC (il nostro articolo di esempio si basa su Exchange, ma naturalmente potrete andare a scaricare i moduli DSC che desiderate).

Cliccate qui per la pagina ufficiale xExchange

Ora prepariamo lo script per generare il nostro file MOF. Questo script conterrà le configurazioni che desideriamo siano “imposte” al server target tramite DSC.
In questo esempio andremo ad accertare che gli URI delle virtual directory interni ed esterni corrispondano ai nostri valori desiderati:

$ConfigData = @{
AllNodes = @(
@{
NodeName = '*'
# Le prossime due stringhe sono a solo scopo di test per questo articolo, non dovrebbero essere compilate in ambiente reale
PSDscAllowPlainTextPassword = $true
PSDscAllowDomainUser = $true
}
@{
NodeName = 'MBX01'
}
)
}
Configuration ExchServerConfig {
Param(
[Parameter(Mandatory=$true)]
[ValidateNotNullorEmpty()]
[PSCredential]$ExchShellCredentials
)
# Importiamo il modulo xExchange scaricato ed installato in precedenza
Import-DscResource -ModuleName xExchange
Node $AllNodes.NodeName {
# Ora passiamo alla configurazione desiderata
xExchClientAccessServer CAS
 {
  Identity                       = $Node.NodeName
  Credential                     = $ShellCreds
  AutoDiscoverServiceInternalUri = "https://mail.themicrosoftbook.com/autodiscover/autodiscover.xml"
  AutoDiscoverSiteScope          = $casSettings.AutoDiscoverSiteScope
 }
}
}
# Richiamiamo le credenziali di Exchange per eseguire la configurazione
if ($ExchShellCredentials -eq $null) {
$ExchShellCredentials = Get-Credential -Message 'Inserisci le credenziali di Exchange Server'
}
# Compilazione della configurazione e generazione del file MOF nel percorso indicato
ExchServerConfig -ExchShellCredentials $ExchShellCredentials -ConfigurationData
$ConfigData –OutputPath C:\DSC_MOF

Ora il nostro file MOF è pronto per essere inserito nella routine DSC.
Con questo comando:

Start-DscConfiguration –Wait –Verbose –Path C:\DSC_MOF –ComputerName MBX01

Andremo ad eseguire sull’host MBX01 (il nostro server di Exchange) il MOF nella cartella c:\DSC_MOF

Tutte queste azioni faranno in modo di garantire che la directory virtuale di Autodiscover del server MBX01 abbia sempre il valore impostato nella configurazione, intervenendo in auto remediation grazie al motore DSC in caso di modifiche rilevate.

 

Add a Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.