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