Cosa c'è di diverso / meglio in DSC rispetto allo script "regolare"?


8

Ho visto un video su ITPro.tv sul DSC di configurazione dello stato desiderato di PowerShell . Lo introducono ed eseguono efficacemente una sceneggiatura. Tuttavia, questa è stata anche la loro prima (reale) introduzione di script, quindi non ho riscontrato la differenza tra DSC e script regolari. Ho già fatto degli script regolari in precedenza, e forse non hanno avuto un grande esempio; sembrava che uno script normale potesse installare un ruolo / funzionalità e copiare alcuni file bene. Non ho visto il vantaggio di DSC rispetto a un semplice script. A parte una macchina che è in grado di sondare per qualche tipo di cambiamento, che non hanno trattato in pratica, solo in teoria.

Quali sono i vantaggi di DSC rispetto agli script tradizionali; ad esempio "ruolo di installazione, copia file"?

  • Con PowerShell puoi connetterti a macchine remote e dire loro di fare cose, quindi non è esclusivo di DSC.
  • Con DSC sembra che tu stia facendo una sorta di compilation per creare un file mof, e poi lo esegui dalla shell dopo lo script, il che sembra un passaggio non necessario.
  • La panoramica di MSDN si presenta come una panoramica di PowerShell e non vedo le caratteristiche di differenziazione.

Risposte:


7

Come hai detto, puoi fare praticamente tutto ciò che faresti con DSC, con un codice PowerShell diretto.

Tuttavia, DSC si basa sulla gestione della configurazione.

La gestione della configurazione riguarda modelli e pratiche di utilizzo del codice e di vari sistemi per garantire che un sistema si trovi in ​​uno stato specifico. Rif 1 2

Una cosa importante sulla gestione della configurazione è l'idempotenza. Ciò significa che il codice che descrive il tuo sistema nel sistema di gestione della configurazione verrà controllato ed eseguito periodicamente sul tuo sistema. Molti script di base non sono ben progettati e faranno la cosa giusta la prima volta che lo si utilizza per configurare un sistema, ma la prossima volta si verificheranno errori, duplicheranno cose e così via. Idealmente, i sistemi di gestione della configurazione elimineranno gran parte del codice di verifica e verifica dello stato che è necessario aggiungere manualmente in uno script, per renderlo idempotente.

Un'altra cosa importante di DSC e di molti altri sistemi di gestione della configurazione è la creazione di risorse riutilizzabili che svolgono effettivamente il lavoro che può essere condiviso con chiunque e tutti nel mondo. In questo modo la tua "configurazione" dovrebbe essere solo i pochi dettagli specifici che sono specifici per il tuo ambiente. Questo significa anche che dovresti scrivere molto meno codice, dal momento che puoi riutilizzare le cose che sono state usate e controllate da molte altre persone.

Ho incluso alcuni link sopra, ma ci sono molti buoni siti Web che puoi trovare su Internet sulla teoria dei sistemi di gestione della configurazione. La teoria generale si applica a tutti i sistemi di gestione della configurazione (burattino, cuoco, dsc, ansible, ecc.) Che vale sicuramente la pena imparare e vale la pena usare nella maggior parte degli ambienti.


1

Ti suggerisco di dare un'occhiata a https://docs.microsoft.com/en-us/powershell/dsc/dscforengineers#i-have-powershell-why-do-i-need-desired-state-configuration .

Ho fatto devops come capo di un progetto C # da molto prima che si chiamasse così. Ho scritto dozzine di questi "imposta una condivisione" e "crea un'app in IIS", e "controlla se IIS Rewrite è installato" tipo di script. Di solito mi viene chiesto di farlo da qualcuno che pensa "È solo una riga di codice per fare X." E se la cosa esistesse già? Cosa succede se i passaggi 1,3 esistono già ma 2,4 no, oppure il passaggio 2 (supponiamo che un pool di app IIS) non sia configurato esattamente come l'ultima volta?

Sì, DSC richiede di nominare ogni "parte" dello script. Che all'inizio sembra noioso. Ma se non lo chiami, il motore DSC e i provider non possono dirti quale parte dello script impiega troppo tempo o quale parte dello script non riesce.

Se stai eseguendo cartelle, IIS, distribuzione di app o funzionalità di Windows, ti consiglio vivamente di investire qualche giorno nell'apprendimento del DSC.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.