mambaorg.micromamba
Ansible-Rolle: mambaorg.micromamba
Installiert micromamba und erstellt optional eine Root-/Basis-Cond-Umgebung.
Links
- GitHub
- Galaxy
- Fortgeschrittenes Anwendungsbeispiel zum Einrichten einer System-Conda-Umgebung in einem Docker-Image
Motivation
Conda ist ein sehr leistungsstarkes Werkzeug zur Verwaltung von Python-Abhängigkeiten. Leider kann der langsame Abhängigkeitslöser bei Umgebungen mit vielen Abhängigkeiten Stunden benötigen, um abzuschließen.
Das neue Mamba Projekt behebt dieses Problem, indem der Abhängigkeitslöser in C++ neu implementiert wird und extrem schnell ist. Neben dem Löser delegiert mamba
die meisten Aufgaben an das vertraute Werkzeug conda
.
Micromamba ist ein experimenteller reiner C++-Paketmanager für Conda-Umgebungen. Da es keine Python-Abhängigkeiten hat, kann es effizient Umgebungen für jede Python-Version aus einer einzigen micromamba
-Binärdatei erstellen. Wenn keines Ihrer Conda-Pakete eine Python-Abhängigkeit hat, erstellt Micromamba sogar eine Conda-Umgebung ohne Python!
Micromamba beseitigt die Notwendigkeit für "Distributionen" wie Anaconda oder Miniconda. Sie können Ihre gewünschte Umgebung direkt einrichten.
Rollenvariablen
arch: linux-64
version: latest
Für die neuesten Architekturen und Versionsnummern prüfen Sie distributions[#].basename
, das das Format {arch}/micromamba-{version}.tar.bz2
hat. Aktuelle mögliche Werte für arch
sind linux-64
, linux-aarch64
, osx-64
, osx-arm64
, win-64
. Das Format von version
ist entweder latest
oder etwas wie 0.15.2-0
, wobei -0
die Build-Nummer angibt.
dest: /usr/local/bin/micromamba
Standort der ausführbaren Datei micromamba
.
root_prefix: /opt/conda
Wenn das Root-Präfix definiert ist und noch nicht existiert, wird an diesem Ort ein neues Root-Präfix erstellt.
packages:
- mamba
- python=3.9
Eine Liste von anfänglichen Conda-Paketen, die installiert werden sollen, wenn ein neues Root-Präfix erstellt wird.
file: /tmp/environment.yaml
Als Alternative zur Liste von packages
kann eine Umweltdatei oder Lockdatei bereitgestellt werden.
root_prefix_condarc:
channels:
- conda-forge
Inhalte, die in die .condarc
im neuen Root-Präfix geschrieben werden sollen. Wenn nicht definiert, wird keine .condarc
-Datei erstellt.
Beispiel-Playbooks
- hosts: servers
become: yes
roles:
- mambaorg.micromamba
Dies lädt die ausführbare Datei micromamba
an den Standardstandort /usr/local/bin/micromamba
herunter.
- hosts: servers
become: yes
roles:
- mambaorg.micromamba
vars:
dest: /tmp/micromamba
root_prefix: /opt/conda
packages:
- mamba
- python=3.9
Dies lädt micromamba
in /tmp/micromamba
herunter und erstellt ein neues Root-Präfix in /opt/conda/
mit Python 3.9 und Mamba.
- hosts: servers
become: yes
become_user: condauser
roles:
- mambaorg.micromamba
vars:
root_prefix: ~/micromamba
root_prefix_condarc:
channels:
- conda-forge
packages:
- s3fs-fuse
Dies erstellt ein neues Root-Präfix in /home/conda-user/micromamba
und erstellt eine Conda-Umgebung ohne Python. Es wird auch eine .condarc
-Datei im Root-Präfix erstellt, um Pakete standardmäßig aus dem conda-forge
-Kanal zu installieren.
Nachfolgende Nutzung
Um Befehle aus einer Conda-Umgebung auszuführen, muss sie zuerst aktiviert werden. Die Aktivierung umfasst die Veränderung von PATH
und anderen Umgebungsvariablen im aktiven Shell (meist Bash). Dies kann auf verschiedene Arten erfolgen.
Direkt
eval "$(micromamba shell hook --shell=bash)"
micromamba activate --prefix=/opt/conda
Der erste Befehl führt eine Befehlssequenz aus, die eine Bash-Funktion definiert, die ebenfalls micromamba
genannt wird. (Andernfalls würde die ausführbare Datei micromamba
als Unterprozess ausgeführt, der die Umgebung der Shell nicht ändern kann.) Der zweite Befehl ruft die neu definierte Bash-Funktion auf, um die Umgebung in /opt/conda
zu aktivieren.
Mit einem Initialisierungsskript
micromamba shell init --shell=bash --prefix=/opt/conda
Dies ändert ~/.bashrc
, sodass in nachfolgenden interaktiven Bash-Sitzungen der Befehl micromamba activate
ausreicht, um die Umgebung zu aktivieren. (Der Befehl micromamba activate
kann in ~/.bashrc
hinzugefügt werden, wenn gewünscht.)
Mit mamba oder conda
Da micromamba experimentell ist, wird empfohlen, mamba
in die Umgebung zu installieren und auszuführen
/opt/conda/bin/conda init bash
/opt/conda/bin/mamba init bash
Diese Befehle ändern ~/.bashrc
, damit die Umgebung in nachfolgenden interaktiven Bash-Sitzungen vollständig aktiviert wird.
Fehlersuche
Wenn Bash nicht interaktiv ausgeführt wird, wird .bashrc
nicht geladen, sodass micromamba activate
fehlschlägt. In diesem Fall können Sie entweder das direkte Aktivierungsverfahren verwenden oder ein interaktives Shell erzwingen, indem Sie das Flag -i
an den Befehl bash
übergeben.
Lizenz
MIT
Autoreninformation
Derzeit wird es von Ben Mares (@maresb) und Andreas Trawoeger (@atrawog) betreut. Die ursprüngliche Version stammt von @maresb. Beiträge sind willkommen!
Install micromamba, and optionally create a base conda environment.
ansible-galaxy install mambaorg.micromamba