mambaorg.micromamba
Rôle Ansible : mambaorg.micromamba
Installe micromamba et crée éventuellement un environnement conda racine/de base.
Liens
- GitHub
- Galaxy
- Exemple d'utilisation avancée pour configurer et établir un environnement conda système dans une image Docker
Motivation
Conda est un outil puissant de gestion des dépendances centré sur Python. Malheureusement, pour les environnements avec un grand nombre de dépendances, son solveur peut prendre des heures pour s'exécuter.
Le nouveau projet Mamba résout ce problème en réécrivant le solveur en C++, le rendant très rapide. En plus du solveur, mamba délègue la plupart des tâches à l'outil conda, généralement fiable.
Micromamba est un gestionnaire de paquets très expérimental, purement en C++, pour des environnements conda. Comme il n'a pas de dépendances Python, il peut créer efficacement des environnements pour n'importe quelle version de Python à partir d'un seul binaire micromamba. Si aucun de vos paquets conda n'a de dépendance Python, Micromamba créera même un environnement conda sans Python !
Micromamba élimine le besoin de "distributions" comme Anaconda ou Miniconda. Vous pouvez configurer votre environnement désiré directement.
Variables de Rôle
arch: linux-64
version: latest
Pour les dernières architectures et numéros de version, vérifiez distributions[#].basename, avec le format {arch}/micromamba-{version}.tar.bz2. Les valeurs possibles actuelles pour arch sont linux-64, linux-aarch64, osx-64, osx-arm64, win-64. Le format de version est soit latest, soit quelque chose comme 0.15.2-0, où -0 représente le numéro de construction.
dest: /usr/local/bin/micromamba
Emplacement de l'exécutable micromamba.
root_prefix: /opt/conda
Lorsque le préfixe racine est défini et n'existe pas encore, un nouveau préfixe racine sera créé à cet emplacement.
packages:
- mamba
- python=3.9
Une liste de paquets conda initiaux à installer lors de la création d'un nouveau préfixe racine.
file: /tmp/environment.yaml
Comme alternative à la liste de packages, un fichier d'environnement ou un fichier de verrouillage peut être fourni.
root_prefix_condarc:
channels:
- conda-forge
Contenu à écrire dans .condarc dans le nouveau préfixe racine. S'il n'est pas défini, aucun fichier .condarc n'est créé.
Exemples de Playbooks
- hosts: servers
become: yes
roles:
- mambaorg.micromamba
Cela télécharge l'exécutable micromamba à l'emplacement par défaut de /usr/local/bin/micromamba.
- hosts: servers
become: yes
roles:
- mambaorg.micromamba
vars:
dest: /tmp/micromamba
root_prefix: /opt/conda
packages:
- mamba
- python=3.9
Cela télécharge micromamba dans /tmp/micromamba et crée un nouveau préfixe racine dans /opt/conda/ avec Python 3.9 et Mamba.
- hosts: servers
become: yes
become_user: condauser
roles:
- mambaorg.micromamba
vars:
root_prefix: ~/micromamba
root_prefix_condarc:
channels:
- conda-forge
packages:
- s3fs-fuse
Cela crée un nouveau préfixe racine dans /home/conda-user/micromamba et crée un environnement conda sans Python. Il place également un fichier .condarc dans le préfixe racine pour configurer les paquets à installer par défaut depuis le canal conda-forge.
Utilisation ultérieure
Pour exécuter des commandes d'un environnement conda, il faut d'abord l'activer. L'activation modifie le PATH et d'autres variables d'environnement dans le shell actif (généralement Bash). Cela peut être réalisé de différentes manières.
Directement
eval "$(micromamba shell hook --shell=bash)"
micromamba activate --prefix=/opt/conda
La première commande exécute une série de commandes qui définissent une fonction Bash, nommée également micromamba. (Sinon, l'exécutable micromamba s'exécuterait en tant que sous-processus, incapable de modifier l'environnement du shell.) La seconde commande exécute la fonction Bash nouvellement définie pour activer l'environnement situé à /opt/conda.
Avec un script d'initialisation
micromamba shell init --shell=bash --prefix=/opt/conda
Ceci modifie ~/.bashrc de sorte que dans les futures sessions interactives Bash, la commande micromamba activate suffit pour activer l'environnement. (La commande micromamba activate peut également être ajoutée à ~/.bashrc si désiré.)
Avec mamba ou conda
Puisque micromamba est expérimental, au lieu de se fier aux méthodes ci-dessus qui utilisent micromamba pour l'activation, il est conseillé d'installer mamba dans l'environnement et d'exécuter
/opt/conda/bin/conda init bash
/opt/conda/bin/mamba init bash
Ces commandes modifient ~/.bashrc pour que l'environnement soit complètement activé dans les sessions interactives Bash suivantes.
Dépannage
Si Bash n'est pas exécuté de manière interactive, alors le .bashrc ne sera pas chargé, donc l'exécution de micromamba activate échouera. Dans ce cas, vous pouvez soit utiliser la procédure d'activation directe, soit forcer un shell interactif en passant l'option -i à la commande bash.
Licence
MIT
Informations sur l'auteur
Actuellement maintenu par Ben Mares (@maresb) et Andreas Trawoeger (@atrawog). Version initiale par @maresb. Les contributions sont les bienvenues !
Install micromamba, and optionally create a base conda environment.
ansible-galaxy install mambaorg.micromamba