mambaorg.micromamba
Ansible роль: mambaorg.micromamba
Установка micromamba и, при необходимости, создание корневой/базовой среды conda.
Ссылки
- GitHub
- Galaxy
- Пример продвинутого использования для начальной настройки и создания системы conda в Docker образе.
Мотивация
Conda — это очень мощный инструмент управления зависимостями, ориентированный на Python. Однако для сред с большим количеством зависимостей его медленный решатель зависимостей может занимать часы.
Новый проект Mamba решает эту проблему, переписывая решатель зависимостей на C++, и работает очень быстро. Кроме решателя, mamba делегирует большинство задач надежному инструменту conda.
Micromamba — это высокоэкспериментальный чистый C++ пакетный менеджер для conda-сред. Поскольку у него нет зависимостей от Python, он может эффективно создавать среды для любой версии Python из единственного двоичного файла micromamba. Если ни один из ваших пакетов conda не имеет зависимости от Python, то Micromamba даже создаст среду conda без Python!
Micromamba избавляет от необходимости в "дистрибутивах", таких как Anaconda или Miniconda. Вы можете настраивать желаемую среду напрямую.
Переменные роли
arch: linux-64
version: latest
Для последних архитектур и номеров версий проверьте distributions[#].basename, который имеет формат {arch}/micromamba-{version}.tar.bz2. Текущие возможные значения для arch — это linux-64, linux-aarch64, osx-64, osx-arm64, win-64. Формат version — это либо latest, либо что-то вроде 0.15.2-0, где -0 обозначает номер сборки.
dest: /usr/local/bin/micromamba
Местоположение исполняемого файла micromamba.
root_prefix: /opt/conda
Когда корневой префикс определен и еще не существует, новый корневой префикс будет создан в этом месте.
packages:
- mamba
- python=3.9
Список начальных пакетов conda, которые должны быть установлены при создании нового корневого префикса.
file: /tmp/environment.yaml
В качестве альтернативы списку packages можно предоставить файл среды или файл блокировки.
root_prefix_condarc:
channels:
- conda-forge
Содержимое, которое будет записано в .condarc в новом корневом префиксе. Если не задано, то файл .condarc не создается.
Примеры плейбуков
- hosts: servers
become: yes
roles:
- mambaorg.micromamba
Это загружает исполняемый файл micromamba в стандартное местоположение /usr/local/bin/micromamba.
- hosts: servers
become: yes
roles:
- mambaorg.micromamba
vars:
dest: /tmp/micromamba
root_prefix: /opt/conda
packages:
- mamba
- python=3.9
Это загружает micromamba в /tmp/micromamba и создает новый корневой префикс в /opt/conda/ с Python 3.9 и Mamba.
- hosts: servers
become: yes
become_user: condauser
roles:
- mambaorg.micromamba
vars:
root_prefix: ~/micromamba
root_prefix_condarc:
channels:
- conda-forge
packages:
- s3fs-fuse
Это создает новый корневой префикс в /home/conda-user/micromamba и создает среду conda без Python. Также в корневом префиксе помещается файл .condarc, чтобы настроить установку пакетов по умолчанию из канала conda-forge.
Дальнейшее использование
Чтобы запустить любые команды из среды conda, ее необходимо сначала активировать. Активация включает изменение PATH и других переменных окружения в активной оболочке (обычно Bash). Это можно сделать различными способами.
Прямо
eval "$(micromamba shell hook --shell=bash)"
micromamba activate --prefix=/opt/conda
Первая команда выполняет последовательность команд, которые определяют функцию Bash с тем же именем micromamba. (В противном случае исполняемый файл micromamba запустится как субпроцесс, который не может изменить среду оболочки.) Вторая команда запускает новоопределенную функцию Bash для активации среды, расположенной в /opt/conda.
С помощью скрипта инициализации
micromamba shell init --shell=bash --prefix=/opt/conda
Это изменяет ~/.bashrc, так что в последующих интерактивных сессиях Bash команда micromamba activate будет достаточно для активации среды. (Команду micromamba activate можно добавить в ~/.bashrc, если это необходимо.)
С помощью mamba или conda
Поскольку micromamba является экспериментальным, вместо того, чтобы полагаться на описанные выше способы активации через micromamba, рекомендуется установить mamba в среду и выполнить
/opt/conda/bin/conda init bash
/opt/conda/bin/mamba init bash
Эти команды изменяют ~/.bashrc, так что среда будет полностью активирована в последующих интерактивных сессиях Bash.
Устранение неполадок
Если Bash не запускается в интерактивном режиме, файл .bashrc не будет загружен, поэтому запуск команды micromamba activate завершится неудачей. В этом случае вы можете использовать прямую процедуру активации или запустить интерактивную оболочку, передав флаг -i команде bash.
Лицензия
MIT
Информация об авторе
В настоящее время поддерживается Беном Мэресом (@maresb) и Андреасом Травогером (@atrawog). Исходная версия была создана @maresb. Приветствуются вклады и предложения!
Install micromamba, and optionally create a base conda environment.
ansible-galaxy install mambaorg.micromamba