Ricerca nel sito web

Cos'è l'automazione e la gestione della configurazione con CHEF – Parte 1


Prendiamo uno scenario semplice, hai 10 server RedHat in cui devi creare un utente "tecmint" in tutti i server. L'approccio diretto è che è necessario accedere a ciascun server e creare l'utente con il comando useradd. Quando i server sono centinaia o migliaia, non è praticamente possibile accedere a tutti i server uno per uno.

Ecco, la prima cosa che ci viene in mente in questi casi è scrivere uno script e lasciare che lo script esegua l'esecuzione sui server, è un approccio collaudato. Lo scripting presenta i suoi svantaggi, sebbene sia ampiamente utilizzato nelle organizzazioni, è difficile da mantenere se il proprietario dello script lascia l'organizzazione.

Lo script non funzionerà in un ambiente eterogeneo. Lo script è un metodo imperativo per eseguire l'attività, in cui è necessario scrivere un codice lungo per un'attività semplice ecc., questa situazione ci richiede di cercare strumenti di automazione e gestione della configurazione come un Cuoco.

In questa serie di articoli su Chef, vedremo le procedure di installazione e configurazione dello strumento Chef Automation attraverso le parti 1-3 e tratteremo i seguenti argomenti.

Questo tutorial fornisce un punto di partenza su come funziona Chef, automazione, gestione della configurazione, architettura e componenti di Chef.

1. Gestione della configurazione

La gestione della configurazione è il punto focale della pratica DevOps. Nel ciclo di sviluppo del software, tutti i server dovrebbero essere configurati e mantenuti correttamente in modo tale da non subire alcuna interruzione nel ciclo di sviluppo. Una cattiva gestione della configurazione può causare interruzioni del sistema, perdite e violazioni dei dati. Utilizzare gli strumenti di gestione della configurazione significa facilitare la precisione, l'efficienza e la velocità nell'ambiente basato su DevOps.

Esistono due modelli di strumenti di gestione della configurazione: basati su PUSH e basati su PULL. Nella modalità basata su PUSH, il server Master invia il codice di configurazione ai server in cui i singoli server basati su PULL contattano il Master per ottenere il codice di configurazione. PUPPET e CHEF sono modelli basati su PULL ampiamente utilizzati, ANSIBLE è un modello popolare basato su PUSH. In questo articolo vedremo lo CHEF.

2. Cos'è uno chef?

A chef è un programma di automazione open source che consente agli amministratori di sistema di automatizzare la distribuzione, le configurazioni, la gestione e le attività in corso su una serie di server e altri dispositivi di un'organizzazione in modo semplice e semplice.

  • Nasce nel 2008 come OPSCODE e successivamente viene rinominato CHEF (strumento Chef Automation).
  • È uno strumento di automazione basato su Ruby utilizzato per gestire la configurazione, automatizzare e orchestrare l'intera infrastruttura di un'organizzazione.
  • È un progetto Opensource e viene fornito con due modelli di distribuzione: Server Client e Standalone.
  • Chef supporta vari sistemi operativi come Ubuntu, Redhat/CentOS, Fedora, macOS, Windows, AIX, ecc.
  • Lo chef è dichiarativo ed è molto più semplice dei linguaggi di scripting nativi.
  • Fornisce un'implementazione continua per consentire a un'azienda di mantenersi aggiornata con i requisiti del mercato.
  • La responsabilità primaria dello Chef è mantenere lo stato di Configurazione definito.
  • Ha il proprio linguaggio dichiarativo per gestire facilmente decine e migliaia di nodi.
  • Lo chef è adattabile al cloud, si integra facilmente con Infrastructure on Cloud.
  • Lo chef è facile da imparare ed è un potente strumento DevOps supportato dalla comunità.

3. Architettura dello chef

L'architettura di Chef è divisa in 3 sezioni principali.

  • Chef WorkStation: piattaforma di sviluppo locale per gli utenti Chef per creare, testare e applicare configurazioni. Può essere il tuo desktop locale, laptop con Chef DK (kit di sviluppo) installato. Può essere utilizzato come ambiente di sviluppo/test prima di passare alla produzione.
  • Chef Server: è un server su cui è installato e configurato il software chef-server. È responsabile della gestione del codice Chef e dell'accesso al codice di configurazione da Chef Workstation. Il server chef dovrebbe essere una macchina Linux, non supporterà nessun altro sistema operativo.
  • Client Chef: sono i server che contattano il server Chef per i dettagli di configurazione come il codice chef e altri file dipendenti nei binari. Estrae il codice dal server Chef e lo distribuisce localmente.

4. Componenti dello chef

Di seguito sono riportati i componenti chiave di Chef.

  • Le Risorse sono il modulo base di Recipe utilizzato per gestire l'infrastruttura.
  • L'attributo rappresenta le impostazioni sotto forma di coppia chiave-valore.
  • Le Ricette sono la raccolta di attributi che possono essere realizzati nella Workstation. Si tratta di un insieme di comandi che possono essere applicati ai Clienti Chef come Codice Chef.
  • La raccolta di ricette si chiama Libro di ricette.
  • Un coltello è uno strumento da riga di comando in Chef Workstation che interagisce con Chef Server.

5. Modello di implementazione dello chef

Esistono due modelli di implementazione per Chef.

  • Client server: viene utilizzato per la distribuzione in produzione.
  • Chef Zero: viene utilizzato per sviluppo, test e POC.

6. Come lavora lo Chef? Infrastruttura come codice

Infrastructure as Code è la gestione dell'infrastruttura IT in cui ci consente di eseguire automaticamente varie installazioni/distribuzioni e gestione della configurazione. Qui, tutte le configurazioni e le installazioni sono scritte come codice.

  • Il client/nodo Chef effettuerà la registrazione e l'autenticazione con il server Chef.
  • Il client/nodo Chef esaminerà periodicamente il Server Chef. Il processo di autenticazione viene effettuato ogni volta che lo chef-cliente desidera accedere ai dati archiviati nello chef-server.
  • Ohai è uno strumento che verrà eseguito da un client Chef per determinare lo stato del sistema, rileverà gli attributi (sistema operativo, memoria, disco, CPU, kernel, ecc.) del nodo e fornirà quegli attributi allo chef-cliente. Ohai fa parte dell'installazione di Chef Client.
  • Se vengono apportate modifiche al ricettario o alle impostazioni di configurazione, verranno inviate allo Chef-Client e verranno aggiornate/installate.
  • I libri di cucina e le impostazioni verranno aggiornati nel server Chef utilizzando Chef Workstation tramite lo strumento da riga di comando Knife. La workstation invia tutte le policy al server Chef utilizzando Knife.
  • Poiché ciascun client/nodo avrà un controllo periodico con il server Chef, le configurazioni verranno applicate individualmente in base al ruolo del server. Ad esempio: negli Chef Nodes, alcuni nodi saranno server di database, altri nodi saranno server gateway, ecc.
Conclusione

In questo articolo abbiamo visto i concetti base del Configuration Management e dello strumento di automazione di Chef. Vedremo passo dopo passo il processo di installazione di Chef nei prossimi articoli.