mambaorg.micromamba
Rol de Ansible: mambaorg.micromamba
Instala micromamba y, opcionalmente, crea un entorno conda raíz/base.
Enlaces
- GitHub
- Galaxy
- Ejemplo de uso avanzado para inicializar y configurar un entorno conda en un contenedor Docker.
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!
Install micromamba, and optionally create a base conda environment.
ansible-galaxy install mambaorg.micromamba