INTRODUCTION ET CONCEPT DE BASE DE ANSIBLE

Êtes-vous prêt à dire adieu aux tâches manuelles répétitives et à libérer votre potentiel créatif ? Découvrez comment Ansible peut vous aider dans cet article sur l'introduction à l'automation.

 · 4 min read

<strong>INTRODUCTION ET CONCEPT DE BASE DE ANSIBLE</strong>

  1. Introduction

  2. L'automatisation des tâches est essentielle pour améliorer l'efficacité et la productivité dans le domaine de l'informatique. Ansible, un outil open-source d'automatisation, est devenu très populaire en raison de sa simplicité et de sa flexibilité. Dans cet article, nous allons explorer les concepts de base d'Ansible et découvrir comment il peut simplifier le déploiement et la gestion des infrastructures.

  3. Qu'est ce que Ansible

  4. Ansible est une plateforme d'automatisation qui permet aux administrateurs système et aux développeurs de gérer et de configurer les infrastructures de manière efficace. Il utilise une approche basée sur la déclaration de l'état souhaité, ce qui signifie que vous spécifiez simplement comment vous souhaitez que votre infrastructure soit configurée, et Ansible se charge du reste. Cela permet d'éviter les tâches manuelles répétitives et réduit les risques d'erreurs humaines.

  5. Les Concepts de base d'Ansible

    1. Playbooks

    2. Les playbooks sont les fichiers principaux utilisés par Ansible pour automatiser les tâches. Ils sont écrits en YAML, un langage simple à lire et à écrire. Un playbook contient une série de tâches qui doivent être exécutées sur les hôtes cibles. Il spécifie également les conditions et les dépendances entre les tâches.

    3. Inventaire

    4. L'inventaire est un fichier qui répertorie les hôtes sur lesquels Ansible va agir. Il peut s'agir d'adresses IP, de noms d'hôtes ou de groupes d'hôtes. L'inventaire permet de regrouper les hôtes en fonction de leurs rôles, de leurs environnements ou de toute autre catégorie pertinente.

    5. Modules

    6. Ansible utilise des modules pour exécuter des tâches spécifiques sur les hôtes cibles. Les modules peuvent être utilisés pour gérer des fichiers, installer des logiciels, configurer des services réseau, etc. Ansible dispose d'une vaste bibliothèque de modules prêts à l'emploi, ce qui facilite grandement la configuration et la gestion des infrastructures.

    7. Play

    8. Un play est une unité de travail dans Ansible. Il est composé d'une liste de tâches à exécuter sur un groupe d'hôtes spécifié. Un playbook peut contenir plusieurs plays, ce qui permet de gérer différentes parties de l'infrastructure de manière modulaire.

  6. Avantages d'Ansible

    1. Simplicité

    2. Ansible se distingue par sa facilité d'utilisation et sa courbe d'apprentissage réduite. Il n'est pas nécessaire d'avoir une connaissance approfondie de la programmation pour commencer à automatiser avec Ansible.

    3. Flexibilité

    4. Ansible est agnostique par rapport au système d'exploitation, ce qui signifie qu'il peut être utilisé pour gérer des infrastructures hétérogènes. Que vous utilisiez Linux, Windows ou d'autres systèmes d'exploitation, Ansible peut s'adapter à vos besoins.

    5. Extensibilité

    6. Ansible est hautement extensible grâce à sa capacité à intégrer des scripts personnalisés et des modules tiers. Vous pouvez étendre les fonctionnalités d'Ansible en écrivant vos propres modules ou en utilisant des modules développés par la communauté.

  7. Quelques Commandes d'execution

    1. Exécution d'un playbook Ansible
    2. ansible-playbook playbook.yml


    3. Exécution d'un playbook Ansible sur un inventaire spécifique
    4. ansible-playbook -i inventory.ini playbook.yml


      L'option "-i" permet de spécifier un fichier d'inventaire personnalisé

    5. Exécution d'un playbook Ansible avec un utilisateur distant spécifique
    6. ansible-playbook -u remote_user playbook.yml

      L'option "-u" permet de spécifier un utilisateur distant pour se connecter aux hôtes cibles.

    7. Exécution d'un playbook Ansible avec les privilèges "sudo" ou "root"
    8. ansible-playbook -b playbook.yml

      L'option "-b" ou "--become" permet d'exécuter les commandes avec les privilèges "sudo" ou "root" sur les hôtes cibles.

    9. Exécution d'un module Ansible sur un inventaire
    10. ansible -i inventory.ini -m module_name host_pattern

      "module_name" est le module ansible executé et "host_pattern" est les hôtes correspondant au modèle spécifié

  8. Installation d'Ansible dans Debian 12

    1. Mettez à jour les paquets existants sur votre système

      sudo apt update

      Installez Ansible à l'aide de la commande

      sudo apt install ansible

      vérifier la version d'Ansible

      ansible --version

      Une fois l'installation terminée, on peut verifier l'installation et la version en utilisant la commande plus haut

  9. Cas d'utilisation d'Ansible "Postgresql"

    1. Crééz un reportoire pour le projet
    2. mkdir ansible-postgresql

      Le nom du dossier est ansible-postgresql


      Maintenant on naviguer et on accéder au répertoire créer. Pour le faire on utilise la commande qui suit

      cd ansible-postgresql


    3. Créez un fichier d'inventaire

    4. 
            server ansible_host=@Ip du server
            ansible_user=utilisateur-SSH
            ansible_ssh_private_key_file= chemin vers la clé privée SSH
            

      le fichier crée à l'extension "nom_inventory.ini" et elle spécifie les détails de votre serveur PostgreSQL

    5. Créez un fichier playbook
    6. On crée un fichier playbook.yml et définie les tâches d'installation et de configuration de PostgreSQL

      
             name: Install and configure PostgreSQL
             hosts: postgresql
             become: true
             tasks:
              - name: Install PostgreSQL
                apt:
                 name: postgresql
                 state: present
                
              - name: Copy PostgreSQL configuration file
                template:
                 src: templates/pg_hba.conf.j2
                 dest: /etc/postgresql/13/main/pg_hba.conf
                 owner: postgres
                 group: postgres
                 mode: '0640'
                 
              - name: Restart PostgreSQL service
                service:
                 name: postgresql
                 state: restarted
      


      On utilise le module "apt" pour installer PostgreSQL, le module "template" pour copier un fichier de configuration personnalisé, et le module "service" pour redémarrer le service PostgreSQL.

    7. Executer le Playbook Ansible

    8. ansible-playbook -i inventory.ini playbook.yml


      Ansible se connectera au serveur spécifié dans le fichier d'inventaire, exécutera les tâches du playbook, et installera et configurera PostgreSQL en conséquence.

  10. Conclusion


  11. En résumé, Ansible est un outil d'automatisation polyvalent qui vous permet de simplifier la gestion de votre infrastructure informatique. Nous avons vu comment Ansible simplifie la gestion et la configuration des infrastructures informatiques en utilisant une approche basée sur la déclaration de l'état souhaité. Grâce à Ansible, vous pouvez automatiser des tâches répétitives, réduire les erreurs humaines et gagner du temps précieux.

    N'hésitez pas à approfondir vos connaissances sur Ansible en explorant ses fonctionnalités avancées, ses modules supplémentaires et ses bonnes pratiques.

  12. Bibliobraphie

  13. https://www.ansible.com

    https://doc.ansible.com

    https://galaxy.ansible.com

    Ansible Up and Running de Lorin Hochstein et René Moser

    https://agile.irex.aretex.ca/plugins/mediawiki/wiki/irex-devops-project/index.php?title=Ansible_Documentation

    https://agile.irex.aretex.ca/plugins/mediawiki/wiki/irex-devops-project/index.php?title=Start_with_ansible

    https://www.irex.aretex.ca/blog/devops/comment-%C3%A9tablir-une-connexion-entre-ssh-dans-un-playbook-ansible

    https://www.irex.aretex.ca/blog/s%C3%A9curit%C3%A9/ansible-vault-chiffrement-des-donn%C3%A9es-sensibles


Adoum Ali Taiga

just testing onboarding works

No comments yet

No comments yet. Start a new discussion.

Add Comment