Chef Tutorial - Transform Infrastructure In Code

Chef Tutorial er den anden blog i Chef blog-serien. Denne blog forklarer Chef-arkitektur og Chef-komponenter som kogebøger, opskrifter osv. Med eksempler.

Chef Tutorial

Chef Tutorial er den anden blog i Chef blog-serien. I min forrige blog , Jeg har forklaret, hvad der er Chef, Configuration Management, og hvordan Chef opnår Configuration Management ved hjælp af en use-case af Gannett.



I denne kokkevejledning vil følgende emner blive dækket:



Jeg er sikker på efter at have læst min forrige blog du skal være nysgerrig efter at vide, hvordan kok fungerer nøjagtigt. Den første sektion af denne Chef Tutorial-blog vil forklare dig Chef-arkitekturen detaljeret, hvilket vil fjerne al din tvivl.



Chef Tutorial - Chef Architecture

Som vist i nedenstående diagram er der tre hovedkomponenter:

  • Arbejdsstation
  • Server
  • Knuder

Chef Architecture - Chef Tutorial - Edureka

Chef Tutorial - Workstation



Arbejdsstationen er det sted, hvorfra alle Chef-konfigurationer erlykkedes. Denne maskine indeholder alle konfigurationsdata, der senere kan skubbes til den centrale Chef Server. Disse konfigurationer testes i arbejdsstationen, inden de skubbes ind i Chef Server. En arbejdsstation består af et kaldet kommandolinjeværktøj Kniv, der bruges til at interagere med Chef Server. Der kan være flere arbejdsstationer, der tilsammen administrerer den centrale Chef Server.

Arbejdsstationer er ansvarlige for at udføre nedenstående funktioner:

  • Skrive kogebøger og opskrifter, der senere vil blive skubbet til den centrale Chef Server
  • Håndtering af noder på den centrale Chef Server

Lad os nu forstå de ovennævnte punkter en efter en.

Skrive kogebøger og opskrifter, der senere vil blive skubbet til den centrale Chef Server

Opskrifter: En opskrift er en samling ressourcer, der beskriver en bestemt konfiguration eller politik. Den beskriver alt, hvad der kræves for at konfigurere en del af et system. Brugeren skriver opskrifter, der beskriver, hvordan Chef administrerer applikationer og hjælpeprogrammer (såsom Apache HTTP Server, MySQL eller Hadoop), og hvordan de skal konfigureres.

Disse opskrifter beskriver en række ressourcer, der skal være i en bestemt tilstand, dvs. pakker, der skal installeres, tjenester, der skal køre, eller filer, der skal skrives.

Senere i bloggen , Jeg vil vise dig, hvordan du skriver en opskrift for at installere Apache2-pakke på Chef-noder ved at skrive en rubinkode i Chef Workstation.

forskelle mellem abstrakt klasse og interface

Kogebøger: Flere opskrifter kan grupperes sammen for at danne en kogebog. En kogebog definerer et scenario og indeholder alt, hvad der kræves for at understøtte dette scenario:

  • Opskrifter, der specificerer ressourcerne, der skal bruges, og i hvilken rækkefølge de skal anvendes
  • Attributværdier
  • Filfordelinger
  • Skabeloner
  • Udvidelser til Chef, såsom biblioteker, definitioner og tilpassede ressourcer

Håndtering af noder på den centrale Chef Server

Workstation-systemet har de nødvendige kommandolinjeværktøjer til at styre og administrere alle aspekter af den centrale Chef Server. Ting som at tilføje en ny node til den centrale Chef-server, slette en node fra den centrale Chef-server, ændre Node-konfigurationer osv. Kan alle styres fra selve arbejdsstationen.

Lad os nu se, hvilke komponenter i Workstation der kræves for at udføre ovenstående funktioner.

Arbejdsstationer har to hovedkomponenter:

Knivværktøj: Dette kommandolinjeværktøj kan bruges til at kommunikere med den centrale Chef Server fra Workstation. Tilføjelse, fjernelse, ændring af konfigurationer af noder i en central Chef Server udføres ved hjælp af dette knivværktøj. Ved hjælp af Knife-hjælpeprogrammet kan kogebøger uploades til en central Chef Server og roller, og miljøer kan også administreres. Dybest set kan ethvert aspekt af den centrale Chef Server styres fra Workstation ved hjælp af Knife-værktøjet.

Et lokalt koklager: Dette er stedet, hvor hver konfigurationskomponent i den centrale Chef Server er gemt. Dette Chef-arkiv kan synkroniseres med den centrale Chef Server (igen ved hjælp af selve knivværktøjet).

Chef Tutorial - Chef Server

Chef-serveren fungerer som et knudepunkt for konfigurationsdata. Chef-serveren gemmer kogebøger, de politikker, der anvendes på knudepunkter, og metadata, der beskriver hver registreret knude, der administreres af Chef-klienten.

Noder bruger Chef-Client til at bede Chef Server om konfigurationsoplysninger, såsom opskrifter, skabeloner og filfordelinger. Chef-klienten udfører så meget af konfigurationsarbejdet som muligt på selve noderne (og ikke på Chef-serveren). Hver node har en Chef Client-software installeret, som trækker konfigurationen ned fra den centrale Chef Server, der er relevant for den node. Denne skalerbare tilgang fordeler konfigurationsindsatsen i hele organisationen.

Chef Tutorial - Chef Nodes

Noder kan være en skybaseret virtuel server eller en fysisk server i dit eget datacenter, der administreres ved hjælp af den centrale Chef Server. Hovedkomponenten, der skal være til stede på noden, er en agent, der etablerer kommunikation med den centrale Chef Server. Dette kaldes Chef Client.

Chef Client udfører følgende funktioner:

  • Det er ansvarligt for at interagere med den centrale Chef Server.
  • Det administrerer den oprindelige registrering af noden til den centrale Chef Server.
  • Det trækker kogebøger ned og anvender dem på noden for at konfigurere det.
  • Periodisk afstemning af den centrale Chef Server for at hente nye konfigurationselementer, hvis der er nogen.

Klik her for at lære, hvordan du installerer Chef Server, Workstation og Node

Chef Tutorial - Fordele ved Chef:

Denne Chef-tutorial vil være ufuldstændig, hvis jeg ikke inkluderer de vigtigste fordele ved Chef:

  • Du kan automatisere en hel infrastruktur ved hjælp af Chef. Alle opgaver, der blev udført manuelt, kan nu udføres via Chef-værktøjet.
  • Du kan konfigurere tusindvis af noder inden for få minutter ved hjælp af Chef.
  • Kokken automatisering fungerer med de fleste af de offentlige cloud-tilbud som .
  • Chef vil ikke kun automatisere ting, men vil også holde systemerne under konstant kontrol og bekræfte, at systemet faktisk er konfigureret, som det kræves (Chef Agent / Client gør dette job). Hvis nogen laver en fejl ved at ændre en fil, retter kokken den.
  • En hel infrastruktur kan registreres i form af et Chef-arkiv, der kan bruges som en plan for at genskabe infrastrukturen fra bunden.

Jeg håber, du har haft denne Chef-tutorial indtil nu, nok med de teoretiske stillinger! lad os have det sjovt med hands-on.

Kok Tutorial | Kom godt i gang med kokken | Edureka

Kok Tutorial - Hands-On

Her vil jeg forklare dig, hvordan du opretter en opskrift, kogebog og skabelon i Chef Workstation. Jeg vil også forklare dig, hvordan du implementerer en kogebog fra Workstation til Chef-Client (Chef Node).

Jeg bruger to virtuelle billeder, en til Chef Workstation og en til Chef Node. Til Chef Server bruger jeg den hostede version af Chef (i skyen). Du kan også bruge en fysisk maskine til Chef Server.

Trin 1: Installer Chef DK (Development Kit) i din Chef Workstation.

Chef DK er en pakke, der indeholder alle de udviklingsværktøjer, du har brug for, når du koder Chef. Her er linket til download Chef DK .

Vælg her det operativsystem, du bruger. Jeg bruger CentOS 6.8. Så jeg klikker på Red Hat Enterprise Linux .

Kopier linket i henhold til den version af CentOS, du bruger. Jeg bruger CentOS 6, som du kan se, at jeg har fremhævet i ovenstående skærmbillede.

Gå til din Workstation-terminal, og download Chef DK ved hjælp af wget-kommandoen, og indsæt linket.

Udfør dette:

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

Pakken er nu downloadet. Det er på tide at installere denne pakke ved hjælp af rpm.

Udfør dette:

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

Chef DK er nu installeret i min arbejdsstation.

Trin 2: Opret en opskrift på arbejdsstationen

Lad os starte med at oprette en opskrift i arbejdsstationen og teste den lokalt for at sikre, at den fungerer.Opret en mappe ved navn chef-repo. Vi kan oprette vores opskrifter inde i denne mappe.

Udfør dette:

mkdir chef-repo cd chef-repo

I denne chef-repo-mappe opretter jeg en opskrift med navnet edureka.rb. .rb er den udvidelse, der bruges til rubin. Jeg bruger vim editor, du kan bruge en hvilken som helst anden editor, som du vil have som gedit, emac, vi osv.

Udfør dette:

vim edureka.rb

Her tilføjes følgende:

fil '/ etc / motd' indhold 'Velkommen til Chef' slutningen

Denne Recipe er dureka .rb opretter en fil med navnet / etc / motd med indholdet 'Welcome to Chef'.

Nu bruger jeg denne opskrift til at kontrollere, om den fungerer.

Udfør dette:

kok-anvend edureka.rb

Så der er en fil oprettet i chef-repo, der har indhold Velkommen til kok.

Trin 3: Modifying Opskriftsfil for at installere httpd-pakke

Jeg vil ændre opskriften for at installere httpd-pakken på min arbejdsstation og kopiere en index.html-fil til standarddokumentrod for at bekræfte installationen. Standardhandlingen for en pakkeressource er installation, hvorfor jeg ikke behøver at specificere den handling separat.

Udfør dette:

vim edureka.rb

Herover tilføj følgende:

pakke 'httpd' service 'httpd' udfør handling [: aktiver,: start] slutfil '/var/www/html/index.html' gør indhold 'Velkommen til Apache i Chef' ende

Nu vil jeg anvende disse konfigurationer ved at udføre nedenstående kommando:

Udfør dette:

kok-anvend edureka.rb

Kommandoudførelsen beskriver tydeligt hver forekomst i opskriften. Det installerer Apache-pakken, aktiverer og starter httpd-tjenesten på arbejdsstationen. Og det opretter en index.html-fil i standarddokumentroden med indholdet 'Velkommen til Apache i Chef'.

Bekræft nu installationen af ​​Apache2 ved at åbne din webbrowser. Indtast din offentlige IP-adresse eller navnet på din vært. I mit tilfælde er det localhost.

Trin 4: Nu opretter vi vores første kogebog.

Opret en mappe kaldet kogebøger, og udfør kommandoen nedenfor for at generere kogebogen.

Udfør dette:

mkdir kogebøger cd kogebøger kokken genererer kogebog httpd_deploy

httpd_deploy er et navn, der er givet til kogebogen. Du kan give et hvilket som helst navn, du ønsker.

Lad os flytte til denne nye mappe httpd_deploy.

Udfør dette:

cd httpd_deploy

Lad os nu se filstrukturen for den oprettede kogebog.

Udfør dette:

træ

Trin 5: Cgentag en skabelonfil.

Tidligere oprettede jeg en fil med noget indhold, men det passer ikke med mine opskrifter og kogebogstrukturer. Så lad os se, hvordan vi kan oprette en skabelon til index.html-siden.

Udfør dette:

kokken genererer skabelon httpd_deploy index.html

Hvis du nu ser min cookbook-filstruktur, er der en mappe oprettet med navnskabeloner med index.html.erb-fil. Jeg vil redigere denne index.html.erb skabelonfil og føje min opskrift til den. Se eksemplet nedenfor:

Gå til standardmappen

Udfør dette:

cd / root / chef-repo / kogebog / httpd_deploy / skabeloner / standard

Herover skal du redigere index.html.erb-skabelonen ved hjælp af en hvilken som helst editor, du er fortrolig med. Jeg bruger vim editor.

Udfør dette:

vim index.html.erb

Tilføj nu følgende:

Velkommen til Chef Apache Deployment

Trin 6: Cgentag en opskrift med denne skabelon.

Gå til biblioteket Opskrifter.

Udfør t hans:

cd / root / chef-repo / kogebøger / httpd_deploy / opskrifter

Rediger nu standard.rb-filen ved hjælp af den ønskede editor. Jeg bruger vim editor.

Udfør dette:

vim default.rb

Herover tilføj følgende:

pakke 'httpd' service 'httpd' udfør handling [: aktiver,: start] slutskabelon '/var/www/html/index.html' do source 'index.html.erb' end

Nu vil jeg gå tilbage til min chef-repo-mappe og køre / teste min opskrift på min arbejdsstation.

Udfør dette:

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

Ifølge min opskrift er Apache installeret på min arbejdsstation, tjenesten startes og aktiveres ved opstart. Der er også oprettet en skabelonfil på min standarddokumentrod.

Nu hvor jeg har testet min arbejdsstation. Det er tid til at konfigurere Chef Server.

Trin 7: Opsæt Chef Server

Jeg vil bruge den hostede version af Chef Server i skyen, men du kan også bruge en fysisk maskine. Denne Chef-Server er til stede på administrere.chef.io

Opret her en konto, hvis du ikke har en. Når du har oprettet en konto, skal du logge ind med dine loginoplysninger.

Sådan ser Chef Server ud.

hvad er en dødvande i java

Hvis du logger ind for første gang, er det allerførste, du skal gøre, at oprette en organisation. Organisation er dybest set en gruppe maskiner, som du administrerer med Chef Server.

Først går jeg til fanen Administration. Derovre har jeg allerede oprettet en organisation kaldet edu. Så jeg er nødt til at downloade startsættet i min arbejdsstation. Dette startsæt hjælper dig med at skubbe filer fra Workstation til Chef Server. Klik på indstillingsikonet i højre side og klik på Starter Kit.

Når du klikker derovre, får du mulighed for at downloade Starter Kit. Klik bare på den for at downloade zip-filen til Starter Kit.

Flyt denne fil til din rodmappe.Pakk nu denne zip-fil ud ved hjælp af unzip-kommandoen i din terminal. Du vil bemærke, at den indeholder en mappe kaldet chef-repo.

Udfør dette:

udpakke chef-starter.zip

Flyt nu dette startpakke til kogebogskataloget i chef-repo-biblioteket.

Udfør dette:

mv starter / rod / chef-repo / kogebog

Kokken Kogebøger er tilgængelige i Kogebogens Supermarked, vi kan gå til Kokken SuperMarket. Download de nødvendige kogebøger fra supermarked.chef.io . Jeg downloader en af ​​kogebogen for at installere Apache derfra.

Udfør e t h er:

cd chef-repo kniv kogebogsite download download_chef_httpd

Der er tjærebold downloadet til Apache-kogebogen. Nu skal vi udtrække indholdet fra denne downloadede Tar-fil. Til det vil jeg bruge tjærekommando.

tjære -xvf learn_chef_httpd-0.2.0.tar.gz

Alle de krævede filer oprettes automatisk under denne kogebog. Der er ingen grund til at foretage ændringer. Lad os kontrollere opskriftsbeskrivelsen i min opskriftsmappe.

Udfør t h er :

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

Nu vil jeg bare uploade denne kogebog til min Chef Server, da den ser perfekt ud for mig.

Trin 8: Upload kogebog til Chef Server.

For at uploade den Apache-kogebog, som jeg har downloadet, skal du først flytte denne learn_chef_httpd-fil til kogebøger-mappen i chef-repo. Skift derefter din mappe til kogebøger.

Udfør t h er :

mv / root / chef-repo / learn_chef_httpd / root / chef-repo / kogebøger

Gå nu til denne kogebogskatalog.

Udfør dette:

cd kogebøger

Nu i denne mappe skal du udføre nedenstående kommando for at uploade Apache Cookbootil:

Exec ute t h er:

kniv kogebog upload upload_chef_httpd

Bekræft kogebogen fra Chef Server Management-konsollen. I politikafsnittet finder du den kogebog, du har uploadet. Se skærmbilledet nedenfor:

Nu er vores sidste trin at tilføje Chef Node. Jeg har konfigureret en arbejdsstation, en Chef-server, og nu skal jeg tilføje mine klienter til Chef-serveren til automatisering.

Trin 9: Tilføjelse af Chef Node til Chef Server.

Til demonstrationsformål bruger jeg en CentOS-maskine som Chef Node. Der kan være hundredvis af noder forbundet til en Chef Server. Terminalfarven på min Node-maskine er forskellig fra arbejdsstationen, så du kan skelne mellem begge.

Jeg har bare brug for IP-adressen på min node for at jeg vil udføre nedenstående kommando i min Node-maskiner.

Exec u t er t h er:

ifconfig

Jeg vil føje min Chef-node til serveren ved at udføre Knife Bootstrap-kommando, hvor jeg vil specificere IP-adressen på Chef Node og dens navn. Udfør den viste kommandoi:

Exec ute t h er:

kniv bootstrap 192.168.56.102 --ssh-bruger rod --ssh-adgangskode edureka --node-navn chefNode

Denne kommando initialiserer også installationen af ​​Chef-Client i Chef Node. Du kan verificere det fra CLI på arbejdsstationen ved hjælp af knivkommandoen, som vist heri:

Exec ute t h er:

Liste over knivknuder

Du kan også bekræfte det fra Chef Server. Gå til fanen noder i din Server Management Console, her vil du bemærke, at den node, du har tilføjet, er til stede. Se skærmbilledet nedenfor.

Trin 10: Administrer node-køreliste

Lad os se, hvordan vi kan tilføje en kogebog til noden og administrere dens køreliste fra Chef Server. Som du kan se på skærmbilledet nedenfor, skal du klikke på fanen Handlinger og vælge indstillingen Rediger køreliste for at administrere kørelisten.

I de tilgængelige opskrifter kan du se vores learn_chef_httpd opskrift, du kan trække den fra de tilgængelige pakker til den aktuelle køreliste og gemme kørelisten.

Log nu ind på din node, og kør bare chef-client for at udføre Run List.

Exec ute t h er:

hovedklient

Jeg håber, du har nydt denne Chef Tutorial og lært, hvordan Chef kan bruges til at konfigurere hundreder af noder. Kokken spiller en vigtig rolle i mange organisationer for at opnå DevOps. Med Chef frigiver organisationer oftere applikationer og reliabglas.

Hvis du fandt denne blog på “ Chef Tutorial ”Relevant, tjek den af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Edureka DevOps-certificeringskursus hjælper elever med at få ekspertise i forskellige DevOps-processer og -værktøjer som Puppet, Chef, Jenkins, Nagios og GIT til automatisering af flere trin i SDLC.