Qu'est-ce que l'automatisation et la gestion de la configuration avec le chef - Partie 1

Qu'est-ce que l'automatisation et la gestion de la configuration avec le 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 est que vous devez vous connecter dans chaque serveur et créer l'utilisateur avec la commande userAdd. Lorsque les serveurs sont 100 ou 1000, connectez-vous dans tous les serveurs, un par un n'est pratiquement pas possible.

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 ses propres inconvénients, bien qu'il soit largement utilisé dans les organisations, il est difficile à 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 demande de rechercher Gestion de l'automatisation et de la configuration des outils 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 d'automatisation du chef via les parties 1-3 et couvre les sujets suivants.

Partie 1: Qu'est-ce que l'automatisation et la gestion de la configuration avec le chef Partie 2: Comment installer le chef de travail Chef dans RHEL / CENTOS 8/7 Partie 3: Comment installer le modèle de serveur client Chef dans RHEL / CENTOS 8/7

Ce tutoriel fournit un point de départ sur la façon dont Chef Travaux, automatisation, gestion de la configuration, architecture et composants du chef.

1. Gestion de la configuration

Gestion de la configuration est le point de mise au point clé de DevOps pratique. Dans le cycle de développement des logiciels, tous les serveurs doivent être configurés et bien entretenus par logiciel de manière à ne pas faire de rupture dans le cycle de développement. Une mauvaise gestion de la configuration peut effectuer des pannes de système, des fuites et des violations de données. En utilisant Gestion de la configuration Les outils consistent à faciliter la précision, l'efficacité et la vitesse dans l'environnement axé sur les DevOps.

Il existe deux modèles d'outils de gestion de la configuration - Basé sur la poussée & Basé sur la traction. Dans le Basé sur la poussée, Le serveur maître pousse le code de configuration vers les serveurs dans lesquels Basé sur la traction Les serveurs individuels contactent le maître pour obtenir un code de configuration. FANTOCHE et CHEF sont des modèles basés sur la traction largement utilisés, ANSIBLE est un modèle basé sur la poussée populaire. Dans cet article, nous verrons sur 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 autres appareils d'une organisation d'une manière simple facile.

  • Il est établi en 2008 comme OPSCODE Plus tard, il est renommé CHEF (Automatisation du chef outil).
  • Il s'agit d'un outil d'automatisation basé sur Ruby utilisé pour gérer la configuration, automatiser et orchestrer toute l'infrastructure d'une organisation.
  • Il s'agit d'un projet OpenSource et est livré avec deux modèles de déploiement: Client serveur et autonome.
  • Le 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 langues de script natives.
  • Il fournit un déploiement continu pour permettre à une entreprise de se tenir au courant de l'exigence du marché.
  • La responsabilité principale du chef est de maintenir l'état de configuration défini.
  • Il a son propre langage déclaratif pour gérer facilement les 10 et 1000 nœuds.
  • Le chef est adaptable au cloud, s'intègre facilement à l'infrastructure sur le cloud.
  • Le chef est facile à apprendre et un fort outil adapté aux DevOps soutenu par la communauté.

3. Architecture de chef

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

  • Chef de travail du chef: Plateforme de développement locale pour les utilisateurs du chef pour créer, tester et appliquer des configurations. Il peut s'agir de votre bureau local, ordinateur portable avec chef DK (kit de développement) installé. Il peut être utilisé comme environnement de développement / test avant de promouvoir dans la production.
  • Serveur de chef: C'est un serveur ayant un logiciel de chef-serveur installé et configuré dessus. Il est responsable de la gestion du code du chef et de l'accès au code de configuration à partir du chef de travail du chef. Le serveur du chef devrait être une machine Linux, elle ne prendra en charge aucun autre système d'exploitation.
  • Chefs de chef: Il y a les serveurs qui contactent le serveur du chef pour les détails de configuration tels que le code du chef et d'autres fichiers dépendants en binaires. Il tire le code du serveur du chef et les déploie localement.
Architecture de chef

4. Composants du chef

Voici la clé Chef Composants.

  • Ressources sont le module de base de la recette utilisée pour gérer l'infrastructure.
  • L'attribut est les paramètres sous la forme d'une paire de valeurs clés.
  • Recettes sont la collection d'attributs qui peuvent être faits dans le poste de travail. Il s'agit d'un ensemble de commandes qui peuvent être appliquées aux clients du chef en tant que code du chef.
  • La collection de recettes s'appelle un Livre de recettes.
  • Un couteau est un outil de ligne de commande dans le chef de travail du chef qui interagit avec le serveur du chef.

5. Modèle de déploiement du chef

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

  • Client de serveur - Il est utilisé pour le déploiement de la production.
  • Chef zéro - Il est utilisé pour le développement, les tests et les POC.

6. Comment fonctionnent le chef? Infrastructure comme code

Infrastructure As Code est la gestion des infrastructures informatiques où elle nous permet d'effectuer automatiquement diverses installations / déploiement et gestion de la configuration. Ici, toutes les configurations, les installations sont écrites sous forme de code.

  • Le client / nœud du chef effectuera l'enregistrement et l'authentification avec le serveur du chef.
  • Le client / nœud du chef examinera périodiquement le serveur du chef. Le processus d'authentification est fait à chaque fois que le chef-client veut accéder aux données stockées dans le chef-serveur.
  • Ohai est un outil qui sera géré par un client de 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 fournir ces attributs au chef-client. Ohai fait partie de l'installation du client du chef.
  • S'il y a des modifications sur le livre de cuisine ou les paramètres de configuration, il sera envoyé au chef-client et sera mis à jour / installé.
  • Les livres de cuisine et les paramètres seront mis à jour dans le serveur du chef à l'aide de Chef Workstation via l'outil de ligne de commande Couteau. Le poste de travail pousse toutes les stratégies vers le serveur du chef à l'aide de couteau.
  • Comme chaque client / nœud aura une vérification périodique auprès du serveur du chef, les configurations seront appliquées individuellement en fonction du rôle du serveur. Par exemple: dans les nœuds du 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 des concepts de base de la gestion de la configuration et de l'outil d'automatisation du chef. Nous verrons le processus étape par étape de l'installation du chef dans les prochains articles.