mambaorg.micromamba

Rôle Ansible : mambaorg.micromamba

Installe micromamba et, éventuellement, crée un environnement conda racine/base.

Liens

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 !

À propos du projet

Install micromamba, and optionally create a base conda environment.

Installer
ansible-galaxy install mambaorg.micromamba
Licence
mit
Téléchargements
606
Propriétaire
Mathematician, Freelancer