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 disposez de 10 serveurs RedHat sur lesquels vous devez créer un utilisateur « Tecmint » sur tous les serveurs. L'approche directe est que vous devez vous connecter à chaque serveur et créer l'utilisateur avec la commande useradd. Lorsque le nombre de serveurs est de 100 ou 1000, il est pratiquement impossible 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 s’exécuter 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 code long pour une tâche simple, etc., cette situation nous oblige à rechercher des outils de automatisation et de gestion de 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 couvrir les sujets suivants.

Ce didacticiel 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 des configurations

La gestion de la configuration est le point central de la pratique DevOps. Dans le cycle de développement logiciel, tous les serveurs doivent être configurés et correctement entretenus de manière à ne provoquer aucune interruption dans le cycle de développement. Une mauvaise gestion de configuration peut provoquer des pannes du système, des fuites et des violations de données. L'utilisation des outils de gestion de la configuration vise à faciliter la précision, l'efficacité et la rapidité dans l'environnement axé sur DevOps.

Il existe deux modèles d'outils de gestion de configuration : basés sur PUSH et basés sur PULL. Dans le cas basé sur PUSH, le serveur maître envoie le code de configuration aux serveurs dans lesquels 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 basé sur PUSH populaire. Dans cet article, nous verrons CHEF.

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

A 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 autres appareils d'une organisation de manière simple et simple.

  • Il est créé en 2008 sous le nom de OPSCODE. Plus tard, il est renommé CHEF (outil Chef Automation).
  • 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 comme 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 au courant des exigences du marché.
  • La responsabilité principale du chef est de maintenir l'état défini de 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 et s'intègre facilement à Infrastructure on Cloud.
  • Le chef est facile à apprendre et constitue un outil DevOps puissant et soutenu par la communauté.

3. Chef-Architecture

L'architecture du Chef est divisée en 3 grandes sections.

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

4. Composants du chef

Voici les composants clés de Chef.

  • Les Ressources sont le module de base de Recipe utilisé pour gérer l'infrastructure.
  • L'attribut correspond aux paramètres sous forme de 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 Chef Code.
  • La collection de recettes s'appelle un Livre de recettes.
  • Un couteau est un outil de ligne de commande dans Chef Workstation qui interagit avec Chef Server.

5. Modèle de déploiement des chefs

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 travaille le Chef ? L'infrastructure en tant que code

Infrastructure as Code est une gestion de l'infrastructure informatique où elle nous permet d'effectuer automatiquement diverses installations/déploiements et gestion de la configuration. Ici, toutes les configurations, installations sont écrites sous forme de code.

  • Le client/nœud Chef effectuera l'enregistrement et l'authentification auprès du 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 (OS, mémoire, disque, CPU, noyau, etc.) du nœud et fournira ces attributs au chef-client. Ohai fait partie de l'installation de Chef Client.
  • S'il y a des modifications dans les paramètres du livre de recettes ou de la 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 sur le serveur Chef à l'aide de Chef Workstation via l'outil de ligne de commande Knife. Le poste de travail transmet toutes les politiques au serveur Chef à l'aide de Knife.
  • Comme chaque client/nœud fera l'objet d'une vérification périodique avec le 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 d'installation de Chef dans les prochains articles.