Hva er automatisering og konfigurasjonsadministrasjon med CHEF – del 1


La oss ta et enkelt scenario, du har 10 redhat-servere hvor du må opprette en "tecmint"-bruker på alle serverne. Den direkte tilnærmingen er at du må logge inn på hver server og opprette brukeren med kommandoen useradd. Når serverne er 100 eller 1000, er det praktisk talt ikke mulig å logge inn på alle serverne én etter én.

Her er det første vi tenker på i slike tilfeller å skrive et script og la scriptet utføre kjøringen på servere, det er en velprøvd tilnærming. Skript har sine egne ulemper, selv om det er mye brukt i organisasjoner, er det vanskelig å vedlikeholde hvis skripteieren forlater organisasjonen.

Manuset vil ikke fungere i et heterogent miljø. Skriptet er en imperativ metode for å utføre oppgaven, hvor du må skrive lang kode for en enkel oppgave osv., denne situasjonen krever at vi ser etter automatiserings- og konfigurasjonsadministrasjon-verktøy som for eksempel en Kokk.

I denne serien med artikler om Chef skal vi se om installasjons- og konfigurasjonsprosedyrene til Chef Automation-verktøyet gjennom del 1-3 og dekker følgende emner.

Denne opplæringen gir et utgangspunkt om hvordan Chef fungerer, automatisering, konfigurasjonsadministrasjon, arkitektur og komponenter i Chef.

1. Konfigurasjonsadministrasjon

Konfigurasjonsadministrasjon er hovedfokuspunktet for DevOps-praksis. I programvareutviklingssyklusen bør alle serverne være programvarekonfigurert og vedlikeholdt godt på en slik måte at de ikke skal bryte i utviklingssyklusen. Dårlig konfigurasjonsadministrasjon kan føre til systembrudd, lekkasjer og datainnbrudd. Å bruke Configuration Management-verktøy handler om å legge til rette for nøyaktighet, effektivitet og hastighet i det DevOps-drevne miljøet.

Det er to modeller for konfigurasjonsadministrasjonsverktøy – PUSH-basert og PULL-basert. I den PUSH-baserte sender hovedserveren konfigurasjonskoden til serverne der PULL-baserte individuelle servere kontakter masteren for å få konfigurasjonskode. PUPPET og CHEF er mye brukte PULL-baserte modeller, ANSIBLE er en populær PUSH-basert modell. I denne artikkelen vil vi se om CHEF.

2. Hva er en kokk?

En kokk er et automatiseringsprogram med åpen kildekode som gjør det mulig for systemadministratorer å automatisere distribusjon, konfigurasjoner, administrasjon og pågående oppgaver på tvers av en rekke servere og andre enheter i en organisasjon på en enkel og enkel måte.

  • Det ble etablert i 2008 som OPSCODE, senere blir det omdøpt til CHEF (Chef Automation-verktøyet).
  • Det er et Ruby-basert automatiseringsverktøy som brukes til å administrere konfigurasjonen, automatisere og orkestrere hele infrastrukturen til en organisasjon.
  • Det er et Opensource-prosjekt og kommer med to distribusjonsmodeller: Server Client og Standalone.
  • Chef støtter ulike operativsystemer som Ubuntu, Redhat/CentOS, Fedora, macOS, Windows, AIX, etc.
  • Kokken er deklarativ og er mye enklere enn innfødte skriptspråk.
  • Det gir kontinuerlig distribusjon for å gjøre det mulig for et selskap å holde seg oppdatert med markedskravet.
  • Kokkens hovedansvar er å opprettholde den definerte konfigurasjonstilstanden.
  • Den har sitt eget deklarative språk for å administrere 10- og 1000-vis av noder med letthet.
  • Kokken kan tilpasses skyen, integreres enkelt med Infrastructure on Cloud.
  • Kokken er lett å lære og et sterkt fellesskapsstøttet DevOps-vennlig verktøy.

3. Kokkarkitektur

Kokk-arkitektur er delt inn i 3 hovedseksjoner.

  • Chef WorkStation: Lokal utviklingsplattform for Chef-brukere til å opprette, teste og bruke konfigurasjoner. Det kan være din lokale stasjonære, bærbare PC med Chef DK (Development Kit) installert. Det kan brukes som et utviklings-/testmiljø før det markedsføres til produksjon.
  • Chef Server: Det er en server som har kokk-server programvare installert og konfigurert på den. Den er ansvarlig for å administrere kokkens kode og få tilgang til konfigurasjonskoden fra Chef Workstation. Kokkeserveren skal være en Linux-maskin, den støtter ikke noe annet operativsystem.
  • Kokkklienter: Det er serverne som kontakter Chef-serveren for konfigurasjonsdetaljer som kokkekode og andre avhengige filer i binærfiler. Den henter koden fra Chef-serveren og distribuerer dem lokalt.

4. Kokkens komponenter

Følgende er de viktigste Kokk-komponentene.

  • Ressurser er den grunnleggende modulen i oppskriften som brukes til å administrere infrastrukturen.
  • Attributtet er innstillingene i form av nøkkelverdi-par.
  • Oppskrifter er samlingen av attributter som kan lages i arbeidsstasjonen. Det er et sett med kommandoer som kan brukes på Chef Clients som Chef Code.
  • Samling av oppskrifter kalles en kokebok.
  • En kniv er et kommandolinjeverktøy i Chef Workstation som samhandler med Chef Server.

5. Chef-distribusjonsmodell

Det er to distribusjonsmodeller for Chef.

  • Server Client – Den brukes til produksjonsdistribusjon.
  • Chef Zero – Den brukes til utvikling, testing og POC-er.

6. Hvordan jobber kokk? Infrastruktur som kode

Infrastructure as Code er IT Infrastructure Management hvor den lar oss automatisk utføre ulike installasjoner/distribusjoner og Configuration Management. Her er alle konfigurasjoner, installasjoner skrevet som kode.

  • Chef-klienten/noden vil gjøre registrering og autentisering med Chef-serveren.
  • Chef-klient/node vil med jevne mellomrom se inn i Chef Server. Autentiseringsprosessen gjøres hver gang kokk-klienten ønsker å få tilgang til dataene som er lagret på kokk-serveren.
  • Ohai er et verktøy som kjøres av en Chef-klient for å bestemme systemtilstanden, det vil oppdage attributtene (OS, minne, disk, CPU, kjerne osv.) til noden og gi disse egenskapene til kokk-klienten. Ohai er en del av Chef Client-installasjonen.
  • Hvis det er noen endringer på kokeboken eller konfigurasjonsinnstillingene, sendes den til kokk-klienten og oppdateres/installeres.
  • Kokebøker og innstillinger vil bli oppdatert på Chef-serveren ved hjelp av Chef Workstation gjennom kommandolinjeverktøyet Kniv. Arbeidsstasjonen sender alle policyene til Chef-serveren ved hjelp av Knife.
  • Ettersom hver klient/node vil ha en periodisk sjekk med Chef-serveren, vil konfigurasjoner brukes individuelt i henhold til serverrollen. For eksempel: I Chef Nodes vil noen noder være databaseservere, noen noder vil være gatewayservere, etc.
Konklusjon

I denne artikkelen har vi sett grunnleggende konsepter for Configuration Management og Chef automatiseringsverktøy. Vi vil se trinn-for-trinn-prosessen for Chef-installasjon i de kommende artiklene.