Kas yra automatizavimas ir konfigūracijos valdymas naudojant CHEF – 1 dalis


Paimkime paprastą scenarijų: turite 10 „redhat“ serverių, kuriuose visuose serveriuose turite sukurti „tecmint“ vartotoją. Tiesioginis požiūris yra toks, kad turite prisijungti prie kiekvieno serverio ir sukurti vartotoją naudodami komandą useradd. Kai serveriai yra 100s arba 1000s, prisijungti prie visų serverių po vieną praktiškai neįmanoma.

Čia pirmas dalykas, kuris ateina į galvą tokiais atvejais, yra parašyti scenarijų ir leisti scenarijui atlikti vykdymą serveriuose, tai yra patikrintas metodas. Scenarijus turi savų trūkumų, nors jis plačiai naudojamas organizacijose, jį sunku išlaikyti, jei scenarijaus savininkas palieka organizaciją.

Scenarijus neveiks nevienalytėje aplinkoje. Scenarijus yra būtinas užduočiai atlikti skirtas metodas, kai reikia parašyti ilgą paprastos užduoties kodą ir pan., todėl šioje situacijoje turime ieškoti automatizavimo ir konfigūracijos valdymo įrankių, pvz., Virėjas.

Šioje straipsnių serijoje apie Chef 1–3 dalyse apžvelgsime „Chef Automation“ įrankio diegimo ir konfigūravimo procedūras ir apimsime šias temas.

Šioje mokymo programoje pateikiamas atspirties taškas apie tai, kaip veikia Chef, automatizavimas, konfigūracijos valdymas, architektūra ir Chef komponentai.

1. Konfigūracijos valdymas

Konfigūracijos valdymas yra pagrindinis DevOps praktikos akcentas. Programinės įrangos kūrimo cikle visi serveriai turi būti sukonfigūruoti programine įranga ir gerai prižiūrimi taip, kad nepadarytų pertraukos kūrimo cikle. Bloga konfigūracija Valdymas gali sukelti sistemos gedimus, nutekėjimus ir duomenų pažeidimus. Naudojant Konfigūracijos valdymo įrankius siekiama palengvinti tikslumą, efektyvumą ir greitį „DevOps“ valdomoje aplinkoje.

Yra du konfigūracijos valdymo įrankių modeliai – pagrįstas PUSH ir pagrįstas PULL. Naudojant PUSH, pagrindinis serveris nusiunčia konfigūracijos kodą serveriams, o atskiri PULL serveriai susisiekia su pagrindiniu serveriu, kad gautų konfigūracijos kodą. PUPPET ir CHEF yra plačiai naudojami modeliai, pagrįsti traukimu, o ANSIBLE yra populiarus PUSH modelis. Šiame straipsnyje kalbėsime apie VIRĖJAS.

2. Kas yra virėjas?

Šefas yra atvirojo kodo automatizavimo programa, leidžianti sistemos administratoriams paprastai ir lengvai automatizuoti diegimą, konfigūraciją, valdymą ir vykdomas užduotis daugelyje serverių ir kitų organizacijos įrenginių.

  • Jis buvo įkurtas 2008 m. kaip OPSCODE, vėliau pervadintas į CHEF (Chef Automation tool).
  • Tai „Ruby“ pagrindu sukurtas automatizavimo įrankis, naudojamas konfigūracijai valdyti, automatizuoti ir organizuoti visą organizacijos infrastruktūrą.
  • Tai atvirojo kodo projektas, kuriame yra du diegimo modeliai: serverio klientas ir autonominis.
  • Chef palaiko įvairias operacines sistemas, tokias kaip Ubuntu, Redhat/CentOS, Fedora, macOS, Windows, AIX ir kt.
  • Šefas yra deklaratyvus ir yra daug paprastesnis nei gimtosios skriptų kalbos.
  • Tai suteikia nuolatinį diegimą, kad įmonė galėtų nuolat atnaujinti rinkos reikalavimus.
  • Pagrindinė šefo pareiga yra išlaikyti apibrėžtą konfigūracijos būseną.
  • Ji turi savo deklaratyviąją kalbą, leidžiančią lengvai valdyti 10 ir 1000 mazgų.
  • Šefas prisitaiko prie debesies, lengvai integruojasi su „Infrastructure on Cloud“.
  • Šefą lengva išmokti ir jis yra stiprus bendruomenės palaikomas „DevOps“ įrankis.

3. Virėjo architektūra

Šefo architektūra suskirstyta į 3 pagrindines dalis.

  • Chef WorkStation: vietinė kūrimo platforma, skirta Chef naudotojams kurti, išbandyti ir taikyti konfigūracijas. Tai gali būti jūsų vietinis stalinis kompiuteris, nešiojamasis kompiuteris su įdiegtu Chef DK (kūrimo rinkiniu). Jis gali būti naudojamas kaip kūrimo/testavimo aplinka prieš paleidžiant į gamybą.
  • Šefo serveris: tai serveris, kuriame įdiegta ir sukonfigūruota virėjo serverio programinė įranga. Jis atsakingas už šefo kodo valdymą ir prieigą prie konfigūracijos kodo iš Chef Workstation. Virėjo serveris turėtų būti „Linux“ įrenginys, jis nepalaikys jokios kitos operacinės sistemos.
  • Chef Clients: yra serverių, kurie susisiekia su Chef serveriu dėl konfigūracijos informacijos, pvz., virėjo kodo ir kitų priklausomų failų dvejetainiuose failuose. Jis paima kodą iš Chef serverio ir diegia juos vietoje.

4. Virėjo komponentai

Toliau pateikiami pagrindiniai Chef komponentai.

  • Ištekliai yra pagrindinis recepto modulis, naudojamas infrastruktūros valdymui.
  • Atributas yra nustatymai rakto-reikšmių poros pavidalu.
  • Receptai – tai atributų, kuriuos galima sukurti darbo stotyje, rinkinys. Tai komandų rinkinys, kurį galima pritaikyti virėjo klientams kaip virėjo kodą.
  • Receptų rinkinys vadinamas Kuo gaminių knyga.
  • Peilis yra komandų eilutės įrankis Chef Workstation, kuris sąveikauja su Chef serveriu.

5. Virėjo diegimo modelis

Yra du virėjos diegimo modeliai.

  • Serverio klientas – jis naudojamas gamybos diegimui.
  • Chef Zero – naudojamas kūrimui, testavimui ir POC.

6. Kaip dirba virėjas? Infrastruktūra kaip kodas

Infrastruktūra kaip kodas yra IT infrastruktūros valdymas, kur leidžia automatiškai atlikti įvairius diegimo/diegimo ir konfigūracijos valdymus. Čia visos konfigūracijos, instaliacijos parašytos kaip kodas.

  • „Chef“ klientas/mazgas atliks registraciją ir autentifikavimą „Chef“ serveryje.
  • „Chef“ klientas/mazgas periodiškai peržiūrės „Chef Server“. Autentifikavimo procesas atliekamas kiekvieną kartą, kai šefas-klientas nori pasiekti duomenis, saugomus šefo-serveryje.
  • Ohai yra įrankis, kurį paleis „Chef“ klientas, kad nustatytų sistemos būseną, jis aptiks mazgo atributus (OS, atmintį, diską, centrinį procesorių, branduolį ir kt.) ir pateiks tie atributai virėjui-klientui. Ohai yra „Chef Client“ diegimo dalis.
  • Jei bus kokių nors kulinarinės knygos ar konfigūracijos nustatymų pakeitimų, jie bus išsiųsti šefui-klientui ir atnaujinami/įdiegiami.
  • Kulinarinės knygos ir nustatymai bus atnaujinami „Chef“ serveryje naudojant „Chef Workstation“ naudojant komandinės eilutės įrankį Knife. Darbo stotis siunčia visas strategijas į šefo serverį naudodama peilį.
  • Kadangi kiekvienas klientas/mazgas bus periodiškai tikrinamas su Chef serveriu, konfigūracijos bus taikomos atskirai, atsižvelgiant į serverio vaidmenį. Pavyzdžiui: Chef Nodes kai kurie mazgai bus duomenų bazių serveriai, kai kurie mazgai bus šliuzo serveriai ir pan.
Išvada

Šiame straipsnyje mes matėme pagrindines konfigūracijos valdymo ir virėjo automatizavimo įrankio sąvokas. Žingsnis po žingsnio šefo diegimo procesą pamatysime būsimuose straipsniuose.