Mis on automaatika ja konfiguratsioonihaldus koos CHEF-iga - 1. osa


Võtame lihtsa stsenaariumi: teil on 10 redhat-serverit, kus peate kõigis serverites looma 'tecmint' kasutaja. Otsene lähenemisviis on see, et peate igasse serverisse sisse logima ja looma kasutaja käsuga useradd. Kui serverite arv on 100 või 1000, pole praktiliselt võimalik kõikidesse serveritesse sisse logida.

Siinkohal tuleb kõigepealt pähe sellistel juhtudel kirjutada skript ja lasta skriptil serverites täitmist teostada, see on tõestatud lähenemine. Skriptimisel on omad puudused, ehkki seda kasutatakse organisatsioonides laialdaselt, on seda keeruline säilitada, kui skripti omanik lahkub organisatsioonist.

Skript ei tööta heterogeenses keskkonnas. Skript on hädavajalik meetod ülesande täitmiseks, kus peate kirjutama pika koodi lihtsa ülesande jms jaoks. See olukord nõuab, et me otsiksime automaatika ja konfiguratsioonihalduse tööriistu, näiteks peakokk.

Selles peakokkade artiklite seerias vaatame peakokkade automatiseerimise tööriista installimise ja seadistamise protseduure läbi osade 1–3 ja käsitleme järgmisi teemasid.

See õpetus annab lähtepunkti koka toimimise, automatiseerimise, konfiguratsioonihalduse, arhitektuuri ja koka komponentide kohta.

1. Konfiguratsiooni haldamine

Konfiguratsioonihaldus on DevOpsi praktika peamine fookuspunkt. Tarkvaraarendustsüklis peaksid kõik serverid olema tarkvara abil konfigureeritud ja hooldatud nii, et nad ei peaks arendustsüklis pausi tegema. Vale konfiguratsioonihaldus võib põhjustada süsteemi katkestusi, lekkeid ja andmete rikkumisi. Konfiguratsioonihalduse tööriistade kasutamine on täpsuse, tõhususe ja kiiruse hõlbustamine DevOps-juhitavas keskkonnas.

Konfiguratsioonihaldustööriistadel on kaks mudelit - PUSH-põhine ja PULL-põhine. PUSH-põhises vormingus lükkab põhiserver konfiguratsioonikoodi serveritesse, kus PULL-põhised üksikud serverid võtavad konfiguratsioonikoodi saamiseks ühendust põhihalduriga. PUPPET ja CHEF on laialt kasutatavad PULL-põhised mudelid, ANSIBLE on populaarne PUSH-põhine mudel. Selles artiklis näeme CHEF-i kohta.

2. Mis on peakokk?

Peakokk on avatud lähtekoodiga automatiseerimisprogramm, mis võimaldab süsteemiadministraatoritel lihtsustada lihtsal viisil juurutamist, konfiguratsioone, haldamist ja käimasolevaid ülesandeid paljudes organisatsiooni serverites ja muudes seadmetes.

  • See loodi 2008. aastal kui OPSCODE, hiljem nimetatakse see ümber nimeks CHEF (Chef Automation tool).
  • See on Ruby-põhine automatiseerimistööriist, mida kasutatakse organisatsiooni kogu infrastruktuuri konfiguratsiooni haldamiseks, automatiseerimiseks ja orkestreerimiseks.
  • See on Opensource'i projekt ja sellel on kaks juurutusmudelit: Server Client & Standalone.
  • Peakokk toetab erinevaid operatsioonisüsteeme, nagu Ubuntu, Redhat/CentOS, Fedora, macOS, Windows, AIX jne.
  • Peakokk on deklaratiivne ja palju lihtsam kui emakeelsed skriptikeeled.
  • See pakub pidevat juurutamist, et võimaldada ettevõttel end turunõuetega kursis hoida.
  • Peakoka peamiseks vastutuseks on määratletud konfiguratsiooniseisundi säilitamine.
  • Sellel on oma deklaratiivne keel 10 ja 1000 sõlme hõlpsaks haldamiseks.
  • Peakokk on pilvega kohanemisvõimeline, integreerub hõlpsasti pilveinfrastruktuuriga.
  • Peakokka on lihtne õppida ja see on tugev kogukonna toetatud DevOps-sõbralik tööriist.

3. Peakoka arhitektuur

Peakoka arhitektuur on jagatud 3 suuremaks osaks.

  • Chef WorkStation: kohalik arendusplatvorm koka kasutajatele konfiguratsioonide loomiseks, testimiseks ja rakendamiseks. See võib olla teie kohalik töölaud, sülearvuti, kuhu on installitud Chef DK (arenduskomplekt). Seda saab kasutada arendus-/testimiskeskkonnana enne tootmiseks reklaamimist.
  • Kokaserver: see on server, kuhu on installitud ja konfigureeritud koka-serveri tarkvara. Ta vastutab koka koodi haldamise ja peakoka tööjaamast konfiguratsioonikoodile juurdepääsu eest. Kokaserver peaks olema Linuxi masin, see ei toeta ühtegi teist opsüsteemi.
  • Peakoka kliendid: on servereid, kes võtavad peakoka serveriga ühendust konfiguratsiooni üksikasjade, näiteks peakoodi ja muude kahendfailides olevate sõltuvate failide kohta. See tõmbab koodi Chefi serverist ja juurutab need kohapeal.

4. Peakoka komponendid

Järgnevad on peamised peakoka komponendid.

  • Ressursid on infrastruktuuri haldamiseks kasutatava retsepti põhimoodul.
  • Atribuut on võtme-väärtuse paari kujul olevad seaded.
  • Retseptid on atribuutide kogu, mida saab tööjaamas teha. See on käskude kogum, mida saab koka klientidele rakendada peakoodina.
  • Retseptide kogu nimetatakse kokaraamatuks.
  • Nuga on Chef Workstationi käsurea tööriist, mis suhtleb Chef Serveriga.

5. Peakoka kasutuselevõtu mudel

Peakoka jaoks on kaks juurutusmudelit.

  • Server Client - seda kasutatakse tootmise juurutamiseks.
  • Chef Zero - seda kasutatakse arendamiseks, testimiseks ja POC-ideks.

6. Kuidas peakokk töötab? Infrastruktuur koodina

Infrastruktuur kui kood on IT-infrastruktuuri haldamine, kus see võimaldab meil automaatselt teostada mitmesuguseid installimis-/juurutus- ja konfiguratsioonihaldusi. Siin on kõik konfiguratsioonid, installatsioonid kirjutatud koodina.

  • Peakoka klient/sõlm registreerib ja autentib koka serveris.
  • Peakoka klient/sõlm uurib regulaarselt kokaserverit. Autentimisprotsess tehakse iga kord, kui peakokk-klient soovib pääseda ligi koka-serveris talletatud andmetele.
  • Ohai on peakokk-kliendi käivitatav tööriist süsteemi oleku määramiseks. See tuvastab sõlme atribuudid (OS, mälu, ketas, protsessor, kernel jne) ja pakub need atribuudid peakokk-klient. Ohai on osa Chef Client'i installimisest.
  • Kui kokaraamatu või seadistuste seadetes on muudatusi, saadetakse see peakokk-kliendile ja värskendatakse/installitakse.
  • Kokaraamatuid ja seadeid värskendatakse peakoka serveris Chef Workstationi abil käsurea tööriista Knife kaudu. Tööjaam saadab noa abil kõik reeglid koka serverisse.
  • Kuna iga klient/sõlme kontrollib peakokk-serverit perioodiliselt, rakendatakse konfiguratsioone individuaalselt vastavalt serveri rollile. Näiteks: peakokkade sõlmedes on mõned sõlmed andmebaasi serverid, mõned sõlmed serverid jne.

Selles artiklis oleme näinud konfiguratsioonihalduse ja peakokkade automatiseerimise tööriista põhimõisteid. Kokkade installimise järkjärgulist protsessi näeme järgmistes artiklites.