Chef Tutorial - Trasforma l'infrastruttura in codice

Chef Tutorial è il secondo blog della serie di blog Chef. Questo blog spiega l'architettura dello chef e i componenti dello chef come libri di cucina, ricette ecc. Con esempi.

Tutorial dello chef

Chef Tutorial è il secondo blog della serie di blog Chef. Nel mio blog precedente , Ho spiegato cos'è Chef, Configuration Management e come Chef ottiene la Configuration Management con l'aiuto di un caso d'uso di Gannett.

In questo tutorial dello chef verranno trattati i seguenti argomenti:





Sono sicuro che dopo aver letto il mio blog precedente devi essere curioso di sapere come funziona esattamente Chef. La prima sezione di questo blog Tutorial dello Chef ti spiegherà in dettaglio l'architettura dello Chef, chiarendo tutti i tuoi dubbi.



Tutorial dello chef - Architettura dello chef

Come mostrato nel diagramma seguente, ci sono tre componenti principali di Chef:

  • Postazione di lavoro
  • server
  • Nodi

Chef Architecture - Chef Tutorial - Edureka

Chef Tutorial - Workstation



La Workstation è la posizione da cui provengono tutte le configurazioni di Chefgestito. Questa macchina contiene tutti i dati di configurazione che possono essere successivamente inviati allo Chef Server centrale. Queste configurazioni vengono testate nella workstation prima di inserirle in Chef Server. Una workstation è costituita da uno strumento della riga di comando chiamato Coltello, che viene utilizzato per interagire con Chef Server. Possono esserci più workstation che insieme gestiscono lo Chef Server centrale.

Le workstation sono responsabili dell'esecuzione delle seguenti funzioni:

  • Scrittura di libri di cucina e ricette che verranno successivamente inviati allo Chef Server centrale
  • Gestione dei nodi sullo Chef Server centrale

Ora, cerchiamo di capire uno per uno i punti sopra menzionati.

Scrittura di libri di cucina e ricette che verranno successivamente inviati allo Chef Server centrale

Ricette: Una ricetta è una raccolta di risorse che descrive una particolare configurazione o politica. Descrive tutto ciò che è necessario per configurare parte di un sistema. L'utente scrive ricette che descrivono come Chef gestisce applicazioni e utilità (come Apache HTTP Server, MySQL o Hadoop) e come devono essere configurate.

Queste ricette descrivono una serie di risorse che dovrebbero trovarsi in uno stato particolare, ad esempio pacchetti che dovrebbero essere installati, servizi che dovrebbero essere in esecuzione o file che dovrebbero essere scritti.

Più avanti nel blog , Ti mostrerò come scrivere una ricetta per installare il pacchetto Apache2 su Chef Nodes scrivendo un codice ruby ​​in Chef Workstation.

Libri di cucina: È possibile raggruppare più ricette per formare un ricettario. Un ricettario definisce uno scenario e contiene tutto ciò che è necessario per supportare quello scenario:

  • Ricette, che specifica le risorse da utilizzare e l'ordine in cui devono essere applicate
  • Valori degli attributi
  • Distribuzioni di file
  • Modelli
  • Estensioni a Chef, come librerie, definizioni e risorse personalizzate

Gestione dei nodi sullo Chef Server centrale

Il sistema Workstation avrà le utilità della riga di comando necessarie, per controllare e gestire ogni aspetto dello Chef Server centrale. Cose come l'aggiunta di un nuovo nodo al server Chef centrale, l'eliminazione di un nodo dal server Chef centrale, la modifica delle configurazioni del nodo ecc. Possono essere gestite dalla workstation stessa.

Vediamo ora quali componenti di Workstation sono necessari per eseguire le funzioni di cui sopra.

Le workstation hanno due componenti principali:

Utilità coltello: Questo strumento della riga di comando può essere utilizzato per comunicare con il server Chef centrale dalla workstation. L'aggiunta, la rimozione e la modifica delle configurazioni dei nodi in uno Chef Server centrale verranno eseguite utilizzando questa utility Knife. Utilizzando l'utility Knife, i libri di cucina possono essere caricati su un server Chef centrale e ruoli, gli ambienti possono anche essere gestiti. Fondamentalmente, ogni aspetto dello Chef Server centrale può essere controllato dalla Workstation utilizzando l'utility Knife.

Un repository di Chef locale: Questo è il luogo in cui vengono memorizzati tutti i componenti di configurazione di Chef Server centrale. Questo repository Chef può essere sincronizzato con lo Chef Server centrale (sempre utilizzando l'utility del coltello stessa).

trasforma l'oggetto in array php

Tutorial Chef - Chef Server

Lo Chef Server funge da hub per i dati di configurazione. Chef Server memorizza i libri di cucina, le politiche applicate ai nodi e i metadati che descrivono ogni nodo registrato gestito da Chef-Client.

I nodi utilizzano Chef-Client per richiedere al server Chef i dettagli di configurazione, come ricette, modelli e distribuzioni di file. Lo Chef-Client esegue quindi la maggior parte del lavoro di configurazione possibile sui nodi stessi (e non sullo Chef Server). Ogni nodo ha un software Chef Client installato, che estrae la configurazione dal server Chef centrale applicabile a quel nodo. Questo approccio scalabile distribuisce il lavoro di configurazione in tutta l'organizzazione.

Tutorial Chef - Nodi Chef

I nodi possono essere un server virtuale basato su cloud o un server fisico nel proprio data center, gestito tramite Chef Server centrale. Il componente principale che deve essere presente sul Nodo è un agente che stabilirà la comunicazione con lo Chef Server centrale. Questo si chiama Chef Client.

Chef Client svolge le seguenti funzioni:

  • È responsabile dell'interazione con lo Chef Server centrale.
  • Gestisce la registrazione iniziale del Nodo sullo Chef Server centrale.
  • Estrae i libri di cucina e li applica al nodo per configurarlo.
  • Polling periodico del server Chef centrale per recuperare nuovi elementi di configurazione, se presenti.

Fare clic qui per scoprire come installare Chef Server, Workstation e Node

Tutorial dello chef - Vantaggi dello chef:

Questo tutorial di Chef sarà incompleto se non includo i principali vantaggi di Chef:

  • Puoi automatizzare un'intera infrastruttura utilizzando Chef. Tutte le attività che venivano eseguite manualmente, ora possono essere eseguite tramite lo strumento Chef.
  • Puoi configurare migliaia di nodi in pochi minuti usando Chef.
  • L'automazione di Chef funziona con la maggior parte delle offerte di cloud pubblico come .
  • Chef non solo automatizzerà le cose, ma manterrà anche i sistemi sotto controllo costante e confermerà che il sistema è effettivamente configurato nel modo in cui è richiesto (Chef Agent / Client fa questo lavoro). Se qualcuno commette un errore modificando un file, Chef lo correggerà.
  • Un'intera infrastruttura può essere registrata sotto forma di un repository Chef, che può essere utilizzato come progetto per ricreare l'infrastruttura da zero.

Spero che questo tutorial di Chef ti sia piaciuto fino ad ora, basta con i post teorici! divertiamoci un po 'con le pratiche.

Tutorial dello chef | Primi passi con Chef | Edureka

Tutorial dello chef - pratico

Qui ti spiegherò come creare una ricetta, un ricettario e un modello in Chef Workstation. Ti spiegherò anche come distribuire un ricettario da Workstation a Chef-Client (Chef Node).

Sto usando due immagini virtuali una per Chef Workstation e l'altra per Chef Node. Per Chef Server userò la versione in hosting di Chef (su cloud). Puoi anche utilizzare una macchina fisica per Chef Server.

Passo 1: Installa Chef DK (Development Kit) nella tua Chef Workstation.

Chef DK è un pacchetto che contiene tutti gli strumenti di sviluppo di cui avrai bisogno durante la codifica di Chef. Ecco il link per il download Chef DK .

Qui, scegli il sistema operativo che stai utilizzando. Sto usando CentOS 6.8, quindi farò clic su Red Hat Enterprise Linux .

Copia il collegamento in base alla versione di CentOS che stai utilizzando. Sto usando CentOS 6, come puoi vedere che ho evidenziato nello screenshot qui sopra.

Vai al tuo terminale Workstation e scarica Chef DK usando il comando wget e incolla il link.

Esegui questo:

wget https://packages.chef.io/stable/el/6/chefdk-1.0.3-1.el6.x86_64.rpm

Il pacchetto è ora scaricato. È ora di installare questo pacchetto utilizzando rpm.

Esegui questo:

rpm -ivh chefdk-1.0.3-1.el6.x86_64.rpm

Chef DK è ora installato nella mia workstation.

Passo 2: Crea una ricetta nella workstation

Cominciamo creando una ricetta nella workstation e proviamola localmente per assicurarci che funzioni.Crea una cartella denominata chef-repo. Possiamo creare le nostre Ricette all'interno di questa cartella.

Esegui questo:

mkdir chef-repo cd chef-repo

In questa directory chef-repo creerò una ricetta chiamata edureka.rb. .rb è l'estensione usata per ruby. Userò vim editor, puoi usare qualsiasi altro editor che desideri come gedit, emac, vi ecc.

Esegui questo:

vim edureka.rb

Qui aggiungi quanto segue:

file '/ etc / motd' contenuto 'Benvenuto in Chef' end

Questo Recipe e dureka .rb crea un file denominato / etc / motd con contenuto 'Welcome to Chef'.

passare per valore vs passare per riferimento java

Ora userò questa ricetta per verificare se funziona.

Eseguire Questo:

chef-apply edureka.rb

Quindi c'è un file creato nel repository chef che ha un contenuto Benvenuto in Chef.

Passaggio 3: Modificare il file di ricetta per installare il pacchetto httpd

Modificherò la ricetta per installare il pacchetto httpd sulla mia workstation e copierò un file index.html nella root del documento predefinita per confermare l'installazione. L'azione predefinita per una risorsa del pacchetto è l'installazione, quindi non è necessario specificare tale azione separatamente.

Eseguire Questo:

vim edureka.rb

Qui aggiungi quanto segue:

pacchetto 'httpd' servizio 'httpd' esegui azione [: enable,: start] end file '/var/www/html/index.html' do content 'Benvenuto in Apache in Chef' end

Ora applicherò queste configurazioni eseguendo il comando seguente:

Eseguire Questo:

chef-apply edureka.rb

L'esecuzione del comando descrive chiaramente ogni istanza nella ricetta. Installa il pacchetto Apache, abilita e avvia il servizio httpd sulla workstation. E crea un file index.html nella root del documento predefinita con il contenuto 'Benvenuto in Apache in Chef'.

Ora conferma l'installazione di Apache2 aprendo il tuo browser web. Digita il tuo indirizzo IP pubblico o il nome del tuo host. Nel mio caso, è localhost.

Passaggio 4: Ora creeremo il nostro primo ricettario.

Crea una directory chiamata ricettari ed esegui il comando seguente per generare il ricettario.

Eseguire Questo:

mkdir ricettari cd ricettari chef genera ricettario httpd_deploy

httpd_deploy è un nome dato al ricettario. Puoi dare qualsiasi nome tu voglia.

Passiamo a questa nuova directory httpd_deploy.

Eseguire Questo:

cd httpd_deploy

Vediamo ora la struttura dei file del ricettario creato.

Eseguire Questo:

albero

Passaggio 5: Ccreare un file modello.

In precedenza, ho creato un file con alcuni contenuti, ma non si adattava alle mie strutture di ricette e ricettari. Vediamo quindi come creare un modello per la pagina index.html.

Eseguire Questo:

chef genera il modello httpd_deploy index.html

Ora, se vedi la struttura del mio file Cookbook, c'è una cartella creata con il nome templates con il file index.html.erb. Modificherò questo file modello index.html.erb e aggiungerò la mia ricetta ad esso. Fare riferimento all'esempio di seguito:

Vai alla directory predefinita

Eseguire Questo:

cd / root / chef-repo / cookbook / httpd_deploy / templates / default

Qui, modifica il modello index.html.erb utilizzando qualsiasi editor con cui ti senti a tuo agio. Userò l'editor di vim.

Eseguire Questo:

vim index.html.erb

Ora aggiungi quanto segue:

Benvenuto in Chef Apache Deployment

Passaggio 6: Ccrea una ricetta con questo modello.

Vai alla directory Ricette.

Esegui t il suo:

cd / root / chef-repo / cookbooks / httpd_deploy / ricette

Ora modifica il file default.rb utilizzando qualsiasi editor che desideri. Userò l'editor di vim.

Eseguire Questo:

vim default.rb

Qui aggiungi quanto segue:

pacchetto 'httpd' servizio 'httpd' esegui azione [: enable,: start] end template '/var/www/html/index.html' do source 'index.html.erb' end

Ora tornerò alla mia cartella chef-repo ed eseguirò / testerò la mia ricetta sulla mia workstation.

Eseguire Questo:

cd / root / chef-repo chef-client --local-mode --runlist 'ricetta [httpd_deploy]'

Secondo la mia ricetta, Apache è installato sulla mia workstation, il servizio viene avviato e abilitato all'avvio. Anche un file modello è stato creato nella mia root del documento predefinita.

Ora che ho testato la mia workstation. È ora di configurare Chef Server.

Passaggio 7: Imposta Chef Server

Userò la versione ospitata di Chef Server sul cloud ma puoi usare anche una macchina fisica. Questo Chef-Server è presente a manage.chef.io

Qui crea un account se non ne hai uno. Dopo aver creato un account, accedi con le tue credenziali di accesso.

Ecco come appare Chef Server.

Se accedi per la prima volta, la prima cosa che farai è creare un'organizzazione. L'organizzazione è fondamentalmente un gruppo di macchine che gestirai con Chef Server.

Per prima cosa, vado alla scheda di amministrazione. Laggiù, ho già creato un'organizzazione chiamata edu. Quindi devo scaricare lo starter kit nella mia workstation. Questo starter kit ti aiuterà a trasferire i file dalla workstation allo Chef Server. Fare clic sull'icona delle impostazioni sul lato destro e fare clic su Starter Kit.

Quando fai clic lì, avrai un'opzione per scaricare lo Starter Kit. Basta fare clic su di esso per scaricare il file zip dello Starter Kit.

Sposta questo file nella tua directory principale.Ora decomprimi questo file zip usando il comando unzip nel tuo terminale. Noterai che include una directory chiamata chef-repo.

Eseguire Questo:

decomprimere chef-starter.zip

Ora sposta questo starter kit nella directory del ricettario nella directory chef-repo.

Eseguire Questo:

mv starter / root / chef-repo / ricettario

I libri di cucina dello chef sono disponibili nel supermercato dei libri di cucina, possiamo andare al supermercato dello chef. Scarica i libri di cucina richiesti da supermarket.chef.io . Sto scaricando uno dei Cookbook per installare Apache da lì.

Eseguire e t h è:

cd chef-repo coltello sito ricettario download learn_chef_httpd

C'è Tar ball scaricato per Apache Cookbook. Ora, dobbiamo estrarre il contenuto da questo file Tar scaricato. Per questo, userò il comando tar.

tar -xvf learn_chef_httpd-0.2.0.tar.gz

Tutti i file richiesti vengono creati automaticamente in questo ricettario. Non è necessario apportare modifiche. Controlliamo la descrizione della ricetta nella cartella delle mie ricette.

Esegui t h è :

cd / root / chef-repo / learn_chef_httpd / ricette cat default.rb

Ora, caricherò questo libro di cucina sul mio Chef Server perché mi sembra perfetto.

Passaggio 8: Carica il ricettario su Chef Server.

Per caricare l'Apache Cookbook che ho scaricato, sposta prima questo file learn_chef_httpd nella cartella Cookbooks in chef-repo. Quindi cambia la tua directory in libri di cucina.

Esegui t h è :

mv / root / chef-repo / learn_chef_httpd / root / chef-repo / cookbooks

Ora spostati in questa directory di libri di cucina.

Esegui questo:

libri di cucina cd

Ora in questa directory, esegui il comando seguente per caricare Apache Cookbooper:

Exec ute t h è:

caricamento del libro di cucina del coltello learn_chef_httpd

Verifica il ricettario dalla console di gestione di Chef Server. Nella sezione policy, troverai il ricettario che hai caricato. Fare riferimento allo screenshot qui sotto:

Ora il nostro passaggio finale è aggiungere Chef Node. Ho configurato una workstation, un server chef e ora devo aggiungere i miei client a chef server per l'automazione.

Passaggio 9: Aggiunta di Chef Node a Chef Server.

A scopo dimostrativo userò una macchina CentOS come Chef Node. Possono esserci centinaia di nodi collegati a uno Chef Server. Il colore del terminale della mia macchina Node è diverso dalla Workstation in modo da poter distinguere tra entrambi.

Ho solo bisogno dell'indirizzo IP del mio nodo per eseguire il comando seguente nella mia macchina Nodee.

Exec u t e t h è:

ifconfig

Aggiungerò il mio Chef Node al Server eseguendo il comando Knife Bootstrap in cui specificherò l'indirizzo IP di The Chef Node e il suo nome. Eseguire il comando mostrato sopranel:

Exec ute t h è:

coltello bootstrap 192.168.56.102 --ssh-user root --ssh-password edureka --node-name chefNode

Questo comando inizializzerà anche l'installazione di Chef-Client in Chef Node. Puoi verificarlo dalla CLI sulla Workstation usando il comando knife, come mostrato di seguitonel:

come uscire da un metodo in java

Exec ute t h è:

Elenco dei nodi dei coltelli

Puoi anche verificare da Chef Server. Vai alla scheda dei nodi nella tua Console di gestione del server, qui noterai che il nodo che hai aggiunto è presente. Fare riferimento allo screenshot qui sotto.

Passaggio 10: Gestisci elenco di esecuzione dei nodi

Vediamo come possiamo aggiungere un ricettario al nodo e gestire la sua Run list da Chef Server. Come puoi vedere nello screenshot qui sotto, fai clic sulla scheda Azioni e seleziona l'opzione Modifica elenco di esecuzione per gestire l'elenco di esecuzione.

Nelle ricette disponibili, puoi vedere la nostra ricetta learn_chef_httpd, puoi trascinarla dai pacchetti disponibili alla Run List corrente e salvare la Run list.

Ora accedi al tuo nodo ed esegui semplicemente chef-client per eseguire Run List.

Exec ute t h è:

cliente principale

Spero che questo tutorial di Chef ti sia piaciuto e che abbia imparato come utilizzare Chef per configurare centinaia di nodi. Chef sta giocando un ruolo fondamentale in molte organizzazioni per ottenere DevOps. Con Chef le organizzazioni stanno rilasciando applicazioni più frequentemente e reliabbicchiere.

Se hai trovato questo blog su ' Tutorial dello chef 'Rilevante, 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 DevOps Edureka aiuta gli studenti ad acquisire esperienza in vari processi e strumenti DevOps come Puppet, Chef, Jenkins, Nagios e GIT per l'automazione di più passaggi in SDLC.