mambaorg.micromamba

Ansible Rolle: mambaorg.micromamba

Installiere micromamba und optional ein root/basis Conda-Umfeld.

Motivation

Conda ist ein sehr leistungsfähiges Werkzeug zur Verwaltung von Python-Abhängigkeiten. Leider kann der langsame Abhängigkeitsslöser für Umgebungen mit vielen Abhängigkeiten Stunden in Anspruch nehmen.

Das neue Mamba Projekt löst dieses Problem, indem es den Abhängigkeitsslöser in C++ neu implementiert und blitzschnell ist. Abgesehen vom Solver überträgt mamba die meisten Aufgaben an das zuverlässige conda-Werkzeug.

Micromamba ist ein sehr 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 einzelnen micromamba-Binärdatei erstellen. Wenn keines deiner Conda-Pakete eine Python-Abhängigkeit hat, erstellt Micromamba sogar eine Conda-Umgebung ohne Python!

Micromamba macht „Distributionen“ wie Anaconda oder Miniconda überflüssig. Du kannst deine gewünschte Umgebung direkt einrichten.

Rollenvariablen

arch: linux-64
version: latest

Für die aktuellsten Architekturen und Versionsnummern überprüfe 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 Buildnummer 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 ein neues Root-Präfix an diesem Ort erstellt.


packages:
  - mamba
  - python=3.9

Eine Liste von initialen 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 auch eine Umgebungsdatei oder Sperrdatei bereitgestellt werden.


root_prefix_condarc:
  channels:
    - conda-forge

Inhalt, der in .condarc im neuen Root-Präfix geschrieben werden soll. 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 in den Standardort /usr/local/bin/micromamba.


- 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 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 platziert, um die Standard-Paketquelle auf den conda-forge-Kanal einzustellen.

Weitere Nutzung

Um Befehle aus einer Conda-Umgebung auszuführen, muss sie zunächst aktiviert werden. Die Aktivierung beinhaltet die Änderung des PATH und anderer Umgebungsvariablen im aktiven Shell (normalerweise Bash). Dies kann auf verschiedene Arten geschehen.

Direkt

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

Der erste Befehl führt eine Befehlssequenz aus, die eine Bash-Funktion mit dem Namen micromamba definiert. (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 unter /opt/conda zu aktivieren.

Mit einem Initialisierungsskript

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

Dies ändert ~/.bashrc, sodass in zukünftigen interaktiven Bash-Sitzungen der Befehl micromamba activate ausreicht, um die Umgebung zu aktivieren. (Der Befehl micromamba activate kann bei Bedarf zu ~/.bashrc hinzugefügt werden.)

Mit mamba oder conda

Da micromamba experimentell ist, wird empfohlen, anstelle der oben genannten Möglichkeiten, die micromamba für die Aktivierung nutzen, mamba in der Umgebung zu installieren und dann

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

Diese Befehle ändern ~/.bashrc, sodass die Umgebung in zukünftigen interaktiven Bash-Sitzungen vollständig aktiviert wird.

Problemlösung

Wenn Bash nicht interaktiv ausgeführt wird, wird die .bashrc nicht geladen, sodass das Ausführen von micromamba activate fehlschlägt. In diesem Fall kannst du entweder das direkte Aktivierungsverfahren verwenden oder eine interaktive Shell erzwingen, indem du das -i-Flag für den bash-Befehl übergibst.

Lizenz

MIT

Autoreninformationen

Derzeit gepflegt von Ben Mares (@maresb) und Andreas Trawoeger (@atrawog). Die ursprüngliche Version stammt von @maresb. Beiträge sind willkommen!

Über das Projekt

Install micromamba, and optionally create a base conda environment.

Installieren
ansible-galaxy install mambaorg.micromamba
Lizenz
mit
Downloads
594
Besitzer