mambaorg.micromamba

Ansible-Rolle: mambaorg.micromamba

Installiert micromamba und erstellt optional eine Root-/Basis-Cond-Umgebung.

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!

Über das Projekt

Install micromamba, and optionally create a base conda environment.

Installieren
ansible-galaxy install mambaorg.micromamba
Lizenz
mit
Downloads
606
Besitzer
Mathematician, Freelancer