Recherche de site Web

Qu’est-ce que l’automatisation et la gestion de la configuration avec CHEF – Partie 1


Prenons un scénario simple, vous avez 10 serveurs redhat où vous devez créer un utilisateur 'tecmint' dans tous les serveurs. L’approche directe consiste à se connecter à chaque serveur et à créer l’utilisateur à l’aide de la commande useradd. Lorsque les serveurs sont des 100 ou 1000, il n’est pratiquement pas possible de se connecter à tous les serveurs un par un.

Ici, la première chose qui nous vient à l’esprit dans de tels cas est d’écrire un script et de laisser le script effectuer l’exécution sur les serveurs, c’est une approche éprouvée. Les scripts ont leurs propres inconvénients, bien qu’ils soient largement utilisés dans les organisations, ils sont difficiles à maintenir si le propriétaire du script quitte l’organisation.

Le script ne fonctionnera pas dans un environnement hétérogène. Le script est une méthode impérative pour accomplir la tâche, où vous devez écrire un long code pour une tâche simple, etc., cette situation nous oblige à rechercher des outils d’automatisation et de gestion de la configuration tels qu’un chef.

Dans cette série d’articles sur Chef, nous allons voir les procédures d’installation et de configuration de l’outil Chef Automation à travers les parties 1 à 3 et couvre les sujets suivants.

Ce tutoriel fournit un point de départ sur le fonctionnement de Chef, l’automatisation, la gestion de la configuration, l’architecture et les composants de Chef.

1. Gestion de la configuration

La gestion de la configuration est le point clé de la pratique DevOps. Dans le cycle de développement logiciel, tous les serveurs doivent être configurés et bien entretenus de manière à ne pas faire de pause dans le cycle de développement. Une mauvaise configuration La gestion peut entraîner des pannes de système, des fuites et des violations de données. L’utilisation d’outils de gestion de la configuration permet d’améliorer la précision, l’efficacité et la rapidité dans l’environnement DevOps.

Il existe deux modèles d’outils de gestion de configuration : PUSH et PULL. Dans le serveur basé sur PUSH, le serveur maître envoie le code de configuration aux serveurs, dans lequel les serveurs individuels basés sur PULL contactent le maître pour obtenir le code de configuration. PUPPET et CHEF sont des modèles basés sur PULL largement utilisés, ANSIBLE est un modèle populaire basé sur PUSH. Dans cet article, nous allons voir à propos de CHEF.

2. Qu’est-ce qu’un chef ?

Un chef est un programme d’automatisation open source qui permet aux administrateurs système d’automatiser le déploiement, les configurations, la gestion et les tâches en cours sur un certain nombre de serveurs et d’autres appareils d’une organisation de manière simple et simple.

  • Il est créé en 2008 sous le nom d’OPSCODE, puis il est renommé CHEF (Chef Automation tool).
  • Il s’agit d’un outil d’automatisation basé sur Ruby utilisé pour gérer la configuration, automatiser et orchestrer l’ensemble de l’infrastructure d’une organisation.
  • Il s’agit d’un projet Opensource et est livré avec deux modèles de déploiement : Server Client et Standalone.
  • Chef prend en charge divers systèmes d’exploitation tels que Ubuntu, Redhat/CentOS, Fedora, macOS, Windows, AIX, etc.
  • Le chef est déclaratif et est beaucoup plus simple que les langages de script natifs.
  • Il fournit un déploiement continu pour permettre à une entreprise de se tenir à jour avec les exigences du marché.
  • La responsabilité principale du chef est de maintenir l’état défini de la configuration.
  • Il dispose de son propre langage déclaratif pour gérer facilement des dizaines et des milliers de nœuds.
  • Le chef est adaptable au cloud, s’intègre facilement à l’infrastructure sur le cloud.
  • Le chef est facile à apprendre et constitue un outil DevOps solide, soutenu par la communauté.

3. Chef d'Architecture

L’architecture des chefs est divisée en 3 grandes sections.

  • Chef WorkStation : plate-forme de développement local permettant aux utilisateurs de Chef, de créer, de tester et d’appliquer des configurations. Il peut s’agir de votre ordinateur de bureau local, d’un ordinateur portable avec Chef DK (Development Kit) installé. Il peut être utilisé comme environnement de développement/test avant d’être promu en production.
  • Chef Server : Il s’agit d’un serveur sur lequel le logiciel chef-server est installé et configuré. Il est responsable de la gestion du code du chef et de l’accès au code de configuration à partir de Chef Workstation. Le serveur chef doit être une machine Linux, il ne prendra en charge aucun autre système d’exploitation.
  • Clients Chef : il s’agit des serveurs qui contactent le serveur Chef pour obtenir des détails de configuration tels que le code Chef et d’autres fichiers dépendants dans les fichiers binaires. Il extrait le code du serveur Chef et le déploie localement.

4. Composants du chef

Voici les principaux composants du chef.

  • Les ressources sont le module de base de Recipe utilisé pour gérer l’infrastructure.
  • L’attribut est les paramètres sous la forme d’une paire clé-valeur.
  • Les recettes sont l’ensemble des attributs qui peuvent être créés dans le poste de travail. Il s’agit d’un ensemble de commandes qui peuvent être appliquées aux clients Chef en tant que Code Chef.
  • La collection de recettes s’appelle un livre de cuisine.
  • Un couteau est un outil de ligne de commande dans Chef Workstation qui interagit avec Chef Server.

5. Modèle de déploiement de Chef

Il existe deux modèles de déploiement pour Chef.

  • Client serveur : il est utilisé pour le déploiement en production.
  • Chef Zero - Il est utilisé pour le développement, les tests et les POC.

6. Comment fonctionne Chef ? L’infrastructure en tant que code

L’infrastructure en tant que code est la gestion de l’infrastructure informatique qui nous permet d’effectuer automatiquement diverses installations/déploiements et gestion de la configuration. Ici, toutes les configurations, les installations sont écrites sous forme de code.

  • Le client/nœud Chef effectuera l’enregistrement et l’authentification avec le serveur Chef.
  • Le client/nœud Chef examinera périodiquement le serveur Chef. Le processus d’authentification est effectué chaque fois que le chef-client souhaite accéder aux données stockées dans le chef-serveur.
  • Ohai est un outil qui sera exécuté par un client Chef pour déterminer l’état du système, il détectera les attributs (système d’exploitation, mémoire, disque, CPU, noyau, etc.) du nœud et fournira ces attributs au client-chef. Ohai fait partie de l’installation de Chef Client.
  • S’il y a des modifications dans le livre de recettes ou les paramètres de configuration, ils seront envoyés au Chef-Client et seront mis à jour/installés.
  • Les livres de recettes et les paramètres seront mis à jour dans le serveur Chef à l’aide de Chef Workstation via l’outil de ligne de commande Knife. Le poste de travail envoie toutes les stratégies au serveur Chef à l’aide de Knife.
  • Comme chaque client/nœud fera l’objet d’une vérification périodique auprès du serveur Chef, les configurations seront appliquées individuellement en fonction du rôle du serveur. Par exemple : Dans les nœuds Chef, certains nœuds seront des serveurs de base de données, certains nœuds seront des serveurs de passerelle, etc.
Conclusion

Dans cet article, nous avons vu les concepts de base de la gestion de la configuration et de l’outil d’automatisation Chef. Nous verrons le processus étape par étape de l’installation de Chef dans les prochains articles.

Articles connexes: