Kaj je avtomatizacija in upravljanje konfiguracij s sistemom CHEF - 1. del


Vzemimo preprost scenarij, imate 10 strežnikov redhat, kjer morate v vseh strežnikih ustvariti uporabnika 'tecmint'. Neposreden pristop je, da se morate prijaviti v vsak strežnik in uporabnika ustvariti z ukazom useradd. Če so strežniki 100-ih ali 1000-ih, prijava v vse strežnike enega za drugim praktično ni mogoča.

Tukaj je prva stvar, ki nam v takšnih primerih pade na pamet, da napišemo skript in pustimo, da skript izvede izvajanje na strežnikih, je preizkušen pristop. Skriptiranje ima svoje pomanjkljivosti, čeprav se pogosto uporablja v organizacijah, ga je težko ohraniti, če lastnik skripta zapusti organizacijo.

Skript ne bo deloval v heterogenem okolju. Skript je obvezna metoda za izvedbo naloge, kjer morate za preprosto nalogo itd. Napisati dolgo kodo itd. Ta situacija zahteva, da poiščemo orodja za avtomatizacijo in upravljanje konfiguracije, kot je kuhar.

V tej seriji člankov o Chefu si bomo v delih 1–3 ogledali postopke namestitve in konfiguracije orodja Chef Automation ter zajemale naslednje teme.

Ta vadnica ponuja izhodišče o tem, kako deluje Chef, avtomatizacija, upravljanje konfiguracije, arhitektura in komponente Chefa.

1. Upravljanje konfiguracije

Upravljanje konfiguracije je ključna osrednja točka prakse DevOps. V razvojnem ciklu programske opreme morajo biti vsi strežniki programsko konfigurirani in dobro vzdrževani tako, da ne smejo povzročiti prekinitve v razvojnem ciklu. Slaba konfiguracija Upravljanje lahko povzroči izpad sistema, puščanje in kršitve podatkov. Uporaba orodij za upravljanje konfiguracije je namenjena zagotavljanju natančnosti, učinkovitosti in hitrosti v okolju, ki ga poganja DevOps.

Obstajata dva modela orodij za upravljanje konfiguracije - na osnovi PUSH in PULL. V strežniku PUSH glavni strežnik potisne konfiguracijsko kodo na strežnike, kjer posamezni strežniki, ki temeljijo na PULL, stopijo v stik z glavnim strežnikom za pridobitev konfiguracijske kode. LUTKA in CHEF sta široko uporabljena modela na osnovi PULL, ANSIBLE je priljubljen model na osnovi PUSH. V tem članku bomo videli približno CHEF.

2. Kaj je kuhar?

Kuhar je odprtokodni program za avtomatizacijo, ki sistemskim skrbnikom na preprost in enostaven način omogoča avtomatizacijo uvajanja, konfiguracije, upravljanja in tekočih nalog v številnih strežnikih in drugih napravah organizacije.

  • Ustanovljen je bil leta 2008 kot OPSCODE, kasneje pa je preimenovan v CHEF (orodje za avtomatizacijo kuharjev).
  • Je orodje za avtomatizacijo na osnovi Rubyja, ki se uporablja za upravljanje konfiguracije, avtomatizacijo in orkestriranje celotne infrastrukture organizacije.
  • Je projekt Opensource in ima dva modela uvajanja: strežniški odjemalec in samostojni.
  • Chef podpira različne operacijske sisteme, kot so Ubuntu, Redhat/CentOS, Fedora, macOS, Windows, AIX itd.
  • Kuhar je deklarativen in je veliko preprostejši od domačih skriptnih jezikov.
  • Zagotavlja nenehno uvajanje, ki podjetju omogoča, da se sproti obvešča o zahtevah trga.
  • Glavna odgovornost kuharja je vzdrževanje definiranega stanja konfiguracije.
  • Ima svoj deklarativni jezik za enostavno upravljanje 10-ih in 1000-ih vozlišč.
  • Kuhar je prilagodljiv oblaku, zlahka se integrira z infrastrukturo v oblaku.
  • Kuharja je enostavno naučiti in močno orodje, prijazno DevOps, ki ga podpira skupnost.

3. Arhitektura kuharja

Kuharska arhitektura je razdeljena na 3 glavne sklope.

  • Chef WorkStation: lokalna razvojna platforma za uporabnike chefov za ustvarjanje, testiranje in uporabo konfiguracij. Lahko je vaše lokalno namizje, prenosni računalnik z nameščenim Chef DK (Development Kit). Lahko se uporablja kot razvojno/preskusno okolje, preden se promovira v proizvodnjo.
  • Chef Server: Je strežnik, na katerem je nameščena in konfigurirana programska oprema chef-server. Odgovoren je za upravljanje chef-ove kode in dostop do konfiguracijske kode s Chef Workstation. Kuharski strežnik bi moral biti Linux, ne bo podpiral nobenega drugega operacijskega sistema.
  • Naročniki kuharja: Obstajajo strežniki, ki se obrnejo na strežnik kuharja za podrobnosti o konfiguraciji, kot so chef koda in druge odvisne datoteke v binarnih datotekah. Kodo povleče s strežnika Chef in jo lokalno razporedi.

4. Komponente kuharja

Sledijo ključne komponente kuharja.

  • Viri so osnovni modul recepta, ki se uporablja za upravljanje infrastrukture.
  • Atribut so nastavitve v obliki para ključ-vrednost.
  • Recepti so zbirka atributov, ki jih lahko ustvarite na delovni postaji. To je nabor ukazov, ki se lahko uporabijo za odjemalce kuharjev kot chef koda.
  • Zbirka receptov se imenuje kuharska knjiga.
  • Nož je orodje ukazne vrstice na delovni postaji Chef, ki deluje s strežnikom Chef.

5. Model uvajanja kuharja

Za Chef obstajata dva modela uvajanja.

  • Odjemalec strežnika - uporablja se za proizvodno uvajanje.
  • Chef Zero - uporablja se za razvoj, testiranje in POC.

6. Kako deluje kuhar? Infrastruktura kot koda

Infrastruktura kot koda je upravljanje IT infrastrukture, kjer nam omogoča samodejno izvajanje različnih namestitev/razmestitev in upravljanje konfiguracije. Tu so vse konfiguracije, namestitve zapisane kot koda.

  • Odjemalec/vozlišče Chef bo opravil registracijo in preverjanje pristnosti s strežnikom Chef.
  • Chef odjemalec/vozlišče bo občasno pregledoval Chef Server. Postopek preverjanja pristnosti se izvede vsakič, ko kuhar-odjemalec želi dostopati do podatkov, shranjenih na strežniku kuharjev.
  • Ohai je orodje, ki ga bo Chef odjemalec zagnal za določitev stanja sistema, zaznalo bo atribute (OS, pomnilnik, disk, CPU, jedro itd.) vozlišča in jih bo posredovalo kuhar-stranka. Ohai je del namestitve Chef Client.
  • Če pride do sprememb v kuharski knjigi ali nastavitvah konfiguracije, bo poslana odjemalcu kuharja in posodobljena/nameščena.
  • Kuharice in nastavitve bodo posodobljene na strežniku Chef z uporabo delovne postaje Chef prek orodja ukazne vrstice Knife. Delovna postaja potisne vse pravilnike na strežnik Chef z uporabo noža.
  • Ker bo vsak odjemalec/vozlišče redno preverjalo strežnik Chef, bodo konfiguracije uporabljene posamezno glede na vlogo strežnika. Na primer: v vozliščih Chef bodo nekatera vozlišča strežniki baze podatkov, nekatera vozlišča strežniki prehoda itd.

V tem članku smo videli osnovne koncepte orodja za upravljanje konfiguracije in avtomatizacije Chef. Postopni postopek namestitve kuharja bomo videli v naslednjih člankih.