Chef - Aperçu

Chef est une technologie open source développée par Opscode. Adam Jacob, co-fondateur d'Opscode est connu comme le fondateur de Chef. Cette technologie utilise l'encodage Ruby pour développer des éléments de base tels que des recettes et des livres de cuisine. Chef est utilisé dans l'automatisation de l'infrastructure et aide à réduire les tâches manuelles et répétitives pour la gestion de l'infrastructure.

Chef a sa propre convention pour les différents blocs de construction, qui sont nécessaires pour gérer et automatiser l'infrastructure.

Pourquoi chef?

Chef est une technologie de gestion de configuration utilisée pour automatiser le provisionnement de l'infrastructure. Il est développé sur la base du langage Ruby DSL. Il permet de rationaliser la tâche de configuration et de gestion du serveur de l'entreprise. Il a la capacité de s'intégrer à n'importe quelle technologie cloud.

Dans DevOps, nous utilisons Chef pour déployer et gérer des serveurs et des applications en interne et sur le cloud.

Caractéristiques du chef

Voici les caractéristiques les plus importantes de Chef -

  • Chef utilise le langage Ruby populaire pour créer un langage spécifique au domaine.

  • Chef ne fait pas d'hypothèses sur l'état actuel d'un nœud. Il utilise ses mécanismes pour obtenir l'état actuel de la machine.

  • Chef est idéal pour déployer et gérer le serveur cloud, le stockage et les logiciels.

Avantages du chef

Chef offre les avantages suivants -

  • Lower barrier for entry - Comme Chef utilise le langage Ruby natif pour la configuration, un langage de configuration standard, il peut être facilement choisi par toute personne ayant une certaine expérience du développement.

  • Excellent integration with cloud- En utilisant l'utilitaire de couteau, il peut être facilement intégré à l'une des technologies cloud. C'est le meilleur outil pour une organisation qui souhaite distribuer son infrastructure sur un environnement multi-cloud.

Inconvénients du chef

Certains des principaux inconvénients de Chef sont les suivants -

  • L'un des énormes inconvénients de Chef est la façon dont les livres de cuisine sont contrôlés. Il faut constamment garder les enfants pour que les personnes qui travaillent ne se gâchent pas avec les autres livres de cuisine.

  • Seul Chef solo est disponible.

  • Dans la situation actuelle, cela ne convient que pour le cloud AWS.

  • Il n'est pas très facile d'apprendre si la personne ne connaît pas Ruby.

  • La documentation fait encore défaut.

Blocs de construction clés du chef

Recette

Il peut être défini comme un ensemble d'attributs utilisés pour gérer l'infrastructure. Ces attributs qui sont présents dans la recette sont utilisés pour changer l'état existant ou définir un nœud d'infrastructure particulier. Ils sont chargés lors de l'exécution du client Chef et regroupés avec l'attribut existant du nœud (machine). Il atteint alors le statut défini dans la ressource noeud de la recette. C'est le principal outil du livre de cuisine.

Livre de recettes

Un livre de cuisine est une collection de recettes. Ce sont les blocs de construction de base qui sont téléchargés sur le serveur Chef. Lorsque Chef run a lieu, il garantit que les recettes présentes à l'intérieur obtiennent une infrastructure donnée à l'état souhaité, comme indiqué dans la recette.

Ressource

C'est le composant de base d'une recette utilisée pour gérer l'infrastructure avec différents types d'états. Il peut y avoir plusieurs ressources dans une recette, ce qui aidera à configurer et à gérer l'infrastructure. Par exemple -

  • package - Gère les packages sur un nœud

  • service - Gère les services sur un nœud

  • user - Gère les utilisateurs sur le nœud

  • group - Gère des groupes

  • template - Gère les fichiers avec le modèle Ruby intégré

  • cookbook_file - Transfère les fichiers du sous-répertoire des fichiers dans le livre de recettes vers un emplacement sur le nœud

  • file - Gère le contenu d'un fichier sur le nœud

  • directory - Gère les répertoires sur le nœud

  • execute - Exécute une commande sur le nœud

  • cron - Modifie un fichier cron existant sur le nœud

Attribut

Ce sont essentiellement des paramètres. Ils peuvent être considérés comme une paire de valeurs clés de tout ce que l'on souhaite utiliser dans le livre de cuisine. Il existe plusieurs types d'attributs qui peuvent être appliqués, avec un niveau de priorité différent sur les paramètres finaux sous lesquels le nœud fonctionne.

Fichier

C'est un sous-répertoire dans le livre de recettes qui contient tout fichier statique qui sera placé sur les nœuds qui utilisent les livres de recettes. Une recette peut alors être déclarée en tant que ressource qui déplace les fichiers de ce répertoire vers le nœud final.

Modèles

Ils sont similaires aux fichiers, mais ils ne sont pas statiques. Les fichiers de modèle se terminent par l'extension .ebr, ce qui signifie qu'ils contiennent Ruby intégré. Ils sont principalement utilisés pour remplacer une valeur d'attribut dans les fichiers pour créer la version finale du fichier qui sera placée sur le nœud.

Metadata.rb

Il est utilisé pour gérer les métadonnées sur le package. Cela comprend des détails tels que le nom et les détails du package. Il inclut également des éléments tels que les informations de dépendance qui indiquent les livres de recettes dont ce livre de recettes a besoin pour fonctionner. Cela permet au serveur Chef de créer correctement la liste d'exécution du nœud et garantit que toutes les pièces sont transférées correctement.

Structure du livre de recettes par défaut

C:\chef\cookbooks\nginx>tree 
Folder PATH listing for volume Local Disk 
Volume serial number is BE8B-6427 
C: ├───attributes 
├───definitions 
├───files 
│   └───default 
├───libraries 
├───providers 
├───recipes 
├───resources 
└───templates 
    └───default

Chef - Technologies connexes

Voici la liste des technologies liées à Chef.

Fantoche

Puppet fournit un moyen standard de fournir et d'exploiter un logiciel, quel que soit l'endroit où il s'exécute. Il s'agit d'un moteur d'administration automatisé pour les systèmes Linux, Unix et Windows qui effectue des tâches administratives basées sur des spécifications centralisées.

Le primaire features of Puppet sont comme suit -

  • Implémentation de nouveaux systèmes avec une configuration uniforme.
  • Mise à jour des systèmes et mise à niveau des progiciels de sécurité et de sécurité.
  • Incorporer de nouvelles fonctionnalités et ajouter des capacités habiles.
  • Personnalisation des configurations pour garantir la disponibilité des sources de données.
  • Optimiser les ressources disponibles et minimiser les coûts.
  • Simplifier les rôles et permettre à l'équipe de se concentrer sur les problèmes essentiels et productifs.
  • Obtenir une vue d'ensemble de l'infrastructure disponible.

Ansible

Ansible est une plateforme d'automatisation informatique radicalement simple qui facilite le déploiement de vos applications et systèmes. Évitez d'écrire des scripts ou du code personnalisé pour déployer et mettre à jour vos applications - automatisez dans un langage proche de l'anglais simple, en utilisant SSH, sans agents à installer sur des systèmes distants.

Le primaire features of Ansible sont comme suit -

  • Simple et facile à apprendre
  • Écrit en Python
  • Agentless
  • Playbooks basés sur YAML
  • Galaxie ansible

SaltStack

SaltStack est utilisé pour la configuration basée sur les données. Il s'agit d'une nouvelle approche de la gestion des infrastructures basée sur un bus de communication dynamique. Il est utilisé pour l'orchestration basée sur les données, l'exécution à distance pour toute infrastructure et la gestion de la configuration pour toute pile d'applications.

en tissu

Fabric est un langage de programmation basé sur Python, qui est développé en tant qu'API de Python qui doit être importé en code Python afin de configurer et de gérer une infrastructure.