Tutorial Puppet - Soluzione completa per la gestione della configurazione

Puppet Tutorial è il secondo blog della serie di blog Puppet. Parla dell'architettura, dei componenti e di un esempio di Puppet per distribuire mysql e php utilizzando Puppet.

Tutorial marionette

Puppet Tutorial è il secondo blog della serie di blog Puppet. Spero che abbiate letto il mio blog precedente su ' Cos'è Puppet 'Che spiega la gestione della configurazione e perché è importante con l'aiuto di casi d'uso.

In questo tutorial sulle marionette verranno trattati i seguenti argomenti:





Cos'è la gestione della configurazione?

Nel mio blog precedente , Ho fornito un'introduzione alla gestione della configurazione e alle sfide che ci aiuta a superare. In questo Tutorial Puppet, ti spiegherò le diverse attività interdipendenti di Configuration Management.Ma prima, cerchiamo di capire cos'è Elemento di configurazione (CI). Un elemento della configurazione è qualsiasi componente del servizio, elemento dell'infrastruttura o altro elemento che deve essere gestito per garantire la corretta erogazione dei servizi. Esempi di CI includono documenti sui requisiti individuali, software, modelli e piani.



La gestione della configurazione è costituita dai seguenti elementi:

  • Identificazione della configurazione
  • Cambio gestione
  • Contabilità dello stato di configurazione
  • Audit di configurazione

Il diagramma seguente spiega questi componenti:

Componenti di gestione della configurazione - Tutorial Puppet - Edureka



Identificazione della configurazione: È il processo di:

  • Etichettatura di elementi di configurazione software e hardware con identificatori univoci
  • Identificazione della documentazione che descrive un elemento di configurazione
  • Raggruppamento degli elementi di configurazione correlati in linee di base
  • Etichettatura delle revisioni agli elementi di configurazione e alle linee di base.

Cambio gestione: È un approccio sistematico per affrontare il cambiamento sia dal punto di vista di un'organizzazione che dell'individuo.

Contabilità dello stato di configurazione: It include il processo di registrazione e reporting delle descrizioni degli elementi di configurazione (ad esempio, hardware, software, firmware, ecc.) e tutte le deviazioni dalla linea di base durante la progettazione e la produzione. In caso di sospetti problemi, è possibile determinare rapidamente la verifica della configurazione di base e le modifiche approvate.

Audit di configurazione: Gli audit di configurazione forniscono un meccanismo per determinare il grado in cui lo stato corrente del sistema è coerente con la baseline e la documentazione più recenti. Fondamentalmente, è una revisione formale per verificare che il prodotto consegnato funzioni come pubblicizzato, promosso o in qualsiasi modo promesso ai clienti. Utilizza le informazioni disponibili come risultato degli audit e dei test di qualità insieme alle informazioni contabili sullo stato della configurazione, per garantire che ciò che era richiesto è stato costruito.

Cerchiamo di capire la gestione della configurazione con un caso d'uso. Supponiamo che tu debba aggiornare un particolare software o desideri sostituirlo, In tal caso, seguire il diagramma di flusso seguente per una corretta gestione della configurazione:

Ora è il momento giusto per capire l'architettura dei burattini.

Tutorial Puppet - Architettura di Fantoccio

Puppet utilizza un'architettura Master-Slave. Il diagramma seguente mostra lo stesso:

Le seguenti funzioni vengono eseguite nell'immagine sopra:

  • Il Puppet Agent invia i fatti al Puppet Master. I fatti sono fondamentalmentecoppia di dati chiave / valore che rappresenta alcuni aspetti dello stato dello slave, come indirizzo IP, tempo di attività, sistema operativo o se si tratta di una macchina virtuale. Spiegherò i fatti in dettaglio più avanti nel blog.
  • Puppet Master utilizza i fatti per compilare un catalogo che definisce come deve essere configurato lo Slave. Catalogareè un documento che descrive lo stato desiderato per ogni risorsa che Puppet Master gestisce su uno Slave. In seguito spiegherò dettagliatamente cataloghi e risorse.
  • Puppet Slave riporta al Master indicando che la configurazione è completa, che è visibile nella dashboard di Puppet.

Guarda questo video tutorial di Puppet per una comprensione approfondita di Puppet.

Tutorial marionette per principianti | Formazione DevOps | Edureka

Tutorial Puppet - Comunicazione Puppet Master e Slave

Il burattinaio e lo schiavo comunicano attraversoun canale crittografato sicuro con l'aiuto di SSL. Il diagramma seguente mostra lo stesso:

Come puoi vedere dall'immagine sopra:

  • Puppet Slave chiede il certificato di Puppet Master.
  • Dopo aver ricevuto il certificato Puppet Master, il Master richiede il certificato Slave.
  • Una volta che il Master ha firmato il certificato Slave, lo Slave richiede configurazione / dati.
  • Infine, Puppet Master invierà la configurazione a Puppet Slave.

Diamo ora uno sguardo ai vari componenti di Puppet.

Tutorial Puppet - Componenti di Fantoccio

Manifesta: Ogni Slave ha i suoi dettagli di configurazione in Puppet Master, scritto nella lingua nativa di Puppet. Questi dettagli sono scritti in un linguaggio comprensibile a Puppet e vengono definiti Manifesti. Sono composti da codice Puppet ei loro nomi di file utilizzano l'estensione .pp estensione. Questi sono fondamentalmente programmi Puppet.
Ad esempio: puoi scrivere un manifest in Puppet Master che crei un file e installi il server Apache su tutti i Puppet Slave collegati a Puppet Master.

strumenti utilizzati nell'analisi dei big data

Modulo: Un modulo Puppet è una raccolta di manifest e dati (come fatti, file e modelli) e hanno una struttura di directory specifica. I moduli sono utili per organizzare il tuo codice Puppet, perché ti permettono di dividere il tuo codice in più Manifesti. I moduli sono bundle indipendenti di codice e dati.

Risorsa: Le risorse sono l'unità fondamentale per la modellazione delle configurazioni di sistema. Ogni risorsa descrive alcuni aspetti di un sistema, come un servizio o un pacchetto specifico.

Facter: Facter raccoglie informazioni di base (fatti) su Puppet Slave come dettagli hardware, impostazioni di rete, tipo e versione del sistema operativo, indirizzi IP, indirizzi MAC, chiavi SSH e altro. Questi fatti vengono poi resi disponibili nei Manifesti di Puppet Master come variabili.

Mcollective: È un framework che consente di eseguire più lavori in parallelo su più Slave. Svolge varie funzioni come:

  • Interagisci con gruppi di schiavi, sia in piccoli gruppi che in installazioni molto grandi.
  • Utilizza un paradigma di trasmissione per distribuire le richieste. Tutti gli slave ricevono tutte le richieste allo stesso tempo, le richieste hanno filtri collegati e solo gli slave che corrispondono al filtro agiranno sulle richieste.
  • Usa semplici strumenti della riga di comando per chiamare slave remoti.
  • Scrivi report personalizzati sulla tua infrastruttura.

Cataloghi: Un catalogo descrive lo stato desiderato di ciascuna risorsa gestita su uno slave. È una raccolta di tutte le risorse che il Puppet Master applica a un dato Slave, nonché le relazioni tra quelle risorse.I cataloghi sono compilati da un Puppet Master da manifesti e dati forniti da Slave (come fatti, certificati e un ambiente se fornito), così come dati esterni opzionali (come dati da un classificatore di Slave esterno, risorse esportate, e funzioni). Il Master poi serve il Catalogo compilato allo Slave quando richiesto.

Ora, in questo tutorial sui burattini, la mia prossima sezione si concentrerà sulle pratiche.

Tutorial sui burattini - Pratica

Ti mostrerò come distribuire MySQL e PHP da Puppet Master a Puppet Slave. Sto usando solo uno Slave a scopo dimostrativo, possono esserci centinaia di Slave collegati a un Master. Per distribuire PHP e MySQL userò moduli predefiniti disponibili su forge.puppet.com. Puoi anche creare i tuoi moduli.

Passo 1: In Puppet Master installa i moduli MySQL e PHP.

Esegui questo:

1) modulo puppet installa puppetlabs-mysql –version 3.10.0

Questo modulo MySQL installa, configura e gestisce il servizio MySQL. Questo modulo gestisce sia l'installazione che la configurazione di MySQL, nonché l'estensione di Puppet per consentire la gestione delle risorse MySQL, come database, utenti e concessioni.

2) installazione del modulo puppet mayflower-php –version 4.0.0-beta1

Questo modulo è utilizzato per gestire PHP, in particolare php-fpm. PHP-FPM (FastCGI Process Manager) è un'implementazione PHP FastCGI alternativa con alcune funzionalità aggiuntive utili per siti di qualsiasi dimensione, in particolare siti più frequentati.

Passo 2: In Puppet Manifests includono server MySQL e PHP.

Esegui questo: vi /etc/puppet/manifests/site.pp

Puoi usare qualsiasi altro editor come vim, gedit ecc. In questo file site.pp aggiungi quanto segue:

include ':: mysql :: server' include ':: php'

Salva ed esci.

Passaggio 3: Puppet Slaves estrae periodicamente la sua configurazione dal Master (ogni 30 minuti). Valuterà il manifest principale e applicherà il modulo che specifica l'installazione di MySQL e PHP. Se vuoi provarlo immediatamente, devi eseguire il seguente comando su ogni nodo Slave:

Esegui questo: agente fantoccio -t

ordine crescente c ++

Quindi MySQL e PHP vengono installati correttamente sul nodo Slave.

Passaggio 4: Per verificare la versione di MySQL e PHP installata:

Esegui questo:

1) mysql -v

2) php -version

Congratulazioni! MySQl e PHP sono attivi e funzionanti nel tuo Puppet Slave. Qui ti ho mostrato solo uno Schiavo, ma immagina se ci sono centinaia di Schiavi. In questo scenario il tuo lavoro diventa così facile, basta specificare le configurazioni in Puppet Master e Puppet Slaves valuterà automaticamente il manifest principale e applicherà il modulo che specifica l'impostazione di MySQL e PHP.

Se hai trovato questo Tutorial marionette pertinente, controlla il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Il corso di formazione sulla certificazione Edureka DevOps aiuta gli studenti ad acquisire esperienza in vari processi e strumenti DevOps come Puppet, Jenkins, Nagios e GIT per l'automazione di più passaggi in SDLC.