Supporter plusieurs distributions dans ses tâches ansible.

###Introduction Il n'est pas rare que les développeurs n'utilisent pas la même distribution que le serveur de production. D'ailleurs, il est même possible que dans l'équipe, il y est plusieurs distributions différentes. Il n'est pas grave que le poste de développeur ne soit pas le même que la production, car pour ça il y a d'autres environnement. Pour ce genre de situations, il est intéressant de pouvoir gérer plusieurs distributions dans les tâches ansible. Ce n'est pas contraignant et ça ne prends pas beaucoup plus de temps. L'exemple est l'installation d'un serveur de base de données. ###Usage Ansible fournit plusieurs utilitaires, dont par exemple la possibilité d'importer une une tâche. Ce qui permet d'avoir des sous-tâches spécifiques à une distribution, par exemple. Maintenant, voyons comment ça fonctionne, le fichier roles/postgresql/tasks/main.yml : --- - name: Import the task for debian import_tasks: debian.yml when: ansible_distribution|lower == 'debian' - name: Import the task for archlinux import_tasks: archlinux.yml when: ansible_distribution|lower == 'archlinux' - name: Ensure the service is running service: name: postgresql state: started enabled: yes D'abord, un nom pour l'action, c'est classique. Ensuite, l'utilisation du module import_tasks, puis, l'utilisation d'une structure conditionnel pour importer la tâche qui convient à la distribution. Le fichier roles/postgresql/tasks/debian.yml: --- - name: Install apt: name: postgresql state: latest update_cache: yes become: yes Utilisation du module apt pour installer le serveur de base de données. D'abord le nom du paquet, ensuite son état, latest pour avoir la dernière version disponible, puis updatecache pour mettre à jour la liste des paquets. L'opération demande les droits d'administration, la valeur de becomeuser est root par défaut. Le fichier roles/postgresql/tasks/archlinux.yml: --- - name: Install pacman: name: postgresql state: latest update_cache: yes become: yes La seule différence est le nom du module utilisé. Ici, c'est pacman, sur le reste le fonctionnement est le même. En général, il y a peu d'opération spécifique à faire pour une distribution. Les modules qui gèrent les systèmes de paquets pour les distributions, sont proches et ont beaucoup d'options communes. ###Conclusion Il n'est pas difficile de gérer le support de plusieurs distributions, dans les tâches ansible. La plupart du temps, les tâches spécifiques sont l'installation du paquet.
Vus : 586
Publié par Hobbestigrou : 195