• # Ansible + GNU environment modules

    Posté par . En réponse au message Comment synchroniser environnement de développement entre machines ?. Évalué à 2. Dernière modification le 02 mars 2021 à 11:42.

    Pas exactement le même cas d'utilisation que le tien (je ne gère pas vraiment des librairies mais plutôt des outils) mais bon, ça peut aider

    Ansible:
    - pour installer la même version d'un outil sur plusieurs machines à la fois
    - les outils sont installés sous /opt/<nom de l'outil>/<version>
    <version> peut être la version "officielle" (i.e 1.2.3) ou la date + le git hash
    par exemple : /opt/iverilog/2020-07-22-5ebd08c7

    GNU modules

    Pour l'exemple au dessus (iverilog , compilé depuis github, version/hash 5ebd08c7), je vais créer un "module" iverilog/2020-07-22-5ebd08c7 qui definira le chemin de recherche (PATH) et tout autre variable. (j'ai même un script qui crée le fichier "module" depuis le fichier de variable Ansible)

    Pour accéder à cette version, depuis le shell : module load iverilog/2020-07-22-5ebd08c7

    Pour chaque project, dans le répertoire principal, on a un fichier init.sh qui "charge" les différents modules et sélectionne le bon environement virtuel pour Python.

    Comme ca, on maintient une liste d'outil stables tout en permettant à chacun de changer de version d'outils en cas de bug ou de test de nouvelles fonctionnalité

    Marche au poil avec Jenkins...