GNU/Linux >> Tutoriels Linux >  >> Cent OS

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 est que vous devez vous connecter à chaque serveur et créer l'utilisateur avec la commande useradd. Lorsque les serveurs sont des centaines ou des milliers, 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 effectuer l'exécution sur les serveurs, c'est une approche éprouvée. Le script a 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 long code pour une tâche simple, etc., cette situation nous oblige à rechercher Automation and Configuration Management 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 Chef Automation à travers les parties 1 à 3 et couvre les sujets suivants.

Partie 1  :Qu'est-ce que l'automatisation et la gestion de la configuration avec CHEF ? Partie 2  :Comment installer CHEF Workstation dans RHEL/CentOS 8/7 Partie 3  :Comment installer le modèle client-serveur CHEF dans RHEL/CentOS 8/7

Ce didacticiel fournit un point de départ sur la façon dont Chef travaux, automatisation, gestion de la configuration, architecture et composants de Chef.

1. Gestion des configurations

Gestion des configurations est le point central de DevOps entraine toi. Dans le cycle de développement logiciel, tous les serveurs doivent être configurés par logiciel 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 du système, des fuites et des violations de données. Utilisation de la gestion de la configuration tools vise à faciliter la précision, l'efficacité et la rapidité dans l'environnement basé sur DevOps.

Il existe deux modèles d'outils de gestion de la configuration :basés sur PUSH &basé sur PULL . Dans le basé sur PUSH , le serveur maître envoie le code de configuration aux serveurs sur lesquels basé sur PULL les serveurs individuels contactent le maître pour obtenir le code de configuration. MARIONNETTE 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 à propos de CHEF .

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

Un cuisinier 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 d'une manière simple et facile.

  • Il a été créé en 2008 sous le nom de 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 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 principale responsabilité du chef est de maintenir l'état défini de la configuration.
  • Il possède son propre langage déclaratif pour gérer facilement des dizaines et des milliers de nœuds.
  • Le chef s'adapte au cloud et s'intègre facilement à Infrastructure on Cloud.
  • Le chef est facile à apprendre et constitue un puissant outil DevOps soutenu par la communauté.

3. Chef Architecture

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

  • Station de travail du chef :plate-forme de développement locale permettant aux utilisateurs de Chef de créer, tester et appliquer des configurations. Il peut s'agir de votre ordinateur de bureau local ou de votre ordinateur portable avec Chef DK (kit de développement) installé. Il peut être utilisé comme environnement de développement/test avant d'être promu en production.
  • Chef serveur :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 depuis Chef Workstation. Le serveur chef doit être une machine Linux, il ne prendra en charge aucun autre système d'exploitation.
  • Clients Chefs :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 fichiers binaires. Il extrait le code du serveur Chef et le déploie localement.

4. Composants Chef

Voici le Chef clé composants.

  • Ressources sont le module de base de Recipe utilisé pour gérer l'Infrastructure.
  • L'attribut correspond aux paramètres sous la forme d'une paire clé-valeur.
  • Recettes sont la collection d'attributs qui peuvent être créés dans le poste de travail. Il s'agit d'un ensemble de commandes pouvant ê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 Chef

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

  • Client serveur – Il est utilisé pour le déploiement en production.
  • Chef Zéro - Il est utilisé pour le développement, les tests et les POC.

6. Comment fonctionne Chef ? Infrastructure en tant que code

L'infrastructure en tant que code est la 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.
  • Si des modifications sont apportées aux paramètres du livre de recettes ou de la configuration, elles seront envoyées au chef-client et seront mises à jour/installées.
  • 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 . La station 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 chefs, 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.


Cent OS
  1. Flatpak sur Linux :qu'est-ce que c'est et comment installer des applications avec ?

  2. Apache avec Tomcat, un guide d'installation et de configuration étape par étape

  3. Installation de CentOS 7 étape par étape avec capture d'écran - Partie 1

  4. Principes de base de l'administrateur système Linux :gestion des comptes d'utilisateurs avec les UID et les GID

  5. Que pouvez-vous faire avec un VPS et un serveur cloud ?

Composition de documents avec LaTeX et TeXstudio sur Fedora – Partie 1

Qu'est-ce que Crontab et comment automatiser des tâches sous Linux avec Crontab

Gestion des packages Linux avec YUM et RPM

Premiers pas avec Vagrant et VirtualBox - Partie 1

Partie 4 :Configurer SPF et DKIM avec Postfix sur le serveur de messagerie CentOS 8/RHEL 8

Comment installer et configurer Hive avec une haute disponibilité – Partie 7