mambaorg.micromamba

Rol de Ansible: mambaorg.micromamba

Instala micromamba y, opcionalmente, crea un entorno conda raíz/base.

Enlaces

Motivación

Conda es una herramienta de gestión de dependencias muy poderosa centrada en Python. Sin embargo, para entornos con un gran número de dependencias, su solución de dependencias lenta puede tardar horas en completarse.

El nuevo proyecto Mamba aborda este problema volviendo a implementar el solucionador de dependencias en C++, y es extremadamente rápido. Aparte del solucionador, mamba delega la mayoría de las tareas al confiable herramientas conda.

Micromamba es un gestor de paquetes experimental y puro en C++ para entornos conda. Como no tiene dependencias de Python, puede crear entornos de manera eficiente para cualquier versión de Python a partir de un solo binario micromamba. Si ninguno de tus paquetes conda tiene una dependencia de Python, Micromamba incluso puede crear un entorno conda sin Python.

Micromamba elimina la necesidad de "distribuciones" como Anaconda o Miniconda. Puedes configurar tu entorno deseado directamente.

Variables del Rol

arch: linux-64
version: latest

Para las últimas arquitecturas y números de versión, consulta distributions[#].basename, que tiene el formato {arch}/micromamba-{version}.tar.bz2. Los valores actuales posibles para arch son linux-64, linux-aarch64, osx-64, osx-arm64, win-64. El formato de version es ya sea latest o algo como 0.15.2-0, donde -0 indica el número de compilación.


dest: /usr/local/bin/micromamba

Ubicación del ejecutable micromamba.


root_prefix: /opt/conda

Cuando se define el prefijo raíz y no existe, se creará un nuevo prefijo raíz en esta ubicación.


packages:
  - mamba
  - python=3.9

Una lista de paquetes conda iniciales que se instalarán al crear un nuevo prefijo raíz.


file: /tmp/environment.yaml

Como alternativa a la lista de packages, se puede proporcionar un archivo de entorno o un archivo de bloqueo.


root_prefix_condarc:
  channels:
    - conda-forge

Contenido para escribir en .condarc en el nuevo prefijo raíz. Si no se define, no se creará ningún archivo .condarc.

Ejemplos de Playbooks

- hosts: servers
  become: yes
  roles:
      - mambaorg.micromamba

Esto descarga el ejecutable micromamba en la ubicación predeterminada 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

Esto descarga micromamba en /tmp/micromamba y crea un nuevo prefijo raíz en /opt/conda/ con Python 3.9 y Mamba.


- hosts: servers
  become: yes
  become_user: condauser
  roles:
      - mambaorg.micromamba
  vars:
    root_prefix: ~/micromamba
    root_prefix_condarc:
      channels:
        - conda-forge
    packages:
      - s3fs-fuse

Esto crea un nuevo prefijo raíz en /home/conda-user/micromamba y crea un entorno conda sin Python. También coloca un archivo .condarc en el prefijo raíz para configurar los paquetes que se instalarán por defecto desde el canal conda-forge.

Uso Posterior

Para ejecutar comandos desde un entorno conda, debe ser primero activado. La activación implica modificar el PATH y otras variables de entorno en el shell activo (generalmente Bash). Esto se puede realizar de varias maneras.

Directamente

eval "$(micromamba shell hook --shell=bash)"
micromamba activate --prefix=/opt/conda

El primer comando ejecuta una secuencia de comandos que define una función Bash llamada micromamba. (De lo contrario, el ejecutable micromamba se ejecutaría como un subproceso que no puede modificar el entorno del shell). El segundo comando ejecuta la nueva función Bash para activar el entorno ubicado en /opt/conda.

Con un script de inicialización

micromamba shell init --shell=bash --prefix=/opt/conda

Esto modifica ~/.bashrc para que en sesiones interactivas futuras de Bash, el comando micromamba activate sea suficiente para activar el entorno. (El comando micromamba activate se puede agregar a ~/.bashrc si se desea).

Con mamba o conda

Dado que micromamba es experimental, en lugar de depender de las posibilidades anteriores que utilizan micromamba para la activación, se recomienda instalar mamba en el entorno y ejecutar

/opt/conda/bin/conda init bash
/opt/conda/bin/mamba init bash

Estos comandos modifican ~/.bashrc para que el entorno se active completamente en sesiones interactivas futuras de Bash.

Resolución de Problemas

Si Bash no se está ejecutando de manera interactiva, entonces ~/.bashrc no se cargará, por lo que ejecutar micromamba activate fallará. En este caso, puedes usar el procedimiento de activación directo o forzar un shell interactivo pasando el flag -i al comando bash.

Licencia

MIT

Información del Autor

Actualmente mantenido por Ben Mares (@maresb) y Andreas Trawoeger (@atrawog). Versión inicial por @maresb. ¡Las contribuciones son bienvenidas!

Acerca del proyecto

Install micromamba, and optionally create a base conda environment.

Instalar
ansible-galaxy install mambaorg.micromamba
Licencia
mit
Descargas
594
Propietario