Chef Tutorial - Transform Infrastructure To Code



Ang Chef Tutorial ay ang pangalawang blog ng serye ng blog ng Chef. Ipinapaliwanag ng blog na ito ang Chef architecture at mga sangkap ng Chef tulad ng Cookbooks, Recipe atbp na may mga halimbawa.

Tutorial ng Chef

Ang Chef Tutorial ay ang pangalawang blog ng serye ng blog ng Chef. Sa aking nakaraang blog , Ipinaliwanag ko kung ano ang Chef, Configuration Management at kung paano nakamit ng Chef ang Configuration Management sa tulong ng isang use-case ng Gannett.

Sa Chef Tutorial na ito ang mga sumusunod na paksa ay saklaw:





Sigurado ako pagkatapos basahin ang aking nakaraang blog dapat kang maging mausisa malaman kung paano eksaktong gumagana ang Chef. Ang unang seksyon ng Chef Tutorial blog na ito ay magpapaliwanag sa iyo ng Chef na arkitektura nang detalyado, na malilinaw ang lahat ng iyong pag-aalinlangan.



Chef Tutorial - Chef Architecture

Tulad ng ipinakita sa diagram sa ibaba, mayroong tatlong pangunahing mga sangkap ng Chef:

  • Workstation
  • Server
  • Mga node

Chef Architecture - Chef Tutorial - Edureka

Chef Tutorial - Workstation



Ang Workstation ay ang lokasyon kung saan naroon ang lahat ng mga pagsasaayos ng Chefpinamamahalaan. Hawak ng makina na ito ang lahat ng data ng pagsasaayos na maaaring itulak sa gitnang Chef Server. Ang mga pagsasaayos na ito ay nasubok sa workstation bago itulak ito sa Chef Server. Ang isang workstation ay binubuo ng isang tool ng command-line na tinatawag Kutsilyo, ginagamit iyon upang makipag-ugnay sa Chef Server. Maaaring may maraming mga Workstation na sama-sama na pamahalaan ang gitnang Chef Server.

Responsable ang mga workstation para sa pagganap ng mga function sa ibaba:

  • Pagsulat ng Mga Cookbook at Recipe na sa paglaon ay maitutulak sa gitnang Chef Server
  • Pamamahala ng mga Node sa gitnang Chef Server

Ngayon, unawain natin isa-isa ang nabanggit na mga puntos.

Pagsulat ng Mga Cookbook at Recipe na sa paglaon ay maitutulak sa gitnang Chef Server

Mga Recipe: Ang isang Recipe ay isang koleksyon ng mga mapagkukunan na naglalarawan sa isang partikular na pagsasaayos o patakaran. Inilalarawan nito ang lahat ng kinakailangan upang mai-configure ang bahagi ng isang system. Nagsusulat ang gumagamit ng Mga Recipe na naglalarawan kung paano namamahala ang Chef ng mga application at utility (tulad ng Apache HTTP Server, MySQL, o Hadoop) at kung paano ito mai-configure.

Inilalarawan ng Mga Recipe na ito ang isang serye ng mga mapagkukunan na dapat nasa isang partikular na estado, ibig sabihin, Mga Pakete na dapat na mai-install, mga serbisyo na dapat na tumatakbo, o mga file na dapat isulat.

Mamaya sa blog , Ipapakita ko sa iyo kung paano magsulat ng isang Recipe upang mai-install ang Apache2 na pakete sa Mga Chef Node sa pamamagitan ng pagsulat ng isang ruby ​​code sa Chef Workstation.

Mga Cookbook: Ang Maramihang Mga Recipe ay maaaring mai-pangkat upang bumuo ng isang Cookbook. Ang isang Cookbook ay tumutukoy sa isang senaryo at naglalaman ng lahat ng kinakailangan upang suportahan ang pangyayaring iyon:

  • Mga resipe, na tumutukoy sa mga mapagkukunang gagamitin at sa pagkakasunud-sunod na mailalapat
  • Mga halaga ng katangian
  • Mga pamamahagi ng file
  • Mga template
  • Mga extension sa Chef, tulad ng mga aklatan, kahulugan, at pasadyang mapagkukunan

Pamamahala ng mga Node sa gitnang Chef Server

Ang sistema ng Workstation ay magkakaroon ng kinakailangang mga utility ng linya ng utos, upang makontrol at pamahalaan ang bawat aspeto ng gitnang Chef Server. Ang mga bagay tulad ng pagdaragdag ng isang bagong Node sa gitnang Chef Server, pagtanggal ng isang Node mula sa gitnang Chef Server, pagbabago ng mga pagsasaayos ng Node atbp ay maaaring mapamahalaan mula mismo sa Workstation.

Tingnan natin ngayon, anong mga sangkap ng Workstation ang kinakailangan upang maisagawa ang mga pag-andar sa itaas.

Ang mga workstation ay may dalawang pangunahing sangkap:

Gamit sa kutsilyo: Ang tool ng linya ng utos na ito ay maaaring magamit upang makipag-usap sa gitnang Chef Server mula sa Workstation. Ang pagdaragdag, pag-aalis, pagbabago ng mga pagsasaayos ng mga Node sa isang gitnang Chef Server ay isasagawa sa pamamagitan ng paggamit ng Knife utility na ito. Gamit ang utility ng Knife, ang mga Cookbook ay maaaring mai-upload sa isang gitnang Chef Server at Mga Tungkulin, ang mga kapaligiran ay maaari ding pamahalaan. Talaga, ang bawat aspeto ng gitnang Chef Server ay maaaring makontrol mula sa Workstation gamit ang Knife utility.

Isang lokal na Repository ng Chef: Ito ang lugar kung saan nakaimbak ang bawat bahagi ng pagsasaayos ng gitnang Chef Server. Ang repository ng Chef na ito ay maaaring maiugnay sa gitnang Chef Server (muli gamit ang mismong utility ng kutsilyo).

Tutorial ng Chef - Chef Server

Ang Chef Server ay kumikilos bilang isang hub para sa data ng pagsasaayos. Ang Chef Server ay nag-iimbak ng mga Cookbook, ang mga patakaran na inilalapat sa mga Node, at metadata na naglalarawan sa bawat rehistradong Node na pinamamahalaan ng Chef-Client.

Ginagamit ng mga node ang Chef-Client upang tanungin ang Chef Server para sa mga detalye ng pagsasaayos, tulad ng Mga Recipe, Template, at pamamahagi ng file. Ang Chef-Client pagkatapos ay gumagawa ng mas maraming gawain sa pagsasaayos hangga't maaari sa kanilang mga Node (at hindi sa Chef Server). Ang bawat Node ay mayroong naka-install na software ng Chef Client, na kukuha ng pababa ng pagsasaayos mula sa gitnang Chef Server na nalalapat sa Node na iyon. Ang nasusukat na pamamaraang ito ay namamahagi ng pagsisikap sa pagsasaayos sa buong samahan.

Tutorial ng Chef - Mga Chef Node

Ang mga node ay maaaring isang cloud based virtual server o isang pisikal na server sa iyong sariling data center, na pinamamahalaan gamit ang gitnang Chef Server. Ang pangunahing sangkap na kailangang naroroon sa Node ay isang ahente na magtatatag ng komunikasyon sa gitnang Chef Server. Tinawag itong Chef Client.

Ginagawa ng Chef Client ang mga sumusunod na pag-andar:

  • Ito ay responsable para sa pakikipag-ugnay sa gitnang Chef Server.
  • Pinamamahalaan nito ang paunang pagpaparehistro ng Node sa gitnang Chef Server.
  • Hinihila nito ang mga Cookbook, at inilalapat ang mga ito sa Node, upang mai-configure ito.
  • Panaka-nakang botohan ng gitnang Chef Server upang kumuha ng mga bagong item sa pagsasaayos, kung mayroon man.

Mag-click dito upang malaman kung paano i-install ang Chef Server, Workstation at Node

Tutorial ng Chef - Mga kalamangan ng Chef:

Hindi magiging kumpleto ang tutorial ng Chef na ito kung, hindi ko isinasama ang mga pangunahing benepisyo ng Chef:

  • Maaari mong i-automate ang isang buong imprastraktura gamit ang Chef. Lahat ng mga gawain na manu-manong ginagawa, maaari nang gawin sa pamamagitan ng Chef tool.
  • Maaari mong i-configure ang libu-libong mga node sa loob ng ilang minuto gamit ang Chef.
  • Gumagana ang automation ng chef kasama ang karamihan ng mga pampublikong alok na gusto .
  • Ang Chef ay hindi lamang mag-i-automate ng mga bagay, ngunit panatilihin din ang mga system sa ilalim ng pare-pareho na pag-check, at kumpirmahing ang system ay sa katunayan ay naka-configure sa paraang kinakailangan (Chef Agent / Client ang trabahong ito). Kung ang isang tao ay nagkamali sa pamamagitan ng pagbabago ng isang file, itatama ito ni Chef.
  • Ang isang buong imprastraktura ay maaaring maitala sa anyo ng isang Chef repository, na maaaring magamit bilang isang blueprint upang muling likhain ang imprastraktura mula sa simula.

Inaasahan kong nasiyahan ka sa tutorial ng Chef na ito hanggang ngayon, sapat na sa mga teoretikal na post! ipaalam sa amin magkaroon ng ilang mga masaya sa hands-on.

Chef Tutorial | Pagsisimula Sa Chef | Edureka

Tutorial ng Chef - Mga Kamay

Dito ipapaliwanag ko sa iyo kung paano lumikha ng isang Recipe, Cookbook at Template sa Chef Workstation. Ipaliwanag ko rin sa iyo kung paano mag-deploy ng isang Cookbook mula sa Workstation hanggang Chef-Client (Chef Node).

Gumagamit ako ng dalawang Virtual na Imahe ng isa para sa Chef Workstation at iba pa para sa Chef Node. Para sa Chef Server gagamitin ko ang naka-host na bersyon ng Chef (sa cloud). Maaari mo ring gamitin ang isang pisikal na makina para sa Chef Server din.

Hakbang 1: I-install ang Chef DK (Development Kit) sa iyong Chef Workstation.

Ang Chef DK ay isang pakete na naglalaman ng lahat ng mga tool sa pag-unlad na kakailanganin mo kapag nag-coding ng Chef. Narito ang link upang mai-download Chef DK .

Dito, piliin ang operating system na iyong ginagamit. Gumagamit ako ng CentOS 6.8. Kaya, mag-click ako sa Red Hat Enterprise Linux .

Kopyahin ang link alinsunod sa bersyon ng CentOS na iyong ginagamit. Gumagamit ako ng CentOS 6, tulad ng nakikita mong na-highlight ko sa screenshot sa itaas.

Pumunta sa iyong terminal ng Workstation at i-download ang Chef DK sa pamamagitan ng paggamit ng utos ng wget at i-paste ang link.

Isagawa ito:

wget https://packages.chef.io/stable/el/6/chefdk-1.0.3-1.el6.x86_64.rpm

Nai-download na ang package. Panahon na upang mai-install ang package na ito gamit ang rpm.

Isagawa ito:

rpm -ivh chefdk-1.0.3-1.el6.x86_64.rpm

Naka-install na ngayon ang Chef DK sa aking Workstation.

Hakbang 2: Lumikha ng isang Recipe sa Workstation

Magsimula tayo sa pamamagitan ng paglikha ng isang Recipe sa Workstation at subukan ito nang lokal upang matiyak na gumagana ito.Lumikha ng isang folder na pinangalanang chef-repo. Maaari naming likhain ang aming Mga Recipe sa loob ng folder na ito.

Isagawa ito:

mkdir chef-repo cd chef-repo

Sa direktoryo ng chef-repo lilikha ako ng isang Recipe na pinangalanang edureka.rb. .rb ay ang extension na ginamit para sa ruby. Gagamit ako ng vim editor, maaari mong gamitin ang anumang iba pang editor na nais mo tulad ng gedit, emac, vi atbp.

Isagawa ito:

vim edureka.rb

Dito idagdag ang sumusunod:

file '/ etc / motd' content 'Maligayang pagdating sa pagtatapos ng Chef

Ang R na itoecipe ay dureka .rb lumilikha ng isang file na pinangalanang / etc / motd na may nilalaman na 'Maligayang Pagdating sa Chef'.

Ngayon ay gagamitin ko ang Recipe na ito upang suriin kung gumagana ito.

Magpatupad ito:

chef-apply edureka.rb

Kaya mayroong isang file na nilikha sa chef-repo na may nilalaman Maligayang pagdating sa Chef.

Hakbang 3: Modifying Recipe file upang mai-install ang httpd package

Babaguhin ko ang Recipe upang mai-install ang pakete ng httpd sa aking Workstation at kopyahin ang isang index.html file sa default na ugat ng dokumento upang kumpirmahin ang pag-install. Ang default na aksyon para sa isang mapagkukunan ng package ay ang pag-install, kaya't hindi ko kailangang tukuyin nang hiwalay ang aksyon na iyon.

Magpatupad ito:

vim edureka.rb

Dagdag dito idagdag ang sumusunod:

package 'httpd' service 'httpd' do action [: paganahin,: simulan] ang end file '/var/www/html/index.html' gawin ang nilalaman 'Maligayang pagdating sa Apache sa Chef' end

Ngayon ay ilalapat ko ang mga pagsasaayos na ito sa pamamagitan ng pagpapatupad ng utos sa ibaba:

Magpatupad ito:

chef-apply edureka.rb

Malinaw na inilalarawan ng pagpapatupad ng utos ang bawat halimbawa sa Recipe. Ini-install nito ang Apache package, nagbibigay-daan at nagsisimula ang serbisyo ng httpd sa Workstation. At lumilikha ito ng isang index.html file sa default na ugat ng dokumento na may nilalaman na 'Maligayang Pagdating sa Apache sa Chef'.

Ngayon kumpirmahin ang pag-install ng Apache2 sa pamamagitan ng pagbubukas ng iyong web-browser. I-type ang iyong pampublikong IP address o ang pangalan ng iyong host. Sa aking kaso, ito ay localhost.

Hakbang 4: Lilikha kami ngayon ng aming unang Cookbook.

Lumikha ng isang direktoryo na tinatawag na mga cookbook, at isagawa ang utos sa ibaba upang mabuo ang Cookbook.

Magpatupad ito:

mkdir cookbooks cd cookbooks chef bumuo ng cookbook httpd_deploy

Ang httpd_deploy ay isang pangalan na ibinigay sa Cookbook. Maaari kang magbigay ng anumang pangalan na nais mo.

Lumipat tayo sa bagong direktoryo na httpd_deploy.

Magpatupad ito:

cd httpd_deploy

Tingnan natin ngayon ang istraktura ng file ng nilikha na Cookbook.

Magpatupad ito:

hanapin ang haba ng array javascript
puno

Hakbang 5: Create isang file ng Template.

Mas maaga pa, lumikha ako ng isang file na may ilang mga nilalaman, ngunit hindi ito akma sa aking mga istruktura ng Mga Recipe at Cookbook. Kaya't tingnan natin kung paano kami makakalikha ng isang template para sa pahina ng index.html.

Magpatupad ito:

bumubuo ang chef ng template httpd_deploy index.html

Ngayon kung nakikita mo ang istraktura ng file ng Cookbook, may isang folder na nilikha kasama ang mga template ng pangalan na may index.html.erb file. I-e-edit ko ang index.html.erb template file na ito at idaragdag ang aking Recipe dito. Sumangguni sa halimbawa sa ibaba:

Pumunta sa direktoryo ng default

Magpatupad ito:

cd / root / chef-repo / cookbook / httpd_deploy / template / default

Dito, i-edit ang template ng index.html.erb sa pamamagitan ng paggamit ng anumang editor na komportable ka. Gagamit ako ng vim editor.

Magpatupad ito:

vim index.html.erb

Idagdag ngayon ang sumusunod:

Maligayang Pagdating sa Paglalagay ng Chef Apache

Hakbang 6: Create isang Recipe kasama ang template na ito.

Pumunta sa direktoryo ng Mga Recipe.

Isagawa ang t kanyang:

cd / root / chef-repo / cookbooks / httpd_deploy / mga recipe

Ngayon i-edit ang default.rb file sa pamamagitan ng paggamit ng anumang editor na gusto mo. Gagamit ako ng vim editor.

Magpatupad ito:

vim default.rb

Dagdag dito idagdag ang sumusunod:

package 'httpd' service 'httpd' do action [: paganahin,: simulan] ang template ng pagtatapos '/var/www/html/index.html' do source 'index.html.erb' end

Ngayon ay babalik ako sa aking chef-repo folder at patakbuhin / subukan ang aking resipe sa aking Workstation.

Magpatupad ito:

cd / root / chef-repo chef-client --local-mode --runlist 'recipe [httpd_deploy]'

Ayon sa aking Recipe, ang Apache ay naka-install sa aking Workstation, ang serbisyo ay sinisimulan at pinagana sa boot. Gayundin isang template file ang nilikha sa aking default na root root.

Ngayong nasubukan ko na ang aking Workstation. Panahon na upang i-setup ang Chef Server.

Hakbang 7: I-setup ang Chef Server

Gagamitin ko ang naka-host na bersyon ng Chef Server sa cloud ngunit maaari mo ring gamitin ang isang pisikal na makina. Ang Chef-Server na ito ay naroroon sa pamahalaan.chef.io

Dito lumilikha ng isang account kung wala kang account. Kapag nakalikha ka ng isang account, mag-sign in gamit ang iyong mga kredensyal sa pag-login.

Ganito ang hitsura ng Chef Server.

java kung paano tapusin ang programa

Kung nag-sign in ka sa unang pagkakataon, ang pinakaunang bagay na iyong gagawin ay ang paglikha ng isang samahan. Karaniwan ang samahan ay isang pangkat ng Mga Makina na pamamahalaan mo sa Chef Server.

Una, pupunta ako sa tab ng administrasyon. Sa banda roon, nakalikha na ako ng isang samahan na tinatawag na edu. Kaya kailangan kong i-download ang starter kit sa aking Workstation. Tutulungan ka ng starter kit na itulak ang mga file mula sa Workstation patungo sa Chef Server. Mag-click sa icon ng mga setting sa kanang bahagi at mag-click sa Starter Kit.

Kapag nag-click ka doon makakakuha ka ng isang pagpipilian upang i-download ang Starter Kit. Mag-click lamang dito upang i-download ang Starter Kit zip file.

Ilipat ang file na ito sa iyong direktoryo ng ugat.Ngayon unzip ang zip file na ito sa pamamagitan ng paggamit ng unzip command sa iyong terminal. Mapapansin mo na nagsasama ito ng isang direktoryo na tinatawag na chef-repo.

Magpatupad ito:

unzip chef-starter.zip

Ngayon ilipat ang starter kit na ito sa direktoryo ng cookbook sa direktoryo ng chef-repo.

Magpatupad ito:

mv starter / root / chef-repo / cookbook

Ang mga Chef Cookbook ay magagamit sa Cookbook Super Market, maaari kaming pumunta sa Chef SuperMarket. I-download ang kinakailangang Cookbook mula sa supermarket.chef.io . Nagda-download ako ng isa sa Cookbook upang mai-install ang Apache mula doon.

Magpatupad e t h ay:

Pag-download ng site ng chef-repo kutsilyo ng kutsilyo Learn_chef_httpd

Mayroong Tar ball na na-download para sa Apache Cookbook. Ngayon, kailangan naming kunin ang mga nilalaman mula sa na-download na file na Tar. Para doon, gagamit ako ng utos ng alkitran.

tar -xvf matuto_chef_httpd-0.2.0.tar.gz

Ang lahat ng kinakailangang mga file ay awtomatikong nilikha sa ilalim ng Cookbook na ito. Hindi na kailangang gumawa ng anumang mga pagbabago. Suriin natin ang paglalarawan ng Recipe sa loob ng aking folder ng mga recipe.

Isagawa ang t h ay :

cd / root / chef-repo / Learn_chef_httpd / mga recipe ng cat default.rb

Ngayon, i-a-upload ko lamang ang cookbook na ito sa aking Chef Server dahil mukhang perpekto ito sa akin.

Hakbang 8: Mag-upload ng Cookbook sa Chef Server.

Upang mai-upload ang Apache Cookbook na na-download ko, ilipat muna ang Learn_chef_httpd file na ito sa folder ng Cookbooks sa chef-repo. Pagkatapos baguhin ang iyong direktoryo sa mga cookbook.

Isagawa ang t h ay :

mv / root / chef-repo / Learn_chef_httpd / root / chef-repo / cookbooks

Lumipat ngayon sa direktoryo ng mga cookbook na ito.

Isagawa ito:

mga librong tagluto ng cd

Ngayon sa direktoryong ito, isagawa ang utos sa ibaba upang mai-upload ang Apache Cookboosa:

Exec ute t h ay:

upload ng cookbook ng kutsilyo malaman_chef_httpd

I-verify ang Cookbook mula sa console ng Pamamahala ng Chef Server. Sa seksyon ng patakaran, mahahanap mo ang Cookbook na na-upload mo. Sumangguni sa screenshot sa ibaba:

Ngayon ang aming pangwakas na hakbang ay upang idagdag ang Chef Node. Mayroon akong pag-set up ng isang Workstation, isang Chef Server at ngayon kailangan kong idagdag ang aking Mga Kliyente sa Chef Server para sa awtomatiko.

Hakbang 9: Pagdaragdag ng Chef Node sa Chef Server.

Para sa layunin ng pagpapakita ay gagamit ako ng isang CentOS machine bilang Chef Node. Maaaring maging daan-daang mga Node na konektado sa isang Chef Server. Ang kulay ng terminal ng aking Node machine ay naiiba mula sa Workstation upang magagawa mong makilala ang dalawa.

Kailangan ko lang ang IP address ng aking Node para doon ko isasagawa ang utos sa ibaba sa aking Node machinay

Exec ikaw t ay t h ay:

ifconfig

Idagdag ko ang aking Chef Node sa Server sa pamamagitan ng pagpapatupad ng Knife Bootstrap utos kung saan ko tutukuyin ang IP address ng The Chef Node at ang pangalan nito. Ipatupad ang ipinakitang utos na belosa:

Exec ute t h ay:

kutsilyo bootstrap 192.168.56.102 --ssh-user root --ssh-password edureka --node-name chefNode

Sisimulan din ng utos na ito ang pag-install ng Chef-Client sa Chef Node. Maaari mong i-verify ito mula sa CLI sa Workstation gamit ang command na kutsilyo, tulad ng ipinakitang belosa:

Exec ute t h ay:

Listahan ng node ng kutsilyo

Maaari mo ring i-verify mula sa Chef Server. Pumunta sa tab na mga node sa iyong Server Management Console, dito mapapansin mo na naroroon ang node na iyong idinagdag. Sumangguni sa screenshot sa ibaba.

Hakbang 10: Pamahalaan ang Node Run List

Tingnan natin kung paano tayo maaaring magdagdag ng isang Cookbook sa Node at pamahalaan ang listahan ng Run nito mula sa Chef Server. Tulad ng nakikita mo sa screenshot sa ibaba, i-click ang tab na Mga Pagkilos at piliin ang pagpipiliang I-edit ang Run list upang pamahalaan ang listahan ng Run.

Sa Magagamit na Mga Recipe, maaari mong makita ang aming Learn_chef_httpd Recipe, maaari mong i-drag iyon mula sa mga magagamit na mga pakete sa kasalukuyang Listahan ng Run at i-save ang listahan ng Run.

Ngayon mag-login sa iyong Node at magpatakbo lamang ng chef-client upang maisagawa ang Run List

Exec ute t h ay:

punong kliyente

Inaasahan kong nasiyahan ka sa Chef Tutorial na ito at natutunan kung paano magagamit ang Chef upang mai-configure ang daan-daang mga Node. Si Chef ay gumaganap ng isang mahalagang papel sa maraming mga organisasyon upang makamit ang DevOps. Sa mga organisasyon ng Chef ay naglalabas ng mga application nang mas madalas at reliabbaso

Kung nakita mo ang blog na ito sa “ Tutorial ng Chef 'Nauugnay, tingnan ang ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo. Ang kurso sa Pagsasanay sa Certification ng Edureka DevOps ay tumutulong sa mga nag-aaral na makakuha ng kadalubhasaan sa iba't ibang mga proseso at tool ng DevOps tulad ng Puppet, Chef, Jenkins, Nagios at GIT para sa pag-automate ng maraming mga hakbang sa SDLC.