GNU/Linux >> Tutoriels Linux >  >> Linux

Une brève introduction aux rôles Ansible pour l'administration système Linux

Ansible est une plate-forme d'automatisation open source qui inclut la gestion de la configuration, le déploiement d'applications et l'orchestration de l'infrastructure. Il s'agit d'un outil d'automatisation populaire pour les ingénieurs DevOps et les administrateurs système. Les administrateurs système sont souvent confrontés à un épuisement professionnel en raison des longues heures de travail et de l'exécution de tâches répétitives sur de nombreux systèmes, mais Ansible facilite l'exécution de ces tâches. Des tâches telles que la création d'utilisateurs, la gestion des services et les installations de logiciels peuvent être effectuées à l'aide d'Ansible. Ansible est basé sur des procédures plutôt que déclaratif, ce qui signifie que vous écrivez toutes les étapes requises dans un fichier YAML, puis que vous les exécutez de manière séquentielle sur tous les systèmes cibles.

[ Vous pourriez également aimer lire : Utiliser un playbook Ansible pour gérer les mises à jour des postes de travail et des serveurs ]

Nœuds

Dans l'architecture Ansible, vous disposez d'un nœud de contrôleur et de nœuds gérés. Ansible est installé uniquement sur le nœud du contrôleur. Il s'agit d'un outil sans agent qui n'a pas besoin d'être installé sur les nœuds gérés. Le contrôleur et les nœuds gérés sont connectés à l'aide du protocole SSH. Toutes les tâches sont écrites dans un "playbook" en utilisant le langage YAML. Chaque playbook peut contenir plusieurs plays, qui contiennent des tâches , et les tâches contiennent des modules . Les modules sont des scripts autonomes réutilisables qui gèrent certains aspects du comportement d'un système. Les modules Ansible sont également appelés plugins de tâche ou plugins de bibliothèque.

Rôles

Les playbooks pour les tâches complexes peuvent devenir longs et donc difficiles à lire et à comprendre. La solution à ce problème est Ansible rôles . À l'aide de rôles, vous pouvez diviser de longs playbooks en plusieurs fichiers, ce qui rend chaque playbook simple à lire et à comprendre. Les rôles sont une collection de modèles, de fichiers, de variables, de modules et de tâches. L'objectif principal des rôles est de réutiliser le code Ansible. Les ingénieurs DevOps et les administrateurs système doivent toujours essayer de réutiliser leur code. Un rôle Ansible peut contenir plusieurs playbooks. Il peut facilement réutiliser le code écrit par n'importe qui si le rôle convient à un cas donné. Par exemple, vous pouvez écrire un playbook pour l'hébergement Apache, puis réutiliser ce code en modifiant le contenu de index.html. pour modifier les options d'une autre application ou d'un service.

Voici un aperçu de la structure des rôles Ansible. Il se compose de nombreux sous-répertoires, tels que :

|-- README.md
|-- defaults
|-------main.yml
|-- files
|-- handlers
|-------main.yml
|-- meta
|-------main.yml
|-- tasks
|-------main.yml
|-- templates
|-- tests
|-------inventory
|-- vars
|-------main.yml

Initialement, tous les fichiers sont créés vides en utilisant le ansible-galaxy commande. Ainsi, selon la tâche, vous pouvez utiliser ces répertoires. Par exemple, les vars répertoire stocke les variables. Dans les tasks répertoire, vous avez main.yml , qui est le playbook principal. Les templates Le répertoire est destiné au stockage des modèles Jinja. Les handlers répertoire sert à stocker les gestionnaires.

Avantages des rôles Ansible :

  • Autoriser la réutilisation du contenu
  • Rendre les grands projets gérables

Les rôles ansibles sont des répertoires structurés contenant des sous-répertoires.

Mais saviez-vous que Red Hat Enterprise Linux fournit également des rôles système Ansible pour gérer les tâches du système d'exploitation ?

Rôles système

Les rhel-system-roles est disponible dans le canal Extras (EPEL). Les rhel-system-roles package est utilisé pour configurer les hôtes RHEL. Il y a sept rhel-system-roles par défaut disponible :

  • rhel-system-roles.kdump :ce rôle configure le service de récupération sur incident kdump. Kdump est une fonctionnalité du noyau Linux et est utile lors de l'analyse de la cause d'un plantage du noyau.
  • rhel-system-roles.network - Ce rôle est dédié aux interfaces réseau. Cela aide à configurer les interfaces réseau dans les systèmes Linux.
  • rhel-system-roles.selinux - Ce rôle gère SELinux. Cela permet de configurer le mode SELinux, les fichiers, le contexte de port, etc.
  • rhel-system-roles.timesync - Ce rôle est utilisé pour configurer NTP ou PTP sur votre système Linux.
  • rhel-system-roles.postfix - Ce rôle est dédié à la gestion de l'agent de transfert de courrier Postfix.
  • rhel-system-roles.firewall :comme son nom l'indique, ce rôle consiste à gérer la configuration du pare-feu du système hôte.
  • rhel-system-roles.tuned - Tuned est un service de réglage du système sous Linux pour surveiller les appareils connectés. Ce rôle consiste donc à configurer le service optimisé pour les performances du système.

Les rhel-system-roles Le package est dérivé des rôles système Linux open source. Ce rôle système Linux est disponible sur Ansible Galaxy. Les rhel-system-roles est pris en charge par Red Hat, vous pouvez donc considérer cela comme si rhel-system-roles sont en aval des rôles système Linux. Pour installer rhel-system-roles sur votre machine, utilisez :

$ sudo yum -y install rhel-system-roles
or
$ sudo dnf -y install rhel-system-roles

Ces rôles sont situés dans le répertoire /usr/share/ansible/roles/ annuaire.

Il s'agit du chemin par défaut. Ainsi, chaque fois que vous utilisez des playbooks pour référencer ces rôles, vous n'avez pas besoin d'inclure explicitement le chemin absolu. Vous pouvez également vous référer à la documentation pour utiliser les rôles Ansible. Le chemin de la documentation est /usr/share/doc/rhel-system-roles

Le répertoire de documentation de chaque rôle contient des informations détaillées sur ce rôle. Par exemple, le fichier README.md est un exemple de ce rôle, etc. La documentation est explicite.

Voici un exemple de rôle.

Exemple

Si vous souhaitez modifier le mode SELinux de la machine hôte local ou de toute machine hôte, utilisez les rôles système. Pour cette tâche, utilisez rhel-system-roles.selinux

Pour cette tâche, l'ansible-playbook ressemble à ceci :

---

- name: a playbook for SELinux mode
 hosts: localhost
 roles:

- rhel-system-roles.selinux
 vars:

- selinux_state: disabled

Après avoir exécuté le playbook, vous pouvez vérifier si le mode SELinux a changé ou non.

[ Vous souhaitez en savoir plus sur l'automatisation du système ? Démarrez avec The Automated Enterprise, un livre gratuit de Red Hat. ] 

Récapitulez

Cette brève introduction aux rôles Ansible devrait suffire à vous permettre de commencer à les utiliser dans vos playbooks. N'oubliez pas qu'Ansible a pour but de rationaliser et de simplifier ces tâches répétitives et de faciliter la vie de votre administrateur système.


Linux
  1. 10 modules Ansible pour l'automatisation du système Linux

  2. Qu'est-ce que Linux ? Un guide pour les utilisateurs non techniques

  3. Démystifier Ansible pour les administrateurs système Linux

  4. 8 conseils pour une automatisation fiable du système Linux

  5. 10 livres d'administration système Linux essentiels pour les débutants et les expérimentés

Introduction aux cgroups d'un administrateur système Linux

Guide de démarrage rapide d'Ansible pour les administrateurs système Linux

Mon parcours dans l'administration système Linux

Une brève introduction à Ansible Vault

Administration du système de fichiers réseau (NFS) sous Linux

Webmin - Un outil d'administration système basé sur le Web pour Linux