GNU/Linux >> Tutoriels Linux >  >> Linux

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

Dans cet article, j'aborde les conditions préalables à l'installation d'Ansible, l'installation d'Ansible à l'aide du serveur Satellite, la configuration d'Ansible pour l'automatisation, l'introduction aux playbooks, les fichiers d'inventaire et passe en revue un cas d'utilisation d'Ansible. Consultez le premier article, Démystifier Ansible pour les administrateurs système Linux, si vous ne l'avez pas déjà fait.

Prérequis pour l'installation d'Ansible

Pour utiliser Ansible dans votre environnement, vous devez configurer un nœud de gestion (également appelé nœud de contrôle ) où vous installerez Ansible. Vous pouvez installer Ansible sur n'importe quelle machine avec Python 2 (version 2.7) ou Python 3 (versions 3.5 et supérieures). Avec RHEL 7, nous avons Python 2.7 installé par défaut, et avec RHEL 8, nous avons Python 3.6 par défaut. Pour utiliser tous les modules Ansible, vous devez également installer Python sur les nœuds gérés. Par défaut, Ansible utilise SSH pour communiquer avec les nœuds gérés. Les nœuds gérés peuvent également utiliser SFTP ou SCP pour la communication, et cela peut être modifié dans le fichier de configuration Ansible (ansible.cfg ).

Si vous utilisez RHEL Satellite pour installer Ansible sur un système RHEL 8, assurez-vous d'ajouter les référentiels pour Red Hat Ansible Engine 2.9 pour RHEL 8 x86_64 (RPM) à partir de l'interface graphique Satellite et de synchroniser les référentiels du CDN vers le Satellite. Sur le nœud de contrôle, vous devez vous inscrire auprès du serveur Satellite, activer les outils Satellite et activer le référentiel Ansible à l'aide des commandes suivantes :

# subscription-manager repos --enable satellite-tools-6.6-for-rhel-8-x86_64-rpms
Repository' satellite-tools-6.6-for-rhel-8-x86_64-rpms' is enabled for this system.

# subscription-manager repos --enable ansible-2.9-for-rhel-8-x86_64-rpms
Repository' ansible-2.9-for-rhel-8-x86_64-rpms' is enabled for this system.

Installer Ansible sur RHEL

Pour installer Ansible sur le nœud de contrôle RHEL 8 après l'enregistrement auprès du serveur Satellite, exécutez la commande yum install ansible . Cette commande installe six packages :

  1. Installez Ansible à partir du référentiel Ansible :
    1. Ansible
  2. Installez les dépendances :
    1. sshpass
    2. Python3-markupsafe
    3. Python3-jinja2
    4. Python3-babel
  3. Installez la dépendance faible :
    1. Python3-jmespath

Après l'installation, exécutez le ansible --version commande pour vérifier la version d'Ansible installée.

# ansible --version

ansible 2.9.6

 config file = /etc/ansible/ansible.cfg

 configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']

 ansible python module location = /usr/local/lib/python3.6/site-packages/ansible-2.9.6-py3.6.egg/ansible

 executable location = /usr/local/bin/ansible

 python version = 3.6.8 (default, Oct 11 2019, 15:04:54) [GCC 8.3.1 20190507 (Red Hat 8.3.1-4)]

Après l'installation, vous pouvez apporter des modifications aux paramètres Ansible par défaut en modifiant les paramètres dans le ansible.cfg fichier.

[ Vous aimerez peut-être également lire : Renouveler mon enthousiasme au travail avec Ansible ]

Configuration d'Ansible pour l'automatisation

Maintenant qu'Ansible est installé, vous devez configurer l'authentification basée sur la clé SSH (qui utilise la cryptographie asymétrique) du nœud de contrôle aux nœuds gérés pour qu'Ansible fonctionne de manière transparente. Vous devrez générer une paire de clés sur votre nœud de contrôle et transférer la clé publique vers les nœuds gérés. Utilisez la commande ssh-keygen pour générer la paire de clés. Les clés sont stockées dans votre répertoire personnel à l'intérieur du .ssh dossier. Les clés par défaut sont nommées id_rsa.pub (clé publique) et id_rsa (Clé privée). Pour activer l'authentification par clé SSH sur les nœuds gérés, exécutez la commande suivante sur votre nœud de contrôle :

# ssh-copy-id <target user>@<IP address/Hostname of the managed node>

Notez que cela nécessitera un mot de passe à usage unique pour l'utilisateur cible sur le nœud géré. La commande ssh-copy-id copiera la clé publique du nœud de contrôle dans les authorized_keys fichier sur les nœuds gérés.

Une fois configuré, vous pouvez ajouter les nœuds distants à un fichier d'inventaire et effectuer le test ping à l'aide de la commande ad hoc Ansible suivante :

# ansible all -m ping -i <inventory-file>

En savoir plus sur les playbooks

Les playbooks sont les fichiers dans lesquels les fonctions Ansible sont écrites. Les playbooks sont écrits au format YAML. YAML signifie encore un autre langage de balisage. Les playbooks sont l'une des principales fonctionnalités d'Ansible et indiquent à Ansible quoi exécuter. Ils sont comme une liste de tâches pour Ansible qui contient une série de tâches. Les playbooks sont les blocs de construction de tous les cas d'utilisation d'Ansible. Vous pouvez créer des playbooks Ansible modulaires indépendants pour chaque action. Vous pouvez intégrer ces playbooks modulaires dans un seul playbook principal à l'aide du module import_playbook . Cela garantit la réutilisation des playbooks. Vous pouvez utiliser des variables dans le playbook et transmettre ces variables à partir de l'inventaire Ansible, des fichiers inclus et pendant l'exécution. Certaines des fonctionnalités clés d'un playbook Ansible incluent :

  • Capacité à exécuter des tâches en tant qu'utilisateurs différents en fonction du devenir méthode
  • Contrôler où exécuter chaque tâche en fonction des hôtes de votre inventaire
  • Spécifiez les conditions et les boucles dans votre code

Exemple :

En savoir plus sur l'inventaire

Inventaire est la liste des nœuds pouvant être gérés par Ansible. Vous pouvez spécifier des hôtes gérés individuels ou créer un groupe d'hôtes dans le fichier d'inventaire. Pour chaque hôte géré, vous pouvez attribuer des variables pouvant être utilisées par le playbook lors de l'exécution de tâches sur cet hôte particulier. Le fichier d'inventaire par défaut est /etc/ansible/hosts , mais il est recommandé de créer votre propre fichier d'inventaire et de l'appeler pendant l'exécution du playbook en utilisant le -i possibilité de commande. Les fichiers d'inventaire peuvent être au format INI ou YAML. Vous pouvez soit conserver un fichier d'inventaire statique, soit une liste dynamique d'hôtes.

Exemple :

# cat hosts-b2b

[webservers]
b2bwebprod1 urlpath=https://b2bprod.abc.xyz
b2bwebprod2
b2bwebprod3

[appservers]
b2bappprod1
b2bappprod2
b2bappprod3
b2bappprod4
b2bappprod5

[dbservers]
b2bmasterdb
b2bslavedb

Cas d'utilisation Ansible

Explorons un cas d'utilisation Ansible pour la surveillance du système. Nous pouvons créer des playbooks pour diverses tâches de surveillance liées à l'administration système, notamment :

  • Surveillance de l'utilisation du système de fichiers et alerte par e-mail si l'espace disque est utilisé à plus de 90 %
  • Disponibilité des applications et des ports
  • Disponibilité de la base de données en se connectant et en interrogeant la base de données
  • Disponibilité des URL en utilisant l'uri module et alertes par e-mail si le code de retour est supérieur à 200. Vous pouvez également utiliser les nouvelles tentatives et les fonctionnalités de retard dans l'uri module pour être doublement sûr
  • Disponibilité du service, signaler si le service est en panne et tenter de le redémarrer
  • Vérifiez les versions des composants pour conserver un inventaire à jour
  • Surveiller la disponibilité du système et envoyer une alerte par e-mail si un système n'est pas accessible

[ Besoin d'en savoir plus sur Ansible ? Suivez un cours de présentation technique gratuit de Red Hat. Ansible Essentials :Présentation technique de la simplicité dans l'automatisation. ] 

Récapitulez

Cet article vous donne un aperçu de l'installation d'Ansible, de la configuration d'Ansible, de la création de playbooks et de la gestion de l'inventaire avec des exemples. Restez à l'écoute pour plus d'articles sur l'automatisation à l'aide d'Ansible.


Linux
  1. Un guide du terminal Linux pour les débutants

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

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

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

  5. 30 exercices de processus Linux pour les administrateurs système

Qu'est-ce qu'Ubuntu ? Un guide rapide du débutant

30 exercices d'autorisations Linux pour les administrateurs système

40 commandes réseau Linux utiles pour les administrateurs système modernes

Guide de configuration du serveur SFTP sous Linux

Un guide pratique pour la commande chroot sous Linux

Guide d'installation étape par étape de Bugzilla pour Linux