GNU/Linux >> Tutoriels Linux >  >> Linux

Une introduction aux faits Ansible

faits ansibles sont des données recueillies sur les nœuds cibles (nœuds hôtes à configurer) et renvoyées aux nœuds contrôleurs. Les faits ansibles sont stockés au format JSON et sont utilisés pour prendre des décisions importantes concernant les tâches en fonction de leurs statistiques. Les faits sont dans un ansible_facts variable, qui est gérée par Ansible Engine. Les faits ansibles jouent un rôle majeur dans la synchronisation avec les hôtes conformément aux données en temps réel .

[ Vous pourriez également aimer : Une introduction à Ansible Tower ]

Que sont exactement les faits Ansible et comment sont-ils utilisés ?

Les faits ansibles sont les données système et les propriétés spécifiques à l'hôte auxquelles vous vous connectez. Un fait peut être l'adresse IP, les informations du BIOS, les informations logicielles d'un système et même les informations matérielles. Les faits Ansible aident l'administrateur à gérer les hôtes en fonction de leur état actuel plutôt que de prendre les mesures directement sans avoir aucune information sur la santé du système.

Voici un scénario :vous devez installer le serveur Web Apache sur tous vos hôtes Linux. Vous savez que les hôtes basés sur Red Hat Enterprise Linux (RHEL) fonctionnent avec Red Hat Package Manager (RPM) et yum/dnf . D'autres distributions Linux utilisent leurs propres gestionnaires de packages et il ne serait donc pas possible d'effectuer la même tâche sur différents systèmes sans modification et référence à ces différences. Les noms de packages diffèrent également d'une distribution à l'autre. Par exemple, sur les systèmes RHEL, le package de serveur Web Apache est httpd, tandis que dans d'autres distributions, il s'appelle apache2.

Voici un playbook Ansible pour illustrer le problème :

- hosts: all
  tasks:
  - package:
      name: "httpd"
      state: present
    when ansible_facts["os_name"] == "RedHat"
  - package:
      name: "apache2"
      state: present
    when ansible_facts["os_name"] == "Ubuntu"

Ici, le script collectera des informations sur le système à l'aide de faits Ansible, puis effectuera l'opération en conséquence. Lors de l'installation sur des systèmes RHEL, il ignore automatiquement le package basé sur Ubuntu et vice versa. De même, vous pouvez utiliser les faits Ansible pour effectuer une opération si le système dispose d'une quantité minimale de ressources disponibles.

En bref, en utilisant les faits Ansible, un administrateur système peut rendre Ansible plus intelligent en spécifiant des paramètres indiquant quand effectuer des tâches et quand ne pas le faire.

Accéder aux faits

Les faits Ansible utilisent le setup module pour recueillir des faits à chaque fois avant d'exécuter les playbooks.

Utilisation des commandes ad hoc Ansible

1. Accédez aux faits Ansible à l'aide de commandes ad hoc

La setup Le module récupère tous les détails des hôtes distants vers nos nœuds de contrôleur et les envoie directement sur notre écran pour que les faits soient visibles pour les utilisateurs.

ansible all -m setup

2. Filtrage d'une valeur spécifique des faits Ansible

Ici, la setup module est utilisé pour récupérer les faits sur le système, et en outre, il utilisera le filtre argument pour afficher la valeur des faits Ansible.

ansible all -m setup -a "filter=ansible_cmdline"

Remarque :les faits ansibles sont récupérés uniquement lorsque vous travaillez avec des playbooks. Pour accéder aux faits Ansible à l'aide de commandes ad hoc, utilisez le setup module.

Utiliser le playbook Ansible

Pour accéder aux variables des faits Ansible dans le playbook Ansible, nous devons utiliser le nom réel sans utiliser le ansible mot-clé.

ansible_facts["ansible_system"] ❌

ansible_facts["système"] ✔️

Les gather_facts module du playbook Ansible exécute le setup module par défaut au début de chaque playbook pour rassembler les faits sur les hôtes distants.

3. Accéder aux faits à l'aide d'Ansible playbook

Récupérez les faits Ansible et affichez-les à l'aide d'un playbook.

    - hosts: all
      tasks:
      - debug:
          var: ansible_facts

4. Accéder à un fait spécifique à l'aide d'un playbook Ansible

Récupérer les faits Ansible, les filtrer et les afficher à l'aide d'un playbook.

    - hosts: all
      tasks:
      - debug:
          var: ansible_facts["cmdline"]

Faits ansibles et type de données

Les faits ansibles sont stockés au format JSON et peuvent être classés en trois grandes catégories :

Liste :Stocke la liste des éléments et les informations stockées sont écrites entre crochets [] . Ce sont principalement des faits qui peuvent avoir plusieurs valeurs, par exemple, system_capablities . La liste est accessible à l'aide de crochets et en précisant l'index.

    ansible_facts["all_ipv6_addresses"][1]
    ansible_facts["all_ipv6_addresses"][2]

Dictionnaire  :stocke les données sous la forme d'une collection de paires clé-valeur, et les informations sont stockées entre accolades {} . Ce sont principalement les faits qui contiennent des sous-faits, par exemple, memory_mb . Le dictionnaire est accessible à l'aide de l'opérateur point.

    ansible_facts.memory_mb.real

Texte ansible non sécurisé  :Ce type de variable n'a pas de sous-partie et stocke les données directement, par exemple, machine . Ansible Unsafe Text est accessible directement en utilisant le nom du fait.

    ansible_facts["machine"]

Utilisez type_debug filtre pour vérifier le type de données pour les faits Ansible.

- hosts: all
  tasks:
  - debug:
      var: ansible_facts["all_ipv6_addresses"]|type_debug
  - debug:
      var: ansible_facts["memory_mb"]|type_debug
  - debug:
      var: ansible_facts["machine"]|type_debug

type_debug le filtre demande le type de données pour le fait spécifié sans imprimer la valeur du fait.

[ 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

Les faits ansibles sont des données sur le système que vous souhaitez configurer. Ces faits rendent votre système Ansible intelligent en fournissant les conditions de traitement d'une tâche. Vous pouvez également traiter en ne spécifiant pas ou en n'utilisant pas les faits Ansible, mais cela rendrait le travail d'un administrateur système plus mouvementé car le script pourrait échouer ou modifier certains des fichiers qui n'étaient jamais destinés à être modifiés.

Pour plus d'informations sur les faits Ansible, veuillez consulter la documentation officielle.


Linux
  1. Introduction aux outils automatiques GNU

  2. Langage de programmation C - Introduction

  3. Présentation de Docker

  4. Présentation d'iptables

  5. Plesk :Présentation

Une introduction à bpftrace pour Linux

Introduction aux pandas Python

Comment créer et utiliser des faits personnalisés dans Ansible

Une introduction au navigateur Vivaldi sous Linux

Introduction à la plate-forme d'automatisation Ansible

Une brève introduction à Ansible Vault