Što je automatizacija i upravljanje konfiguracijom uz CHEF – 1. dio


Uzmimo jednostavan scenarij, imate 10 redhat poslužitelja gdje morate stvoriti 'tecmint' korisnika na svim poslužiteljima. Izravan pristup je da se trebate prijaviti na svaki poslužitelj i stvoriti korisnika pomoću naredbe useradd. Kada su poslužitelji 100 ili 1000, prijava na sve poslužitelje jedan po jedan praktički nije moguća.

Ovdje prvo što nam padne na pamet u takvim slučajevima je napisati skriptu i pustiti skriptu da izvrši izvršenje na poslužiteljima, to je provjeren pristup. Skriptiranje ima svoje nedostatke, iako se široko koristi u organizacijama, teško ga je održavati ako vlasnik skripte napusti organizaciju.

Skripta neće raditi u heterogenom okruženju. Skripta je imperativna metoda za izvršavanje zadatka, gdje trebate napisati dugačak kod za jednostavan zadatak itd., ova situacija zahtijeva da potražimo alate za Automatizaciju i upravljanje konfiguracijom kao što je Kuhara.

U ovoj seriji članaka o Chefu vidjet ćemo postupke instalacije i konfiguracije Chef Automation alata kroz dijelove 1-3 i pokriva sljedeće teme.

Ovaj vodič pruža početnu točku o tome kako Chef radi, automatizaciji, upravljanju konfiguracijom, arhitekturi i komponentama Chefa.

1. Upravljanje konfiguracijom

Upravljanje konfiguracijom ključna je točka fokusa prakse DevOps. U ciklusu razvoja softvera, svi poslužitelji trebaju biti softverski konfigurirani i dobro održavani na takav način da ne bi smjeli napraviti nikakav prekid u ciklusu razvoja. Upravljanje lošom konfiguracijom može uzrokovati prekide rada sustava, curenja i povrede podataka. Korištenje alata za Upravljanje konfiguracijom olakšava točnost, učinkovitost i brzinu u okruženju koje pokreće DevOps.

Postoje dva modela alata za upravljanje konfiguracijom – PUSH-based & PULL-based. U PUSH-u, glavni poslužitelj šalje konfiguracijski kod na poslužitelje pri čemu PULL-u pojedinačni poslužitelji kontaktiraju glavnog za dobivanje konfiguracijskog koda. PUPPET i CHEF naširoko su korišteni modeli temeljeni na POVUČENJU, ANSIBLE je popularan model temeljen na PUSH-u. U ovom ćemo članku vidjeti nešto o KUHARJU.

2. Što je kuhar?

A chef je program za automatizaciju otvorenog koda koji administratorima sustava omogućuje automatizaciju postavljanja, konfiguracija, upravljanja i tekućih zadataka na brojnim poslužiteljima i drugim uređajima u organizaciji na jednostavan i lak način.

  • Osnovan je 2008. kao OPSCODE kasnije je preimenovan u CHEF (alat za Chef Automation).
  • To je alat za automatizaciju temeljen na Rubyju koji se koristi za upravljanje konfiguracijom, automatiziranje i orkestriranje cijele infrastrukture organizacije.
  • To je Opensource projekt i dolazi s dva modela implementacije: Server Client & Standalone.
  • Chef podržava različite operativne sustave kao što su Ubuntu, Redhat/CentOS, Fedora, macOS, Windows, AIX itd.
  • Chef je deklarativan i puno je jednostavniji od izvornih skriptnih jezika.
  • Omogućuje kontinuiranu implementaciju kako bi tvrtka bila u toku sa zahtjevima tržišta.
  • Primarna odgovornost kuhara je održavanje definiranog stanja konfiguracije.
  • Ima vlastiti deklarativni jezik za lako upravljanje s 10 i 1000 čvorova.
  • Chef je prilagodljiv oblaku, lako se integrira s Infrastructure on Cloud.
  • Chef je jednostavan za naučiti i snažan je alat prilagođen DevOps-u koji podržava zajednica.

3. Chef Arhitektura

Arhitektura Chef podijeljena je u 3 glavna dijela.

  • Chef WorkStation: lokalna razvojna platforma za korisnike Chefa za izradu, testiranje i primjenu konfiguracija. To može biti vaše lokalno stolno računalo, prijenosno računalo s instaliranim Chef DK (Development Kit). Može se koristiti kao okruženje za razvoj/testiranje prije promicanja u proizvodnju.
  • Chef Server: To je poslužitelj na kojem je instaliran i konfiguriran softver chef-server. Odgovoran je za upravljanje kodom kuhara i pristup konfiguracijskom kodu s radne stanice kuhara. Poslužitelj kuhara trebao bi biti Linux stroj, neće podržavati nijedan drugi operativni sustav.
  • Chef klijenti: Postoje poslužitelji koji kontaktiraju Chef poslužitelj za detalje konfiguracije kao što su chef kod i druge zavisne datoteke u binarnim datotekama. Povlači kod s poslužitelja Chef i postavlja ih lokalno.

4. Komponente kuhara

Slijede ključne komponente Chef.

  • Resursi su osnovni modul Recepta koji se koristi za upravljanje infrastrukturom.
  • Atribut su postavke u obliku para ključ-vrijednost.
  • Recepti su zbirka atributa koji se mogu izraditi na radnoj stanici. To je skup naredbi koje se mogu primijeniti na Chef klijente kao Chef Code.
  • Zbirka recepata zove se Kuharica.
  • Nož je alat naredbenog retka u Chef Workstation koji komunicira s Chef Serverom.

5. Model postavljanja kuhara

Postoje dva modela implementacije za Chef.

  • Klijent poslužitelja – Koristi se za produkcijsku implementaciju.
  • Chef Zero – Koristi se za razvoj, testiranje i POC-ove.

6. Kako kuhar radi? Infrastruktura kao kod

Infrastructure as Code je upravljanje IT infrastrukturom gdje nam omogućuje automatsku izvedbu raznih instalacija/postavljanje i upravljanje konfiguracijom. Ovdje su sve konfiguracije, instalacije napisane kao kod.

  • Chef klijent/čvor izvršit će registraciju i autentifikaciju s Chef poslužiteljem.
  • Chef klijent/čvor će povremeno pregledavati Chef Server. Proces autentifikacije provodi se svaki put kada chef-klijent želi pristupiti podacima pohranjenim u chef-poslužitelju.
  • Ohai je alat koji će pokrenuti Chef klijent za određivanje stanja sustava, otkrit će atribute (OS, memorija, disk, CPU, kernel itd.) čvora i pružiti te atribute kuharu-klijentu. Ohai je dio Chef Client instalacije.
  • Ako dođe do bilo kakvih promjena u Kuharici ili postavkama konfiguracije, to će biti poslano Chef-Clientu i bit će ažurirano/instalirano.
  • Kuharice i postavke ažurirat će se na Chef poslužitelju pomoću Chef Workstation putem alata naredbenog retka Knife. Radna stanica gura sva pravila na Chef poslužitelj koristeći Knife.
  • Budući da će svaki klijent/čvor imati periodičku provjeru s Chef poslužiteljem, konfiguracije će se primjenjivati pojedinačno prema ulozi poslužitelja. Na primjer: u Chef čvorovima, neki čvorovi će biti poslužitelji baze podataka, neki čvorovi će biti pristupni poslužitelji itd.
Zaključak

U ovom smo članku vidjeli osnovne koncepte upravljanja konfiguracijom i alata za automatizaciju Chefa. U nadolazećim člancima vidjet ćemo korak po korak proces instalacije Chefa.