Tutorial del xef: transformeu la infraestructura en codi



Chef Tutorial és el segon bloc de la sèrie de blocs Chef. Aquest bloc explica l'arquitectura del xef i els components del xef, com ara llibres de cuina, receptes, etc., amb exemples.

xef Tutorial

Chef Tutorial és el segon bloc de la sèrie de blocs Chef. En el meu bloc anterior , He explicat què és el xef, la gestió de configuracions i com el xef aconsegueix la gestió de la configuració amb l'ajut d'un cas d'ús de Gannett.

En aquest tutorial de xef es tractaran els temes següents:





Estic segur que després de llegir el meu bloc anterior heu de tenir curiositat per saber com funciona exactament el xef. La primera secció d’aquest blog Tutorial de xef us explicarà detalladament l’arquitectura del xef, que us aclarirà tots els dubtes.



Tutorial de xef: arquitectura de xef

Com es mostra al diagrama següent, hi ha tres components principals del xef:

  • Estació de treball
  • Servidor
  • Nodes

Xef Architecture - Xef Tutorial - Edureka

Tutorial de xef: estació de treball



L'estació de treball és la ubicació des de la qual es configuren totes les configuracions del xefgestionat. Aquesta màquina conté totes les dades de configuració que posteriorment es poden enviar al servidor xef central. Aquestes configuracions es proven a l'estació de treball abans d'empènyer-les al servidor del xef. Una estació de treball consisteix en una eina de línia d'ordres anomenada Ganivet, que s’utilitza per interactuar amb el servidor del xef. Hi pot haver diverses estacions de treball que gestionin juntes el servidor central del xef.

Les estacions de treball són les responsables de realitzar les funcions següents:

  • Escriptura de llibres de cuina i receptes que posteriorment s’enviaran al servidor del xef central
  • Gestió de nodes al servidor central del xef

Ara, entenem els punts esmentats un per un.

Escriptura de llibres de cuina i receptes que posteriorment s’enviaran al servidor del xef central

Receptes: Una recepta és un recull de recursos que descriu una configuració o una política particular. Descriu tot el necessari per configurar part d’un sistema. L'usuari escriu receptes que descriuen com el xef gestiona aplicacions i utilitats (com ara el servidor HTTP Apache, MySQL o Hadoop) i com es configuren.

Aquestes receptes descriuen una sèrie de recursos que haurien d’estar en un estat concret, és a dir, paquets que s’han d’instal·lar, serveis que s’han d’executar o fitxers que s’han d’escriure.

Més endavant al bloc , Us mostraré com escriure una recepta per instal·lar el paquet Apache2 als nodes del xef escrivint un codi ruby ​​a l'estació de treball del xef.

Llibres de cuina: Es poden agrupar diverses receptes per formar un llibre de cuina. Un llibre de cuina defineix un escenari i conté tot el necessari per donar suport a aquest escenari:

  • Receptes, que especifica els recursos a utilitzar i l'ordre en què s'han d'aplicar
  • Valors dels atributs
  • Distribucions de fitxers
  • Plantilles
  • Extensions al xef, com ara biblioteques, definicions i recursos personalitzats

Gestió de nodes al servidor central del xef

El sistema de l'estació de treball tindrà les utilitats de línia d'ordres necessàries per controlar i gestionar tots els aspectes del servidor de xef central. Coses com afegir un nou node al servidor de xef central, suprimir un node del servidor de xef central, modificar les configuracions de nodes, etc., es poden gestionar des de la mateixa estació de treball.

Ara vegem quins components de l'estació de treball són necessaris per realitzar les funcions anteriors.

Les estacions de treball tenen dos components principals:

Utilitat de ganivet: Aquesta eina de línia d'ordres es pot utilitzar per comunicar-se amb el servidor xef central des de l'estació de treball. Afegint, eliminant i canviant configuracions de nodes en un servidor central del xef es durà a terme mitjançant aquesta utilitat Knife. Mitjançant la utilitat Knife, els llibres de cuina es poden penjar a un servidor i funcions centrals del xef, i també es poden gestionar els entorns. Bàsicament, tots els aspectes del servidor xef central es poden controlar des de l’estació de treball mitjançant la utilitat Knife.

Un dipòsit de xefs locals: Aquest és el lloc on s’emmagatzemen tots els components de configuració del servidor xef central. Aquest dipòsit de xef es pot sincronitzar amb el servidor de xef central (de nou mitjançant la pròpia utilitat de ganivet).

Xef Tutorial - Xef Server

El servidor del xef actua com a concentrador de dades de configuració. El servidor del xef emmagatzema els llibres de cuina, les polítiques que s’apliquen als nodes i les metadades que descriuen cada node registrat que el client del xef gestiona.

Els nodes fan servir el Chef-Client per demanar al servidor del Chef informació de configuració, com ara receptes, plantilles i distribucions de fitxers. Aleshores, el xef-client fa la major part del treball de configuració possible als propis nodes (i no al servidor del xef). Cada node té instal·lat un programari de client de xef, que farà que la configuració del servidor de xef central sigui aplicable a aquest node. Aquest enfocament escalable distribueix l'esforç de configuració a tota l'organització.

Xef Tutorial - Xef Nodes

Els nodes poden ser un servidor virtual basat en núvol o un servidor físic al vostre propi centre de dades, que es gestiona mitjançant el servidor xef central. El component principal que ha d’estar present al node és un agent que establirà la comunicació amb el servidor xef central. Això s’anomena client xef.

Chef Client realitza les funcions següents:

  • S’encarrega d’interactuar amb el servidor xef central.
  • Gestiona el registre inicial del node al servidor xef central.
  • Elimina els llibres de cuina i els aplica al node per configurar-los.
  • Sondeig periòdic del servidor xef central per obtenir nous elements de configuració, si n'hi ha.

Feu clic aquí per obtenir informació sobre com instal·lar el servidor xef, l'estació de treball i el node

Tutorial del xef: avantatges del xef:

Aquest tutorial del xef serà incomplet si no incloc els avantatges principals del xef:

  • Podeu automatitzar tota una infraestructura amb Chef. Totes les tasques que s'estaven realitzant manualment ara es poden fer mitjançant l'eina Xef.
  • Podeu configurar milers de nodes en qüestió de minuts amb el xef.
  • L'automatització dels xefs funciona amb la majoria de les ofertes de núvol públic com .
  • El xef no només automatitzarà les coses, sinó que també mantindrà els sistemes sota un control constant i confirmarà que el sistema està configurat de la manera que es requereix (l'agent / client del xef realitza aquesta feina). Si algú comet un error modificant un fitxer, el xef el corregirà.
  • Es pot enregistrar tota una infraestructura en forma de dipòsit de xef, que es pot utilitzar com a pla per recrear la infraestructura des de zero.

Espero que hagueu gaudit d’aquest tutorial de xef fins ara, prou amb les publicacions teòriques. divertim-nos amb les mans pràctiques.

Tutorial del xef | Introducció al xef | Edureka

Tutorial del xef: pràctica

Aquí us explicaré com crear una recepta, un llibre de cuina i una plantilla a l’estació de treball del xef. També us explicaré com implementar un llibre de cuina des de l’estació de treball al xef-client (node ​​xef).

Estic fent servir dues imatges virtuals, una per a Chef Workstation i una altra per a Chef Node. Per a Chef Server utilitzaré la versió allotjada de Chef (al núvol). També podeu utilitzar una màquina física per a Chef Server.

Pas 1: Instal·leu Chef DK (kit de desenvolupament) a la vostra estació de treball.

Chef DK és un paquet que conté totes les eines de desenvolupament que necessitareu per codificar Chef. Aquí teniu l’enllaç per descarregar Xef DK .

Aquí trieu el sistema operatiu que utilitzeu. Estic fent servir CentOS 6.8. Per tant, faré clic a Red Hat Enterprise Linux .

Copieu l'enllaç segons la versió de CentOS que utilitzeu. Estic fent servir CentOS 6, ja que podeu veure que he destacat a la captura de pantalla anterior.

Aneu al terminal de l'estació de treball i descarregueu el Chef DK mitjançant l'ordre wget i enganxeu l'enllaç.

Executeu això:

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

El paquet ja està descarregat. És hora d’instal·lar aquest paquet amb rpm.

Executeu això:

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

El xef DK ja està instal·lat a la meva estació de treball.

Pas 2: Creeu una recepta a l'estació de treball

Comencem per crear una recepta a l'estació de treball i provar-la localment per assegurar-nos que funciona.Creeu una carpeta anomenada chef-repo. Podem crear les nostres receptes dins d’aquesta carpeta.

Executeu això:

mkdir chef-repo cd chef-repo

En aquest directori de repositori de xefs, crearé una recepta anomenada edureka.rb. .rb és l'extensió que s'utilitza per al rubí. Faré servir vim editor, podeu utilitzar qualsevol altre editor que vulgueu, com ara gedit, emac, vi, etc.

Executeu això:

vim edureka.rb

Afegiu el següent:

fitxer '/ etc / motd' content 'Benvingut al xef'

Aquesta Recipe és dureka .rb crea un fitxer anomenat / etc / motd amb el contingut 'Benvingut al xef'.

Ara faré servir aquesta recepta per comprovar si funciona.

Executar això:

xef-aplica edureka.rb

Per tant, hi ha un fitxer creat al xef-repo que té contingut Benvingut a Xef.

Pas 3: Marxiu de recepta odificant per instal·lar el paquet httpd

Modificaré la recepta per instal·lar el paquet httpd a la meva estació de treball i copiaré un fitxer index.html a l'arrel del document per defecte per confirmar la instal·lació. L'acció predeterminada per a un recurs de paquet és la instal·lació, per tant, no cal especificar aquesta acció per separat.

Executar això:

vim edureka.rb

Afegiu el següent:

paquet 'servei httpd' httpd 'fer l'acció [: enable,: start] end file' /var/www/html/index.html 'do content' Benvingut a Apache al xef

Ara aplicaré aquestes configuracions executant l'ordre següent:

Executar això:

xef-aplica edureka.rb

L'execució de l'ordre descriu clarament cada instància de la recepta. Instal·la el paquet Apache, habilita i inicia el servei httpd a l'estació de treball. I crea un fitxer index.html a l'arrel del document per defecte amb el contingut 'Benvingut a Apache al xef'.

Ara confirmeu la instal·lació d’Apache2 obrint el navegador web. Escriviu la vostra adreça IP pública o el nom del vostre amfitrió. En el meu cas, és localhost.

Pas 4: Ara crearem el nostre primer llibre de cuina.

Creeu un directori anomenat llibres de cuina i executeu l'ordre següent per generar el llibre de cuina.

Executar això:

mkdir cookbooks cd cookbooks chef generate cookbook httpd_deploy

httpd_deploy és un nom donat al llibre de cuina. Podeu posar qualsevol nom que vulgueu.

Passem a aquest nou directori httpd_deploy.

Executar això:

cd httpd_deploy

Ara vegem l'estructura del fitxer del llibre de cuina creat.

Executar això:

arbre

Pas 5: Ctorneu a crear un fitxer de plantilla.

Abans, vaig crear un fitxer amb alguns continguts, però que no encaixa amb les meves estructures de receptes i llibres de cuina. Per tant, vegem com podem crear una plantilla per a la pàgina index.html.

Executar això:

xef genera la plantilla httpd_deploy index.html

Ara, si veieu la meva estructura de fitxers del Llibre de cuina, hi ha una carpeta creada amb les plantilles de noms amb el fitxer index.html.erb. Editaré aquest fitxer de plantilla index.html.erb i hi afegiré la meva recepta. Consulteu l'exemple següent:

Aneu al directori per defecte

Executar això:

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

Aquí, editeu la plantilla index.html.erb mitjançant qualsevol editor que us agradi. Faré servir vim editor.

Executar això:

vim index.html.erb

Ara afegiu el següent:

Benvingut al desplegament del xef Apache

Pas 6: Cllegeix una recepta amb aquesta plantilla.

Aneu al directori de receptes.

Executa t seva:

cd / root / chef-repo / cookbooks / httpd_deploy / receptes

Ara editeu el fitxer default.rb mitjançant qualsevol editor que vulgueu. Faré servir vim editor.

Executar això:

vim per defecte.rb

Afegiu el següent:

paquet 'httpd' servei 'httpd' fer l'acció [: enable,: start] end template '/var/www/html/index.html' do source 'index.html.erb' end

Ara tornaré a la carpeta de repostes de xef i executaré / provaré la meva recepta a la meva estació de treball.

creeu una instància ec2 a partir de la instantània

Executar això:

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

Segons la meva recepta, Apache està instal·lat a la meva estació de treball, el servei s’inicia i s’activa a l’arrencada. També s'ha creat un fitxer de plantilla a l'arrel del document per defecte.

Ara que he provat la meva estació de treball. És hora de configurar el servidor del xef.

Pas 7: Configuració del servidor del xef

Utilitzaré la versió allotjada de Chef Server al núvol, però també podeu utilitzar una màquina física. Aquest xef-servidor és present a manage.chef.io

Aquí, creeu un compte si no en teniu cap. Un cop hàgiu creat un compte, inicieu la sessió amb les vostres credencials d'inici de sessió.

Així és com sembla el Chef Server.

Si inicieu la sessió per primera vegada, el primer que fareu és crear una organització. L’organització és bàsicament un grup de màquines que gestionareu amb el servidor del xef.

En primer lloc, aniré a la pestanya d'administració. Allà, ja he creat una organització anomenada edu. Per tant, he de descarregar el kit d’inici a la meva estació de treball. Aquest kit d'inici us ajudarà a enviar fitxers des de l'estació de treball al servidor del xef. Feu clic a la icona de configuració de la part dreta i feu clic a Starter Kit.

Quan feu clic allà, obtindreu una opció per descarregar el kit d’inici. Simplement feu-hi clic per descarregar el fitxer zip del kit d’inici.

Mou aquest fitxer al directori arrel.Ara descomprimiu aquest fitxer zip mitjançant l'ordre descomprimir al vostre terminal. Notareu que inclou un directori anomenat chef-repo.

Executar això:

descomprimiu chef-starter.zip

Ara moveu aquest kit inicial al directori del llibre de cuina del directori chef-repo.

Executar això:

mv starter / root / chef-repo / cookbook

Els llibres de cuina del xef estan disponibles al Super Market del llibre de cuina. Podem anar al supermercat del xef. Baixeu-vos els llibres de cuina necessaris supermarket.chef.io . Estic descarregant un llibre de cuina per instal·lar-hi Apache.

Executar e t h és:

cd chef-repo ganivet descarregar lloc de llibres de cuina learn_chef_httpd

Hi ha una bola de Tar descarregada per al llibre de cuina Apache. Ara hem d’extreure el contingut d’aquest fitxer Tar descarregat. Per a això, utilitzaré l'ordre tar.

tar -xvf learn_chef_httpd-0.2.0.tar.gz

Tots els fitxers necessaris es creen automàticament sota aquest Llibre de cuina. No cal fer cap modificació. Comproveu la descripció de la recepta a la carpeta de receptes.

Executa t h és :

cd / root / chef-repo / learn_chef_httpd / recipes cat default.rb

Ara, només penjaré aquest llibre de cuina al meu servidor de xefs perquè em sembla perfecte.

Pas 8: Pengeu el llibre de cuina al servidor del xef.

Per tal de penjar el llibre de cuina Apache que he descarregat, primer moveu aquest fitxer learn_chef_httpd a la carpeta Llibres de cuina del xef-repo. A continuació, canvieu el directori per llibres de cuina.

Executa t h és :

mv / root / chef-repo / learn_chef_httpd / root / chef-repo / books

Ara aneu a aquest directori de llibres de cuina.

Executeu això:

llibres de cuina de CD

Ara en aquest directori, executeu l'ordre següent per carregar l'Apache Cookbooa:

Exec ute t h és:

ganivet de cuina ganivet pujar learn_chef_httpd

Verifiqueu el llibre de cuina des de la consola de gestió del servidor del xef. A la secció de política, trobareu el llibre de cuina que heu penjat. Consulteu la captura de pantalla següent:

Ara el nostre pas final és afegir el xef Node. He configurat una estació de treball, un servidor de xef i ara necessito afegir els meus clients al servidor de xef per automatitzar-los.

Pas 9: Addició de node de xef al servidor de xef.

A efectes de demostració, faré servir una màquina CentOS com a node de xef. Hi pot haver centenars de nodes connectats a un servidor xef. El color del terminal de la meva màquina Node és diferent de l'estació de treball, de manera que podreu diferenciar els dos.

Només necessito l'adreça IP del meu node perquè executaré l'ordre següent al meu mecanisme de nodeés.

Exec tu t és t h és:

ifconfig

Afegiré el meu node de xef al servidor executant l’ordre Knife Bootstrap en què especificaré l’adreça IP del node de xef i el seu nom. Executeu l'ordre que es mostra beloa:

Exec ute t h és:

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

Aquesta ordre també inicialitzarà la instal·lació del xef-client al node xef. Podeu verificar-ho des de la CLI de l'estació de treball mitjançant l'ordre de ganivet, tal com es mostra a continuacióa:

Exec ute t h és:

Llista de nodes de ganivet

També es pot verificar des del servidor del xef. Aneu a la pestanya Nodes de la Consola d’administració del servidor, aquí notareu que el node que heu afegit és present. Consulteu la captura de pantalla següent.

Pas 10: Gestiona la llista d'execució de nodes

Vegem com podem afegir un llibre de cuina al node i gestionar-ne la llista d’executes des del servidor del xef. Com podeu veure a la captura de pantalla següent, feu clic a la pestanya Accions i seleccioneu l'opció Edita la llista d'execució per gestionar la llista Executa.

A les receptes disponibles, podeu veure la nostra recepta learn_chef_httpd, podeu arrossegar-la des dels paquets disponibles a la llista d’execucions actual i desar la llista d’execucions.

Ara inicieu sessió al vostre node i executeu el xef-client per executar Run List.

Exec ute t h és:

client principal

Espero que us hagi agradat aquest tutorial de xef i hàgiu après com es pot fer servir el xef per configurar centenars de nodes. El xef està jugant un paper vital en moltes organitzacions per aconseguir DevOps. Amb el xef, les organitzacions publiquen aplicacions amb més freqüència i confienbvidre.

Si heu trobat aquest bloc a “ xef Tutorial 'Rellevant, fes un cop d'ull al per Edureka, una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món. El curs de formació en certificació Edureka DevOps ajuda els estudiants a adquirir experiència en diversos processos i eines DevOps com Puppet, Xef, Jenkins, Nagios i GIT per automatitzar diversos passos en SDLC.