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é
# Ansible + GNU environment modules
Posté par Ronan BARZIC . 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 hashpar 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...