Quando è appropriato utilizzare un gestore della configurazione (ad esempio Puppet / Chef / Ansible)?


17

Nel mio attuale posto di lavoro, mi occupo di due macchine host VMware, una macchina fisica OpenBSD, tre macchine virtuali Debian e sei macchine virtuali Windows Server (2008/2012).

Sto pensando di implementare uno strumento di gestione della configurazione come Puppet o Chef. È ragionevole o il sovraccarico dell'apprendimento dello strumento supera i benefici? Qual è il punto di svolta tra gestibilità e costi di implementazione?


1
È "appropriato" non appena è necessario gestire una configurazione: è necessario ripristinare un disastro? Devi passare a un nuovo data center? Hai bisogno di espandersi in orizzontale? Se lo fai a mano, lo stai facendo male . " Farlo due volte? Scrivilo. "
warren,

1
Dipende da cosa devi fare per / con questi sistemi.
ewwhite,

Risposte:


25

Vale la pena imparare a IMHO anche se gestisci un solo server,

Sì, ci sarà una curva di apprendimento. Sì, ti sentirai frustrato. Per tali costi, tuttavia, verrai rimborsato in multipli attraverso distribuzioni affidabili, coerenti, con un clic, configurazione del server controllata dalla versione, facilità di impostazione di ambienti di test / sviluppo, ecc.

Oltre ai vantaggi per il tuo attuale lavoro, essere in grado di aggiungere un sistema CM al tuo curriculum è una grande vittoria. Si prevede ora che i moderni amministratori di sistema abbiano almeno un'esposizione a un sistema di gestione della configurazione, se non competenza.

(Sidenote: considera anche Ansible. È il mio CM preferito ed è molto facile da installare e da usare - molto più facile di Puppet o Chef. Inoltre, il supporto di Windows in Ansible sta procedendo bene.)


5
Ben detto. Finisco con Ansible per cose banali come impostare un Raspberry Pi a casa perché è un modo conveniente per documentare il processo.
tedder42

2
Assolutamente! Entrare nello Chef è stata una grande vittoria in carriera per me. Ecco la cosa vera: tra un paio d'anni il CM sarà quasi richiesto / previsto per tutti i lavori SysAd tranne quelli junior.
gWaldo,

2
Totalmente d'accordo. Troppa attenzione è rivolta all'automazione dell'installazione che è solo una parte dei sistemi CM. Le persone dimenticano ciò che M sta per: gestione. Come tenere traccia delle varie modifiche di configurazione apportate a 1 server. Il numero di server non ha importanza. Quando quel 1 server muore, sarai felice di poterlo ricostruire esattamente senza dubbio.
ETL

5

Sto pensando di implementare uno strumento di gestione della configurazione come Puppet o Chef. È ragionevole o il sovraccarico dell'apprendimento dello strumento supera i benefici?

È ragionevole a seconda di quanto tempo e denaro devi bruciare e se sono i tuoi soldi che stai bruciando.

Uno strumento di gestione della configurazione (uno di questi) sta diventando un'abilità preziosa nel mercato di oggi.

Trascorrere del tempo per imparare e implementare uno strumento CM potrebbe non essere la cosa più efficiente da fare dal punto di vista della tua azienda o ambiente, ma dal tuo set di competenze potrebbe essere utile.

Qual è il punto di svolta tra gestibilità e costi di implementazione?

La maggior parte degli strumenti di gestione della configurazione sono disponibili gratuitamente con l'avvertenza che sono più difficili da installare e iniziare.

A questa domanda è un po 'difficile rispondere poiché dipende davvero da cosa stai facendo quotidianamente per gestire questi server. Se non ti viene richiesto di fare molto, uno strumento di gestione della configurazione potrebbe essere eccessivo.

Se hai solo bisogno di imporre la tua infrastruttura in uno stato prevedibile e di base, allora potrebbe non essere molto dannoso raccogliere le basi di qualcosa come SaltStack o Ansible.

Nella mia esperienza personale, Salt è molto semplice da avviare e avviare i bootstrap sui server e può essere utilizzato per l'esecuzione e il reporting remoti di base, il che può tornare utile se non lo hai già implementato nel tuo ambiente.

Tieni presente che sono di parte. Dovresti valutare ogni strumento CM da solo.


4

Proprio come ha detto @EEAA, il numero di server è irrilevante. Puoi sfruttare i vantaggi dell'utilizzo della gestione della configurazione con un singolo computer:

  • installazione documentata (documentata tramite script CM)
  • distribuzione affidabile (puoi [ri] distribuire la tua configurazione più e più volte
  • resilienza dell'installazione (il server attuale gracchia - creane uno nuovo)
  • riutilizzo (quando arrivate al punto di avere un secondo server - avete già script CM che potete riciclare dal primo)
  • aggiornamenti (è un po 'come una nuova configurazione, appena sopra una piattaforma diversa)

Posso dire che ho dovuto implementare CM per tutti i miei server personali mentre lavoro lì di rado e dimentico tutti i piccoli dettagli. Avere script CM mentre può sembrare richiedere molto tempo (lo è) il rimborso è valsa la pena. A lungo termine risparmierai molto più tempo che impiegherai a configurare le cose.


3

Ho esperienza con Puppet e Ansible. Ansible è l'IMO più semplice, poiché è procedurale, mentre Puppet è dichiarativo. Ci sono pro e contro per entrambi, ma ho tirato abbastanza capelli a causa degli errori criptici di Puppet.

Entrambi richiedono molto lavoro se si desidera creare una configurazione pulita e riutilizzabile. I costi iniziano a pagare davvero se si hanno almeno due server molto simili, ad esempio cloud o cluster.

Tuttavia, è utile anche per i server autonomi: è possibile configurare utenti amministratori, configurazioni standard (con variazioni locali) sshd, postfix o snmpd e utilizzarli anche per una semplice raccolta di informazioni, come l'adesione alla politica o il test di vulnerabilità dello shellshock.

Inoltre, come indicato da EEAA, ha un valore per documentare l'installazione se si verifica che porta davvero un server dallo stato di base allo stato di esecuzione. È utile combinarlo con il sistema di controllo della versione (git), in modo che le modifiche apportate vengano verificate e documentate. Questo è molto prezioso se hai una squadra di amministratori.


1

Puppet o qualsiasi altro sistema di gestione porta grandi benefici che sono stati tutti evidenziati da altre risposte qui, ma non c'è nessun proiettile d'argento quando si tratta di gestione.

Ad esempio, la creazione di classi di marionette per sistemi complessi costa molto tempo e fatica e talvolta lacrime in quanto vi sono molte insidie ​​e i messaggi di errore non sono sempre chiari al 100% e quando il software si aggiorna è necessario dedicare tempo per adattare le proprie marionette alle nuove specifiche o procedura e capire quale approccio è più adatto per questo (fantoccio ad esempio dichiarativo e un aggiornamento è in genere procedurale)

Inoltre, devi capire come intendi implementare le modifiche apportate alle tue classi in modo controllato e come mantenere le diverse versioni dei tuoi manifest.

Dovresti anche considerare come fare per aggiornare la tua soluzione di gestione quando arriva il momento.

Se trascorri molto tempo scrivendo, ad esempio, delle classi di marionette, dovrai eseguire molte installazioni con un clic per ottenere vantaggi reali.

Consiglio di esplorare ancora e, se del caso, la distribuzione dei file di configurazione può essere un buon punto di partenza, e prenderlo da lì.

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.