Què és la gestió de l'automatització i la configuració amb CHEF - Part 1


Prenem un escenari senzill, tens 10 servidors redhat on has de crear un usuari tecmint a tots els servidors. L'enfocament directe és que heu d'iniciar sessió a cada servidor i crear l'usuari amb l'ordre useradd. Quan els servidors són 100 o 1000, pràcticament no és possible iniciar sessió a tots els servidors un per un.

Aquí, el primer que ens ve al cap en aquests casos és escriure un script i deixar que l'script realitzi l'execució als servidors, és un enfocament provat. Els scripts tenen els seus propis desavantatges, tot i que s'utilitza àmpliament a les organitzacions, és difícil de mantenir si el propietari de l'script abandona l'organització.

El guió no funcionarà en un entorn heterogeni. L'script és un mètode imperatiu per dur a terme la tasca, on cal escriure codi llarg per a una tasca senzilla, etc., aquesta situació ens obliga a buscar eines d'automatització i gestió de configuració com ara un xef.

En aquesta sèrie d'articles sobre Chef, veurem els procediments d'instal·lació i configuració de l'eina Chef Automation a través de les parts 1-3 i tractarem els temes següents.

Aquest tutorial proporciona un punt de partida sobre com funciona Chef, l'automatització, la gestió de la configuració, l'arquitectura i els components de Chef.

1. Gestió de la configuració

La gestió de la configuració és el punt central de la pràctica de DevOps. En el cicle de desenvolupament de programari, tots els servidors haurien d'estar configurats amb programari i mantenir-se bé de manera que no s'hagin de fer cap interrupció en el cicle de desenvolupament. La gestió de la configuració incorrecta pot provocar interrupcions del sistema, fuites i violacions de dades. L'ús de les eines de gestió de la configuració consisteix a facilitar la precisió, l'eficiència i la velocitat en l'entorn impulsat per DevOps.

Hi ha dos models d'eines de gestió de configuració: basats en PUSH i basats en PULL. Al servidor basat en PUSH, el servidor mestre envia el codi de configuració als servidors, on els servidors individuals basats en PULL contacten amb el mestre per obtenir el codi de configuració. PUPPET i CHEF són models basats en PULL molt utilitzats, ANSIBLE és un model popular basat en PUSH. En aquest article, veurem sobre el CHEF.

2. Què és un xef?

Un xef és un programa d'automatització de codi obert que permet als administradors del sistema automatitzar el desplegament, les configuracions, la gestió i les tasques en curs en diversos servidors i altres dispositius d'una organització d'una manera senzilla i senzilla.

  • Es va establir l'any 2008 com a OPSCODE i després passa a anomenar-se CHEF (eina d'automatització del xef).
  • És una eina d'automatització basada en Ruby que s'utilitza per gestionar la configuració, automatitzar i orquestrar tota la infraestructura d'una organització.
  • És un projecte de codi obert i inclou dos models de desplegament: client de servidor i autònom.
  • Chef admet diversos sistemes operatius com Ubuntu, Redhat/CentOS, Fedora, macOS, Windows, AIX, etc.
  • El xef és declaratiu i és molt més senzill que els llenguatges de script nadius.
  • Ofereix un desplegament continu per permetre que una empresa es mantingui actualitzada amb els requisits del mercat.
  • La responsabilitat principal del xef és mantenir l'estat definit de configuració.
  • Té el seu propi llenguatge declaratiu per gestionar 10 i 1000 de nodes amb facilitat.
  • El xef és adaptable al núvol, s'integra fàcilment amb Infrastructure on Cloud.
  • El xef és fàcil d'aprendre i és una eina sòlida i compatible amb DevOps compatible amb la comunitat.

3. Arquitectura del xef

L'arquitectura del xef es divideix en 3 grans seccions.

  • Chef WorkStation: plataforma de desenvolupament local per als usuaris de Chef per crear, provar i aplicar configuracions. Pot ser el vostre ordinador d'escriptori local, portàtil amb Chef DK (kit de desenvolupament) instal·lat. Es pot utilitzar com a entorn de desenvolupament/prova abans de promocionar-lo a la producció.
  • Servidor del xef: és un servidor que té instal·lat i configurat el programari del servidor del xef. És l'encarregat de gestionar el codi del xef i accedir al codi de configuració des de Chef Workstation. El servidor del xef hauria de ser una màquina Linux, no admetrà cap altre sistema operatiu.
  • Clients Chef: hi ha servidors que contacten amb el servidor Chef per obtenir detalls de configuració, com ara el codi del xef i altres fitxers dependents en binaris. Treu el codi del servidor Chef i el desplega localment.

4. Components del xef

A continuació es mostren els components clau del xef.

  • Els recursos són el mòdul bàsic de Recipe utilitzat per gestionar la infraestructura.
  • L'atribut és la configuració en forma de parell clau-valor.
  • Les receptes són la col·lecció d'atributs que es poden fer a l'estació de treball. És un conjunt d'ordres que es poden aplicar als clients del xef com a codi del xef.
  • La col·lecció de receptes s'anomena llibre de cuina.
  • Un ganivet és una eina de línia d'ordres a Chef Workstation que interactua amb el Chef Server.

5. Model de desplegament del xef

Hi ha dos models de desplegament per a Chef.

  • Client del servidor: s'utilitza per al desplegament de producció.
  • Chef Zero: s'utilitza per al desenvolupament, proves i POC.

6. Com treballa el xef? La infraestructura com a codi

Infraestructura com a codi és la Gestió d'Infraestructura de TI on ens permet realitzar automàticament diverses instal·lacions/desplegaments i Gestió de la configuració. Aquí, totes les configuracions, instal·lacions s'escriuen com a codi.

  • El client/node Chef farà el registre i l'autenticació amb el servidor Chef.
  • El client/node Chef buscarà periòdicament el servidor Chef. El procés d'autenticació es fa cada vegada que el xef-client vol accedir a les dades emmagatzemades al xef-servidor.
  • Ohai és una eina que executarà un client Chef per determinar l'estat del sistema, detectarà els atributs (SO, memòria, disc, CPU, nucli, etc.) del node i proporcionarà aquests atributs al xef-client. Ohai forma part de la instal·lació de Chef Client.
  • Si hi ha cap canvi a la configuració del llibre de cuina o de la configuració, s'enviarà al client-chef i s'actualitzarà/instal·larà.
  • Els llibres de cuina i la configuració s'actualitzaran al servidor de Chef mitjançant Chef Workstation mitjançant l'eina de línia d'ordres Knife. L'estació de treball envia totes les polítiques al servidor de Chef mitjançant Knife.
  • Com que cada client/node tindrà una comprovació periòdica amb el servidor Chef, les configuracions s'aplicaran individualment segons la funció del servidor. Per exemple: als nodes Chef, alguns nodes seran servidors de bases de dades, alguns nodes seran servidors de passarel·la, etc.

En aquest article, hem vist els conceptes bàsics de la gestió de la configuració i l'eina d'automatització de Chef. Veurem el procés pas a pas d'instal·lació de Chef als propers articles.