Chef Tutorial - Transform Infrastructure In Code



Chef Tutorial er den andre bloggen til Chef-bloggserien. Denne bloggen forklarer Chef-arkitektur og Chef-komponenter som kokebøker, oppskrifter etc. med eksempler.

Chef Tutorial

Chef Tutorial er den andre bloggen til Chef-bloggserien. I min forrige blogg , Jeg har forklart hva som er Chef, Configuration Management og hvordan Chef oppnår Configuration Management ved hjelp av en use-case av Gannett.

I denne kokkopplæringen vil følgende emner bli dekket:





Jeg er sikker på at etter å ha lest min forrige blogg du må være nysgjerrig på å vite hvordan Chef fungerer. Den første delen av denne Chef Tutorial-bloggen vil forklare deg Chef-arkitekturen i detalj, som vil fjerne all din tvil.



Chef Tutorial - Chef Architecture

Som vist i diagrammet nedenfor, er det tre hovedkokk-komponenter:

  • Arbeidsstasjon
  • Server
  • Noder

Chef Architecture - Chef Tutorial - Edureka

Chef Tutorial - Workstation



Arbeidsstasjonen er stedet der alle Chef-konfigurasjoner erfikk til. Denne maskinen inneholder alle konfigurasjonsdataene som senere kan skyves til den sentrale Chef Server. Disse konfigurasjonene testes i arbeidsstasjonen før de skyves inn i Chef Server. En arbeidsstasjon består av et kommandolinjeverktøy som heter Kniv, som brukes til å samhandle med Chef Server. Det kan være flere arbeidsstasjoner som sammen administrerer den sentrale Chef Server.

Arbeidsstasjoner er ansvarlige for å utføre funksjonene nedenfor:

  • Skrive kokebøker og oppskrifter som senere blir presset til den sentrale Chef Server
  • Administrere noder på den sentrale Chef Server

La oss nå forstå de ovennevnte punktene en etter en.

Skrive kokebøker og oppskrifter som senere blir presset til den sentrale Chef Server

Oppskrifter: En oppskrift er en samling ressurser som beskriver en bestemt konfigurasjon eller policy. Den beskriver alt som kreves for å konfigurere en del av et system. Brukeren skriver Oppskrifter som beskriver hvordan Chef administrerer applikasjoner og verktøy (for eksempel Apache HTTP Server, MySQL eller Hadoop) og hvordan de skal konfigureres.

Disse oppskriftene beskriver en rekke ressurser som skal være i en bestemt tilstand, dvs. pakker som skal installeres, tjenester som skal kjøre, eller filer som skal skrives.

Senere i bloggen , Jeg vil vise deg hvordan du skriver en oppskrift for å installere Apache2-pakken på Chef Nodes ved å skrive en rubinkode i Chef Workstation.

Kokebøker: Flere oppskrifter kan grupperes sammen for å danne en kokebok. En kokebok definerer et scenario og inneholder alt som kreves for å støtte dette scenariet:

  • Oppskrifter, som spesifiserer ressursene som skal brukes og rekkefølgen de skal brukes i
  • Attributtverdier
  • Fildistribusjoner
  • Maler
  • Utvidelser til Chef, for eksempel biblioteker, definisjoner og tilpassede ressurser

Administrere noder på den sentrale Chef Server

Arbeidsstasjonssystemet vil ha de nødvendige kommandolinjeverktøyene for å kontrollere og administrere alle aspekter av den sentrale Chef Server. Ting som å legge til en ny node til den sentrale Chef Server, slette en node fra den sentrale Chef Server, endre Node-konfigurasjoner osv., Kan alle administreres fra selve arbeidsstasjonen.

La oss nå se hvilke komponenter av Workstation som kreves for å utføre ovennevnte funksjoner.

Arbeidsstasjoner har to hovedkomponenter:

Knivverktøy: Dette kommandolinjeverktøyet kan brukes til å kommunisere med den sentrale Chef Server fra Workstation. Å legge til, fjerne, endre konfigurasjoner av noder i en sentral Chef Server vil bli utført ved å bruke dette knivverktøyet. Ved hjelp av Knife-verktøyet kan kokebøker lastes opp til en sentral kokkeserver og roller, og miljøer kan også administreres. I utgangspunktet kan alle aspekter av den sentrale Chef Server styres fra Workstation ved hjelp av Knife-verktøyet.

Et lokalt kokkedepot: Dette er stedet der hver konfigurasjonskomponent i den sentrale Chef Server er lagret. Dette Chef-depotet kan synkroniseres med den sentrale Chef Server (igjen ved hjelp av selve knivverktøyet).

Chef Tutorial - Chef Server

Chef Server fungerer som et knutepunkt for konfigurasjonsdata. Chef Server lagrer kokebøker, retningslinjene som brukes på noder og metadata som beskriver hver registrerte node som administreres av Chef-Client.

Noder bruker Chef-Client til å be Chef Server om konfigurasjonsdetaljer, for eksempel oppskrifter, maler og fildistribusjoner. Chef-Client gjør så mye av konfigurasjonsarbeidet som mulig på nodene selv (og ikke på Chef Server). Hver node har en Chef Client-programvare installert, som trekker ned konfigurasjonen fra den sentrale Chef Server som er gjeldende for den noden. Denne skalerbare tilnærmingen distribuerer konfigurasjonsarbeidet gjennom hele organisasjonen.

Chef Tutorial - Chef Nodes

Noder kan være en skybasert virtuell server eller en fysisk server i ditt eget datasenter, som administreres ved hjelp av sentral Chef Server. Hovedkomponenten som må være til stede på Node er en agent som vil etablere kommunikasjon med den sentrale Chef Server. Dette kalles Chef Client.

Chef Client utfører følgende funksjoner:

  • Det er ansvarlig for samhandling med den sentrale Chef Server.
  • Den administrerer den første registreringen av Node til den sentrale Chef Server.
  • Den trekker ned kokebøker, og bruker dem på Node for å konfigurere den.
  • Periodisk avstemning av den sentrale Chef Server for å hente nye konfigurasjonselementer, hvis noen.

Klikk her for å lære hvordan du installerer Chef Server, Workstation og Node

Chef Tutorial - Fordeler med Chef:

Denne kokkopplæringen vil være ufullstendig hvis jeg ikke inkluderer de viktigste fordelene med kokk:

  • Du kan automatisere en hel infrastruktur ved hjelp av Chef. Alle oppgaver som ble utført manuelt, kan nå gjøres via Chef-verktøyet.
  • Du kan konfigurere tusenvis av noder på få minutter ved hjelp av Chef.
  • Kokkeautomatisering fungerer med de fleste offentlige skytilbud som .
  • Chef vil ikke bare automatisere ting, men vil også holde systemene under jevnlig kontroll og bekrefte at systemet faktisk er konfigurert slik det kreves (Chef Agent / Client gjør denne jobben). Hvis noen gjør en feil ved å endre en fil, vil Chef rette den.
  • En hel infrastruktur kan registreres i form av et Chef-depot, som kan brukes som en tegning for å gjenskape infrastrukturen fra bunnen av.

Jeg håper du har hatt glede av denne kokkens opplæring til nå, nok med de teoretiske innleggene! la oss ha det gøy med praktisk.

Kokkopplæring | Komme i gang med kokk | Edureka

Chef Tutorial - Hands-On

Her vil jeg forklare deg hvordan du lager en oppskrift, kokebok og mal i Chef Workstation. Jeg vil også forklare deg hvordan du distribuerer en kokebok fra Workstation til Chef-Client (Chef Node).

Jeg bruker to virtuelle bilder, en for Chef Workstation og en for Chef Node. For Chef Server vil jeg bruke vertsversjonen av Chef (i skyen). Du kan også bruke en fysisk maskin for Chef Server også.

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

Chef DK er en pakke som inneholder alle utviklingsverktøyene du trenger når du koder Chef. Her er lenken for nedlasting Kokk DK .

Her velger du operativsystemet du bruker. Jeg bruker CentOS 6.8. Så, jeg klikker på Red Hat Enterprise Linux .

Kopier lenken i henhold til versjonen av CentOS du bruker. Jeg bruker CentOS 6, som du kan se at jeg har markert i skjermbildet ovenfor.

Gå til arbeidsstasjonsterminalen din og last ned Chef DK ved å bruke wget-kommandoen og lim inn lenken.

Utfør dette:

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

Pakken er nå lastet ned. Det er på tide å installere denne pakken ved hjelp av rpm.

Utfør dette:

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

Chef DK er nå installert i arbeidsstasjonen min.

tilfeldig klasse i java eksempel

Steg 2: Lag en oppskrift i arbeidsstasjonen

La oss starte med å lage en oppskrift i arbeidsstasjonen og teste den lokalt for å sikre at den fungerer.Opprett en mappe som heter chef-repo. Vi kan lage våre oppskrifter i denne mappen.

Utfør dette:

mkdir kokk-repo cd kokk-repo

I denne kokk-repokatalogen vil jeg lage en oppskrift med navnet edureka.rb. .rb er utvidelsen som brukes til rubin. Jeg vil bruke vim editor, du kan bruke hvilken som helst annen editor som gedit, emac, vi etc.

Utfør dette:

vim edureka.rb

Legg til følgende:

file '/ etc / motd' content 'Welcome to Chef' end

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

hva er en fastlåst tilstand i java

Nå vil jeg bruke denne oppskriften for å sjekke om den fungerer.

Henrette dette:

kokk-påfør edureka.rb

Så det er en fil opprettet i chef-repo som har innhold Velkommen til kokk.

Trinn 3: Modifying Oppskriftsfil for å installere httpd-pakken

Jeg vil endre oppskriften for å installere httpd-pakken på arbeidsstasjonen min og kopiere en index.html-fil til standard dokumentrot for å bekrefte installasjonen. Standardhandlingen for en pakkeressurs er installasjon, derfor trenger jeg ikke å spesifisere denne handlingen separat.

Henrette dette:

vim edureka.rb

Her til legger du til følgende:

pakke 'httpd' tjeneste 'httpd' gjør handling [: aktiver,: start] sluttfil '/var/www/html/index.html' gjør innhold 'Velkommen til Apache i Chef' slutt

Nå vil jeg bruke disse konfigurasjonene ved å utføre kommandoen nedenfor:

Henrette dette:

kokk-påfør edureka.rb

Kommandokjøringen beskriver tydelig hver forekomst i oppskriften. Den installerer Apache-pakken, aktiverer og starter httpd-tjenesten på arbeidsstasjonen. Og det oppretter en index.html-fil i standarddokumentroten med innholdet 'Velkommen til Apache i Chef'.

Bekreft nå installasjonen av Apache2 ved å åpne nettleseren din. Skriv inn din offentlige IP-adresse eller navnet på verten din. I mitt tilfelle er det lokal vert.

Trinn 4: Nå skal vi lage vår første kokebok.

Opprett en katalog som heter kokebøker, og utfør kommandoen nedenfor for å generere kokeboken.

Henrette dette:

mkdir kokebøker cd kokebøker kokk genererer kokebok httpd_deploy

httpd_deploy er et navn gitt til kokeboken. Du kan gi hvilket som helst navn du vil ha.

La oss gå til denne nye katalogen httpd_deploy.

Henrette dette:

cd httpd_deploy

La oss nå se filstrukturen til den opprettede kokeboken.

Henrette dette:

tre

Trinn 5: Cskriv en malfil på nytt.

Tidligere opprettet jeg en fil med noe innhold, men det passer ikke med strukturene for oppskrifter og kokebøker. Så la oss se hvordan vi kan lage en mal for index.html-siden.

Henrette dette:

kokk genererer mal httpd_deploy index.html

Nå hvis du ser filstrukturen for kokeboken, er det en mappe opprettet med navnemalene med index.html.erb-filen. Jeg vil redigere denne index.html.erb malfilen og legge til oppskriften min. Se eksemplet nedenfor:

Gå til standardkatalogen

Henrette dette:

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

Her kan du redigere index.html.erb-malen ved å bruke en hvilken som helst redaktør du er komfortabel med. Jeg vil bruke vim editor.

Henrette dette:

vim index.html.erb

Legg nå til følgende:

Velkommen til Chef Apache Deployment

Trinn 6: Cskriv en oppskrift med denne malen.

Gå til oppskriftskatalogen.

Utfør t hans:

cd / root / chef-repo / kokebøker / httpd_deploy / oppskrifter

Rediger nå standard.rb-filen ved å bruke hvilken redigerer du vil. Jeg vil bruke vim editor.

Henrette dette:

vim default.rb

Her til legger du til følgende:

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

Nå vil jeg gå tilbake til kokken-repo-mappen og kjøre / teste oppskriften min på arbeidsstasjonen min.

Henrette dette:

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

I henhold til min oppskrift er Apache installert på arbeidsstasjonen min, og tjenesten startes og aktiveres ved oppstart. Det er også opprettet en malfil på min standard dokumentrot.

Nå som jeg har testet arbeidsstasjonen min. Det er på tide å sette opp Chef Server.

Trinn 7: Oppsett Chef Server

Jeg vil bruke den vertsede versjonen av Chef Server i skyen, men du kan også bruke en fysisk maskin. Denne Chef-Server er til stede på administrere.chef.io

Her oppretter du en konto hvis du ikke har en. Når du har opprettet en konto, logger du på med påloggingsinformasjonen din.

Slik ser Chef Server ut.

Hvis du logger på for første gang, er det aller første du skal gjøre å opprette en organisasjon. Organisasjon er i utgangspunktet en gruppe maskiner som du skal administrere med Chef Server.

Først vil jeg gå til administrasjonsfanen. Der borte har jeg allerede opprettet en organisasjon som heter edu. Så jeg må laste ned startpakken i arbeidsstasjonen min. Dette startpakken hjelper deg med å skyve filer fra arbeidsstasjonen til Chef Server. Klikk på innstillingsikonet på høyre side og klikk på Starter Kit.

Når du klikker der borte, får du muligheten til å laste ned Starter Kit. Bare klikk på den for å laste ned zip-filen for Starter Kit.

Flytt denne filen til rotkatalogen.Pakk nå ut denne zip-filen ved å bruke unzip-kommandoen i terminalen. Du vil legge merke til at den inneholder en katalog som heter chef-repo.

Henrette dette:

pakke ut chef-starter.zip

Flytt nå startpakken til kokebokkatalogen i chef-repo-katalogen.

Henrette dette:

mv starter / root / chef-repo / kokebok

Chef Cookbooks er tilgjengelige i Cookbook Super Market, vi kan gå til Chef SuperMarket. Last ned de nødvendige kokebøkene fra supermarked.chef.io . Jeg laster ned en av kokeboken for å installere Apache derfra.

Henrette e t h er:

sorteringsfunksjon i c ++
cd kokk-repo kniv kokebok nedlasting lære_chef_httpd

Det er Tar-ball lastet ned for Apache Cookbook. Nå må vi trekke ut innholdet fra denne nedlastede Tar-filen. For det vil jeg bruke tjærekommando.

tar -xvf learn_chef_httpd-0.2.0.tar.gz

Alle nødvendige filer blir automatisk opprettet under denne kokeboken. Det er ikke nødvendig å gjøre noen endringer. La oss sjekke oppskriftsbeskrivelsen i oppskriftsmappen min.

Utfør t h er :

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

Nå vil jeg bare laste opp denne kokeboken til kokkeserveren min, da den ser perfekt ut for meg.

Trinn 8: Last opp kokeboken til Chef Server.

For å laste opp Apache Cookbook som jeg har lastet ned, må du først flytte denne learn_chef_httpd-filen til Cookbooks-mappen i chef-repo. Endre deretter katalogen din til kokebøker.

Utfør t h er :

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

Gå nå til denne kokebok-katalogen.

Utfør dette:

cd kokebøker

Nå i denne katalogen, utfør kommandoen nedenfor for å laste opp Apache Cookbootil:

Utfør ute t h er:

opplasting av knivkokebok Learn_chef_httpd

Bekreft kokeboken fra Chef Server Management-konsollen. I policy-delen finner du kokeboken du har lastet opp. Se skjermbildet nedenfor:

Nå er vårt siste trinn å legge til Chef Node. Jeg har satt opp en arbeidsstasjon, en Chef Server, og nå må jeg legge til klientene mine i Chef Server for automatisering.

Trinn 9: Legge til Chef Node til Chef Server.

For demonstrasjonsformål vil jeg bruke en CentOS-maskin som Chef Node. Det kan være hundrevis av noder koblet til en Chef Server. Terminalfargen på Node-maskinen min er forskjellig fra arbeidsstasjonen, slik at du vil kunne skille mellom begge.

Jeg trenger bare IP-adressen til Nodeen min for at jeg vil utføre kommandoen nedenfor i Node-maskinen miner.

Utfør u t er t h er:

ifconfig

Jeg vil legge til min Chef Node på serveren ved å utføre kommandoen Knife Bootstrap der jeg vil spesifisere IP-adressen til The Chef Node og dens navn. Utfør kommandoen som visesi:

Utfør ute t h er:

kniv bootstrap 192.168.56.102 --ssh-brukerrot --ssh-passord edureka --node-navn chefNode

Denne kommandoen vil også initialisere installasjonen av Chef-Client i Chef Node. Du kan bekrefte det fra CLI på arbeidsstasjonen ved hjelp av knivkommandoen, som vist heri:

Utfør ute t h er:

Knivnodeliste

Du kan også bekrefte fra Chef Server. Gå til noder-fanen i Server Management Console, her vil du legge merke til at noden du har lagt til er til stede. Se skjermbildet nedenfor.

Trinn 10: Administrer Node Run List

La oss se hvordan vi kan legge til en kokebok i noden og administrere Run-listen fra Chef Server. Som du kan se på skjermbildet nedenfor, klikk på fanen Handlinger og velg alternativet Rediger kjøreliste for å administrere Kjør-listen.

I Tilgjengelige oppskrifter kan du se vår opplæring_chef_httpd Oppskrift, du kan dra den fra tilgjengelige pakker til gjeldende kjøreliste og lagre kjørelisten.

Logg deg nå på din Node og kjør bare kokk-klient for å utføre Run List.

Utfør ute t h er:

sjefsklient

Jeg håper du likte denne Chef-opplæringen og lærte hvordan Chef kan brukes til å konfigurere hundrevis av noder. Chef spiller en viktig rolle i mange organisasjoner for å oppnå DevOps. With Chef-organisasjoner lanserer applikasjoner oftere og reliabglass.

Hvis du fant denne bloggen på “ Chef Tutorial ' relevant, sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk med mer enn 250 000 fornøyde elever spredt over hele verden. Edureka DevOps Certification Training-kurset hjelper lærere å få ekspertise i forskjellige DevOps-prosesser og verktøy som Puppet, Chef, Jenkins, Nagios og GIT for å automatisere flere trinn i SDLC.