Tutorial bucătar - Transformați infrastructura în cod



Chef Tutorial este al doilea blog al seriei de bloguri Chef. Acest blog explică arhitectura bucătarului și componentele bucătarului, precum cărți de bucate, rețete etc., cu exemple.

Tutorial bucătar

Chef Tutorial este al doilea blog al seriei de bloguri Chef. In al meu blogul anterior Am explicat ce este Chef, Configuration Management și cum Chef realizează Configuration Management cu ajutorul unui caz de utilizare al lui Gannett.

În acest tutorial pentru bucătar, vor fi abordate următoarele subiecte:





Sunt sigur că după ce am citit-o blogul anterior trebuie să fii curios să știi exact cum funcționează Chef. Prima secțiune a acestui blog Tutorial bucătar vă va explica în detaliu arhitectura bucătarului, care vă va șterge toate îndoielile.



Tutorial bucătar - Arhitectură bucătar

Așa cum se arată în diagrama de mai jos, există trei componente majore ale bucătarului:

  • Stație de lucru
  • Server
  • Noduri

Arhitectura bucătarului - Tutorial bucătar - Edureka

Tutorial bucătar - stație de lucru



Stația de lucru este locația din care sunt toate configurațiile Chefgestionate. Această mașină deține toate datele de configurare care pot fi ulterior împinse pe serverul Chef central. Aceste configurații sunt testate în stația de lucru înainte de a o împinge în Chef Server. O stație de lucru constă dintr-un instrument de linie de comandă numit Cuţit, care este folosit pentru a interacționa cu Chef Server. Pot exista mai multe stații de lucru care gestionează împreună Chef Server central.

Stațiile de lucru sunt responsabile pentru îndeplinirea funcțiilor de mai jos:

  • Scrierea cărților de bucate și a rețetelor care vor fi ulterior împinse pe serverul Chef central
  • Gestionarea nodurilor pe serverul Chef central

Acum, să înțelegem punctele menționate mai sus unul câte unul.

Scrierea cărților de bucate și a rețetelor care vor fi ulterior împinse pe serverul Chef central

Rețete: O rețetă este o colecție de resurse care descrie o anumită configurație sau politică. Descrie tot ceea ce este necesar pentru a configura o parte a unui sistem. Utilizatorul scrie Rețete care descriu modul în care Chef gestionează aplicațiile și utilitățile (cum ar fi Apache HTTP Server, MySQL sau Hadoop) și modul în care acestea trebuie configurate.

Aceste Rețete descriu o serie de resurse care ar trebui să se afle într-o anumită stare, adică pachete care ar trebui instalate, servicii care ar trebui să ruleze sau fișiere care ar trebui scrise.

Mai târziu în blog , Vă voi arăta cum să scrieți o rețetă pentru a instala pachetul Apache2 pe Chef Nodes, scriind un cod rubin în Chef Workstation.

Cărți de bucate: Mai multe rețete pot fi grupate împreună pentru a forma o carte de bucate. O carte de bucate definește un scenariu și conține tot ceea ce este necesar pentru a susține acest scenariu:

  • Rețete, care specifică resursele de utilizat și ordinea în care urmează să fie aplicate
  • Valorile atributelor
  • Distribuții de fișiere
  • Șabloane
  • Extensii pentru Chef, cum ar fi biblioteci, definiții și resurse personalizate

Gestionarea nodurilor pe serverul Chef central

Sistemul stației de lucru va avea utilitățile necesare pentru linia de comandă, pentru a controla și gestiona fiecare aspect al serverului Chef central. Lucruri precum adăugarea unui nou nod la serverul Chef central, ștergerea unui nod de la serverul Chef central, modificarea configurațiilor nodului etc. pot fi gestionate de la stația de lucru în sine.

Să vedem acum ce componente ale stației de lucru sunt necesare pentru a îndeplini funcțiile de mai sus.

Stațiile de lucru au două componente majore:

Utilitatea cuțitului: Acest instrument de linie de comandă poate fi utilizat pentru a comunica cu Chef Server central de la stația de lucru. Adăugarea, eliminarea, modificarea configurațiilor nodurilor într-un server Chef central se va efectua folosind acest utilitar Knife. Folosind utilitarul Cuțit, cărțile de bucate pot fi încărcate pe un server Chef central și roluri, mediile pot fi, de asemenea, gestionate. Practic, fiecare aspect al serverului Chef central poate fi controlat de pe stația de lucru folosind utilitarul Knife.

Un depozit local de bucătari: Acesta este locul în care este stocată fiecare componentă de configurare a serverului Chef central. Acest depozit Chef poate fi sincronizat cu serverul Chef central (din nou folosind utilitarul cuțit în sine).

Tutorial Chef - Chef Server

Serverul Chef acționează ca un hub pentru datele de configurare. Serverul Chef stochează cărțile de bucate, politicile care sunt aplicate nodurilor și metadatele care descriu fiecare nod înregistrat care este administrat de Chef-Client.

Nodurile utilizează Chef-Client pentru a solicita serverului Chef detalii de configurare, cum ar fi Rețete, Șabloane și distribuții de fișiere. Chef-Client face apoi cât mai mult din configurația posibilă pe nodurile în sine (și nu pe Chef Server). Fiecare nod are instalat un software Chef Client, care va trage în jos configurația de pe serverul Chef central care este aplicabilă acelui nod. Această abordare scalabilă distribuie efortul de configurare în întreaga organizație.

Tutorial bucătar - noduri bucătar

Nodurile pot fi un server virtual bazat pe cloud sau un server fizic în propriul dvs. centru de date, care este gestionat folosind Chef Server central. Componenta principală care trebuie să fie prezentă pe nod este un agent care va stabili comunicarea cu Chef Server central. Aceasta se numește Chef Client.

Chef Client îndeplinește următoarele funcții:

  • Este responsabil pentru interacțiunea cu serverul Chef central.
  • Gestionează înregistrarea inițială a nodului pe serverul Chef central.
  • Trage în jos cărțile de bucate și le aplică pe nod, pentru ao configura.
  • Interogarea periodică a serverului Chef central pentru a prelua elemente de configurare noi, dacă există.

Faceți clic aici pentru a afla cum să instalați Chef Server, Workstation și Node

Tutorial Chef - Avantajele Chef:

Acest tutorial pentru bucătar va fi incomplet dacă nu includ avantajele cheie ale bucătarului:

  • Puteți automatiza o întreagă infrastructură folosind Chef. Toate sarcinile care au fost efectuate manual, pot fi acum efectuate prin instrumentul Chef.
  • Puteți configura mii de noduri în câteva minute folosind Chef.
  • Automatizarea bucătarului funcționează cu majoritatea ofertelor publice de cloud, cum ar fi .
  • Chef nu numai că va automatiza lucrurile, dar va ține și sistemele sub control constant și va confirma că sistemul este de fapt configurat așa cum este necesar (Chef Agent / Client face această treabă). Dacă cineva greșește modificând un fișier, Chef îl va corecta.
  • O întreagă infrastructură poate fi înregistrată sub forma unui depozit Chef, care poate fi folosit ca plan pentru a recrea infrastructura de la zero.

Sper că ți-a plăcut acest tutorial de bucătar până acum, suficient cu postările teoretice! lasă-ne să ne distram cu mâinile.

Tutorial bucătar | Noțiuni introductive despre Chef | Edureka

Tutorial bucătar - Hands-On

Aici vă voi explica cum să creați o rețetă, o carte de bucate și un șablon în stația de lucru Chef. De asemenea, vă voi explica cum să implementați o carte de bucate de la stația de lucru la Chef-Client (Chef Node).

Folosesc două imagini virtuale, una pentru Chef Workstation și alta pentru Chef Node. Pentru Chef Server voi folosi versiunea găzduită de Chef (pe cloud). De asemenea, puteți utiliza o mașină fizică și pentru Chef Server.

Pasul 1: Instalați Chef DK (kit de dezvoltare) în stația de lucru Chef.

Chef DK este un pachet care conține toate instrumentele de dezvoltare de care veți avea nevoie atunci când codificați Chef. Iată linkul de descărcat Chef DK .

Aici, alegeți sistemul de operare pe care îl utilizați. Folosesc CentOS 6.8. Deci, voi da clic pe Red Hat Enterprise Linux .

Copiați linkul în funcție de versiunea CentOS pe care o utilizați. Folosesc CentOS 6, deoarece puteți vedea că am evidențiat în captura de ecran de mai sus.

Mergeți la terminalul stației de lucru și descărcați Chef DK utilizând comanda wget și lipiți linkul.

Executați acest lucru:

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

Pachetul este acum descărcat. Este timpul să instalați acest pachet folosind rpm.

Executați acest lucru:

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

Chef DK este acum instalat în stația mea de lucru.

Pasul 2: Creați o rețetă în stația de lucru

Să începem prin a crea o rețetă în stația de lucru și să o testăm local pentru a ne asigura că funcționează.Creați un folder numit chef-repo. Ne putem crea Rețetele în acest folder.

Executați acest lucru:

mkdir chef-repo cd chef-repo

În acest director bucătar-repo voi crea o Rețetă numită edureka.rb. .rb este extensia utilizată pentru rubin. Voi folosi editorul vim, puteți utiliza orice alt editor pe care îl doriți, cum ar fi gedit, emac, vi etc.

Executați acest lucru:

vim edureka.rb

Aici adăugați următoarele:

fișierul „/ etc / motd” content „Bine ați venit la Chef”

Acest Recipe este dureka .rb creează un fișier numit / etc / motd cu conținutul „Bun venit la Chef”.

Acum voi folosi această rețetă pentru a verifica dacă funcționează.

A executa acest:

bucătar-aplică edureka.rb

Deci, există un fișier creat în chef-repo care are conținut Bun venit la Chef.

Pasul 3: Mfișier de rețetă odificant pentru a instala pachetul httpd

Voi modifica Rețeta pentru a instala pachetul httpd pe stația mea de lucru și voi copia un fișier index.html în rădăcina implicită a documentului pentru a confirma instalarea. Acțiunea implicită pentru o resursă de pachet este instalarea, prin urmare nu trebuie să specific acea acțiune separat.

A executa acest:

vim edureka.rb

Aici adăugați următoarele:

pachetul „serviciu httpd” httpd „faceți acțiunea [: activați,: începeți] fișierul final” /var/www/html/index.html „faceți conținutul„ Bine ați venit la Apache în Chef ”

Acum voi aplica aceste configurații executând comanda de mai jos:

A executa acest:

bucătar-aplică edureka.rb

Execuția comenzii descrie în mod clar fiecare instanță din Rețetă. Instalează pachetul Apache, activează și pornește serviciul httpd pe stația de lucru. Și creează un fișier index.html în rădăcina implicită a documentului cu conținutul „Bun venit la Apache în Chef”.

Acum confirmați instalarea Apache2 deschizând browserul web. Tastați adresa IP publică sau numele gazdei. În cazul meu, este localhost.

Pasul 4: Acum vom crea prima noastră carte de bucate.

Creați un director numit cărți de bucate și executați comanda de mai jos pentru a genera Cartea de bucate.

A executa acest:

mkdir cookbooks cd cookbooks chef genera carte de bucate httpd_deploy

httpd_deploy este un nume dat cărții de bucate. Puteți da orice nume doriți.

Să trecem la acest nou director httpd_deploy.

A executa acest:

cd httpd_deploy

Acum, să vedem structura fișierelor cărții de bucate create.

A executa acest:

copac

Pasul 5: Creluați un fișier șablon.

Anterior, am creat un fișier cu un conținut, dar care nu se potrivește cu structurile mele de Rețete și cărți de bucate. Deci, să vedem cum putem crea un șablon pentru pagina index.html.

A executa acest:

chef generează șablonul httpd_deploy index.html

Acum, dacă vedeți structura fișierului meu din Cookbook, există un folder creat cu șabloanele de nume cu fișierul index.html.erb. Voi edita acest fișier șablon index.html.erb și voi adăuga Rețeta mea la el. Consultați exemplul de mai jos:

Accesați directorul implicit

A executa acest:

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

Aici, editați șablonul index.html.erb utilizând orice editor cu care vă simțiți confortabil. Voi folosi editorul vim.

A executa acest:

vim index.html.erb

Acum adăugați următoarele:

Bine ați venit la Chef Apache Deployment

Pasul 6: Creluați o Rețetă cu acest șablon.

Accesați directorul Rețete.

Executați t a lui:

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

Acum editați fișierul default.rb utilizând orice editor doriți. Voi folosi editorul vim.

A executa acest:

vim implicit.rb

Aici adăugați următoarele:

pachetul „httpd” serviciu „httpd” face acțiune [: activate,: start] șablon final ”/var/www/html/index.html„ face sursă ”index.html.erb” sfârșit

Acum mă voi întoarce la folderul meu bucătar-repo și îmi voi rula / testa rețeta pe stația mea de lucru.

diferența dintre suprascriere și suprasarcină

A executa acest:

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

Conform Rețetei mele, Apache este instalat pe stația mea de lucru, serviciul este pornit și activat la pornire. De asemenea, un fișier șablon a fost creat pe rădăcina mea implicită a documentului.

Acum că mi-am testat stația de lucru. Este timpul să configurați Chef Server.

Pasul 7: Configurare server Chef

Voi folosi versiunea găzduită de Chef Server pe cloud, dar puteți utiliza și o mașină fizică. Acest Chef-Server este prezent la manage.chef.io

Aici creați un cont dacă nu aveți unul. După ce ați creat un cont, conectați-vă cu datele de conectare.

Așa arată Chef Server.

Dacă vă conectați pentru prima dată, primul lucru pe care îl veți face este crearea unei organizații. Organizarea este practic un grup de Mașini pe care le veți gestiona cu Chef Server.

În primul rând, voi merge la fila de administrare. Acolo am creat deja o organizație numită edu. Așadar, trebuie să descarc kitul de pornire în stația mea de lucru. Acest kit de pornire vă va ajuta să împingeți fișiere de pe stația de lucru pe serverul Chef. Faceți clic pe pictograma de setări din partea dreaptă și faceți clic pe Starter Kit.

Când faceți clic acolo veți obține o opțiune de descărcare a kitului de pornire. Doar faceți clic pe acesta pentru a descărca fișierul zip Starter Kit.

Mutați acest fișier în directorul rădăcină.Acum dezarhivați acest fișier zip utilizând comanda dezarhivați în terminalul dvs. Veți observa că include un director numit chef-repo.

A executa acest:

dezarhivați chef-starter.zip

Acum mutați acest kit de pornire în directorul cărții de bucate din directorul bucătar-repo.

A executa acest:

mv starter / root / chef-repo / cookbook

Cărțile de bucătărie ale bucătarului sunt disponibile în Super Market Market, putem merge la Chef SuperMarket. Descărcați cărțile de bucate necesare de la supermarket.chef.io . Descarc una dintre cărțile de bucate pentru a instala Apache de acolo.

Execut e t h este:

cd bucătar-repo cuțit site de cărți de bucate descărcare learn_chef_httpd

Există o minge Tar descărcată pentru Cartea de bucate Apache. Acum, trebuie să extragem conținutul din acest fișier descărcat Tar. Pentru asta, voi folosi comanda tar.

tar -xvf learn_chef_httpd-0.2.0.tar.gz

Toate fișierele necesare sunt create automat în această carte de bucate. Nu este nevoie să faceți modificări. Să verificăm descrierea rețetei din dosarul meu de rețete.

Executați t h este :

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

Acum, voi încărca doar această carte de bucate pe serverul meu Chef, deoarece mi se pare perfectă.

Pasul 8: Încărcați carte de bucate pe serverul Chef.

Pentru a încărca cartea de bucate Apache pe care am descărcat-o, mutați mai întâi acest fișier learn_chef_httpd în folderul Cărți de bucate din bucătar-repo. Apoi schimbați-vă directorul în cărți de bucate.

Executați t h este :

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

Acum treceți la acest director de cărți de bucate.

Executați acest lucru:

cărți de bucate cd

Acum, în acest director, executați comanda de mai jos pentru a încărca Apache Cookboola:

Exec ute t h este:

cutie de bucate cu cutie upload learn_chef_httpd

Verificați Cartea de bucate din consola Chef Server Management. În secțiunea de politici, veți găsi Cartea de bucate pe care ați încărcat-o. Consultați captura de ecran de mai jos:

Acum ultimul nostru pas este să adăugăm Chef Node. Am configurat o stație de lucru, un server Chef și acum trebuie să-mi adaug clienții pe serverul Chef pentru automatizare.

Pasul 9: Adăugarea nodului bucătarului pe serverul bucătarului.

În scop demonstrativ, voi folosi o mașină CentOS ca Chef Node. Pot exista sute de noduri conectate la un singur server Chef. Culoarea terminalului mașinii mele Node este diferită de stația de lucru, astfel încât să puteți face diferența între ambele.

Am nevoie doar de adresa IP a nodului meu, pentru că voi executa comanda de mai jos în mașina mea de nodeste.

Exec tu t este t h este:

ifconfig

Îmi voi adăuga nodul Chef pe server executând comanda Knife Bootstrap în care voi specifica adresa IP a nodului Chef și numele acestuia. Executați comanda afișată beloîn:

Exec ute t h este:

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

Această comandă va inițializa și instalarea Chef-Client în nodul Chef. Puteți să o verificați din CLI pe stația de lucru folosind comanda cuțit, așa cum se arată în beloîn:

Exec ute t h este:

Lista nodurilor cuțitului

Puteți verifica, de asemenea, de pe Chef Server. Accesați fila noduri din consola de administrare a serverului, aici veți observa că nodul pe care l-ați adăugat este prezent. Consultați captura de ecran de mai jos.

Pasul 10: Gestionați lista de rulare a nodurilor

Să vedem cum putem adăuga o carte de bucate în nod și cum să gestionăm lista de rulare a acestuia de pe Chef Server. După cum puteți vedea în captura de ecran de mai jos, faceți clic pe fila Acțiuni și selectați opțiunea Editați lista de rulare pentru a gestiona lista de rulare.

În Rețetele disponibile, puteți vedea Rețeta noastră learn_chef_httpd, puteți să o trageți din pachetele disponibile în lista curentă de rulare și să salvați lista Run.

Acum conectați-vă la nodul dvs. și rulați doar bucătar-client pentru a executa Run List.

Exec ute t h este:

client șef

Sper că ți-a plăcut acest tutorial pentru bucătar și ai aflat cum poate fi folosit Chef pentru a configura sute de noduri. Chef joacă un rol vital în multe organizații pentru a realiza DevOps. Cu Chef, organizațiile lansează aplicații mai frecvent și se bazeazăbsticlă.

Dacă ați găsit acest blog pe „ Tutorial bucătar ”Relevant, verificați de Edureka, o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul. Cursul Edureka DevOps Certification Training ajută cursanții să câștige expertiză în diferite procese și instrumente DevOps, cum ar fi Puppet, Chef, Jenkins, Nagios și GIT pentru automatizarea mai multor pași în SDLC.