mambaorg.micromamba
Rôle Ansible : mambaorg.micromamba
Installe micromamba et, éventuellement, crée un environnement conda racine/base.
Liens
- GitHub
- Galaxy
- Exemple d'utilisation avancée pour démarrer et configurer un environnement conda dans une image Docker
Motivation
Conda est un outil de gestion des dépendances très puissant, centré sur Python. Malheureusement, pour les environnements avec un grand nombre de dépendances, son résolveur de dépendances lent peut prendre des heures pour terminer.
Le nouveau projet Mamba résout ce problème en réécrivant le résolveur de dépendances en C++, et il est très rapide. En plus du résolveur, mamba
délègue la plupart des tâches à l'outil conda
, qui est sinon fiable.
Micromamba est un gestionnaire de paquets purement C++ très expérimental pour les 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, alors 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 souhaité directement.
Variables du Rôle
arch: linux-64
version: latest
Pour les dernières architectures et numéros de version, vérifiez distributions[#].basename
, qui a 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
indique 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 déjà, 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
En 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. Si non 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 /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 un environnement conda sans Python. Cela 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 dans un environnement conda, il doit d'abord être activé. L'activation modifie le PATH
et d'autres variables d'environnement dans le shell actif (généralement Bash). Cela peut être accompli de diverses manières.
Directement
eval "$(micromamba shell hook --shell=bash)"
micromamba activate --prefix=/opt/conda
La première commande exécute une séquence de commandes qui définit une fonction Bash, aussi nommée micromamba
. (Sinon, l'exécutable micromamba
s'exécuterait comme un sous-processus qui ne peut pas modifier l'environnement du shell.) La deuxième 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
Cela modifie ~/.bashrc
de sorte que dans les sessions interactives Bash suivantes, la commande micromamba activate
suffise pour activer l'environnement. (La commande micromamba activate
peut être ajoutée à ~/.bashrc
si désiré.)
Avec mamba ou conda
Étant donné que micromamba est expérimental, au lieu de s'appuyer sur les possibilités 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
de sorte que l'environnement sera entièrement 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 ajoutant le drapeau -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