Passer à l'article

Automatiser la Mise en Place de Son Environnement de Dev avec Ansible

Posted on:4 novembre 2023 at 17:39

Recevoir un tout nouveau PC flambant neuf ou décider de tester une nouvelle distribution Linux, c’est toujours un bon moment. Cependant, la réalité de devoir transférer tous ces outils, réconfigurer ces raccourcis clavier, retrouver son fond d’écran préféré, etc., peut rapidement devenir fastidieuse et gâcher le plaisir. J’ai cherché des solutions pour automatiser cette tâche, notamment la création de scripts personnalisés, qui sont chronophages et extrêmement compliqués à maintenir dans le temps. C’est à ce moment-là qu’entre en jeu Ansible, une solution que j’ai tout de suite adoptée.

Qu’est-ce qu’Ansible ?

Ansible est traditionnellement un outil d’automatisation IT destiné au déploiement à grande échelle de systèmes homogènes. Cependant, il offre également une solution puissante pour préparer une sorte de “recette” applicable à chaque nouveau PC, permettant ainsi la réinstallation et la configuration automatique de tous les outils et logiciels que nous apprécions. Ansible utilise le langage YAML pour définir les tâches, le rendant simple et lisible. Voici pourquoi j’ai choisi Ansible :

Comprendre Ansible avec un exemple basique

Ansible fonctionne autour de la notion de “playbooks”. Un playbook est un ensemble de directives que vous souhaitez qu’Ansible exécute, spécifiées en YAML. Supposons que nous voulons automatiser l’installation d’un paquet :

Étape 1 : Dans un fichier playbook-example.yml.

- name: Installer un paquet
  hosts: localhost
  become: yes
  tasks:
    - name: S'assurer que le paquet est installé
      ansible.builtin.package:
        name: nom_du_paquet
        state: present

Étape 2 : Exécutez le playbook.

Une fois le playbook écrit, exécutez-le avec la commande suivante :

ansible-playbook playbook-example.yml --ask-become-pass

Exemple concret : Configuration du shell par défaut

J’utilise Fish comme shell. À chaque réinstallation du système, je dois définir Fish comme mon shell par défaut. Habituellement, cela nécessite une recherche sur Google ou la consultation de mes notes pour retrouver la fameuse commande chsh -s /usr/bin/fish. Voici comment automatiser cette tâche avec un playbook Ansible :

- name: Installer Fish
  hosts: localhost
  become: yes
  tasks:
    - name: S'assurer que le paquet est installé
      ansible.builtin.package:
        name: fish
        state: present
    - name: Définir Fish comme shell par défaut
      ansible.builtin.command: chsh -s /usr/bin/fish

Bien que les exemples puissent sembler simples, imaginez l’impact positif lors de la configuration de plusieurs outils à chaque réinstallation du système. L’automatisation avec Ansible vous fait gagner du temps et améliore votre confort. Et ce n’est que le début : j’utilise également des playbooks pour des opérations plus complexes, comme la mise en place de tâches cron, la récupération de mes dotfiles, etc.