0x0i.lotus

Роль Ansible :цветок-вишни: :ссылка: Lotus
Содержание
- Поддерживаемые платформы
- Требования
- Переменные роли
- Зависимости
- Пример плейбука
- Лицензия
- Информация об авторе
Роль Ansible для установки и настройки Lotus: реализации протокола блокчейн-сети Filecoin.
Поддерживаемые платформы:
* Debian
* Redhat(CentOS/Fedora)
* Ubuntu
Требования
Необходима утилита unzip/gtar, установленная на целевом хосте. См. примечания к модулю ansible unarchive здесь для подробностей.
Переменные роли
Переменные доступны и организованы по следующим этапам установки и настройки:
- установка
- конфигурация
- запуск
- удаление
Установка
lotus_user: <имя-пользователя-сервиса> (по умолчанию: lotus)
- специальный пользователь и группа, используемые
lotusдля разделения привилегий (подробности здесь)
install_type: <архив | источник> (по умолчанию: архив)
архив: поддерживается текущими версиями дистрибутивов Ubuntu и Fedora (из-за доступности версии >= 2.27 пакета
glibcGNU libc libraries -- см. здесь для проверки доступности пакетов) и совместим с форматами tar и zip. Установка Lotus через сжатые архивы ведёт к непосредственному скачиванию его компонентов, клиентов сетиlotusи программного обеспечения для майнингаlotus-miner, по указанному url-адресу архива.примечание: архивированные установочные бинарные файлы можно получить на официальном сайте выпусков или тех, которые генерируются с разработки/индивидуальных источников.
источник: сборка бинарных файлов клиента сети lotus и майнера хранилища. Этот процесс установки включает клонирование репозитория на github репозитория и сборку из исходного кода с использованием директив
make. Подробности о сборке из исходников можно найти здесь.
install_dir: </путь/к/директории/установки> (по умолчанию: /opt/lotus)
- путь на целевом хосте, куда должны быть извлечены бинарные файлы
lotus.
include_benchmarks: <true|false> (по умолчанию: false)
- для сборки и установки
lotus-bench. Более подробная информация здесь.
archive_url: <путь-или-url-архива> (по умолчанию: см. defaults/main.yml)
- адрес сжатого tar или zip архива, содержащего бинарные файлы
lotus. Этот метод позволяет устанавливать любую доступную версиюlotus. Ссылки на официальные версии можно найти здесь.
archive_checksum: <путь-или-url-контрольной-суммы> (по умолчанию: см. defaults/main.yml)
- адрес контрольной суммы файла для проверки целостности данных указанного архива. Хотя это рекомендуется и считается лучшей практикой, указание контрольной суммы не требуется и может быть отключено, если указать пустую строку (
'') в качестве значения.
checksum_format: <строка> (по умолчанию: см. sha512)
- алгоритм хеширования, используемый для проверки файлов, связанного с контрольной суммой указанного архива или пакета. Ссылка здесь для получения дополнительной информации о контрольных суммах/криптографических хешах.
git_url: <путь-или-url-к git-репозиторию> (по умолчанию: см. defaults/main.yml)
- адрес git-репозитория
lotus. Адрес может указывать на Github или индивидуальный источник на альтернативном сайте хостинга git.
git_version: <строка> (по умолчанию: v0.1.0)
- версия репозитория, которую нужно проверить. Это может быть строка HEAD, имя ветки или тег.
lotus_path: </путь/к/директории/времени/выполнения> (по умолчанию: /opt/lotus/.lotus)
- путь на целевом хосте, который сервис
lotusдолжен установить как свой путь конфигурации и директорию данных во время выполнения.
lotus_storage_path: </путь/к/майнеру/директории-данных> (по умолчанию: /opt/lotus/.lotusstorage)
- путь на целевом хосте, который сервис
lotus-minerдолжен установить как свою директорию хранения данных и конфигурации во время выполнения.
go_autoinstall: <true|false> (по умолчанию: false)
- автоматически установить указанную версию пакетов и бинарных файлов Go. Полезно при установке из источника, который требует
goв процессе сборки.
go_url: <путь-или-url-архива> (по умолчанию: см. defaults/main.yml)
- адрес сжатого tar или zip архива, содержащего бинарные файлы или источник для компиляции Go. Этот метод позволяет устанавливать любую доступную версию
go. Ссылки на официальные версии можно найти здесь.
go_install_dir: </путь/к/директории/установки> (по умолчанию: /usr/local)
- путь на целевом хосте, куда должны быть извлечены бинарные файлы
go.
Конфигурация
Конфигурация клиента lotus может быть представлена в конфигурационном файле, написанном на TOML, минимальном языке разметки. Примечание: Этот файл можно найти в директории, указанной переменными окружения LOTUS_PATH (для клиента/сервиса lotus) или LOTUS_STORAGE_PATH (для майнера lotus). Для представления доступных параметров конфигурации, см. этот пример (устанавливается по умолчанию).
Следующие переменные могут быть настроены для управления содержанием этой TOML конфигурации:
config: {"<раздел-конфигурации>": {"<настройка-раздела>": "<значение-настройки>",..},..} по умолчанию: см. defaults/main.yml
Любая настройка/значение пары ключей, поддерживаемая
lotus, должна быть представлена в хэшеconfigи корректно обработана в связанной TOML конфигурации. Значения могут быть выражены в типичной yaml/ansible форме (например, строки, числа и значения true/false следует записывать как есть без кавычек).Более того, конфигурация не ограничивается жестко запрограммированными значениями по умолчанию или ограничена предустановленными шаблонами. Если раздел конфигурации, настройка и значение признаны инструментом
lotus, :thumbsup: их можно определять вconfig.Ключи хэша
configпредставляют разделы TOML конфигурации:config: # [TOML Раздел 'API'] API: {}Значения
config[<key>]представляют пары ключ-знание внутри встроенного хэша, выражающего настройки конфигурации:config: # TOML Раздел '[API]' API: # Настройка раздела ListenAddress со значением localhost, привязанным на порту 1234 ListenAddress: "/ip4/127.0.0.1/tcp/1234/http"
Запуск
extra_run_args: <опции-lotus-cli> (по умолчанию: [])
- список аргументов командной строки
lotus daemon, которые нужно передать бинарному файлу во время выполнения для настройки запуска. Поддерживает полное выражение clilotus daemon, эта переменная позволяет настроить запуск в соответствии с требованиями пользователя.
extra_miner_args: <опции-lotus-miner-cli> (по умолчанию: [])
- список аргументов командной строки
lotus-miner run, которые нужно передать бинарному файлу во время выполнения для настройки запуска. Поддерживает полное выражение clilotus-miner run, эта переменная позволяет настроить запуск в соответствии с требованиями пользователя.
custom_unit_properties: <хэш-настроек-systemd-сервиса> (по умолчанию: [])
- хэш настроек, используемых для настройки конфигурации и среды выполнения юнита Lotus systemd сервиса.
custom_miner_properties: <хэш-настроек-systemd-сервиса> (по умолчанию: [])
- хэш настроек, используемых для настройки конфигурации и среды выполнения юнита Lotus Storage Miner systemd сервиса.
Пример
custom_unit_properties:
Environment: "LOTUS_PATH=/var/data/lotus"
custom_miner_properties:
Environment: "LOTUS_STORAGE_PATH=/var/data/lotus-miner"
Чтобы задать несколько переменных окружения, они должны быть разделены пробелами:
custom_unit_properties:
Environment: "BELLMAN_CPU_UTILIZATION=0.875 FIL_PROOFS_MAXIMIZE_CACHING=1 FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1"
custom_miner_properties:
Environment: "BELLMAN_CPU_UTILIZATION=0.875 FIL_PROOFS_MAXIMIZE_CACHING=1 FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1"
Сослаться на systemd.service man страницу для общего обзора конфигурации и ссылок.
Удаление
perform_uninstall: <true | false> (по умолчанию: false)
- следует ли удалить и удалить все артефакты и остатки установки
lotusна целевом хосте (см.handlers/main.ymlдля подробностей)
Зависимости
- 0x0i.systemd
Пример плейбука
умолчаная установка:
- hosts: all
roles:
- role: 0x0I.lotus
установить lotus из указанной версии git:
- hosts: all
roles:
- role: 0x0I.lotus
vars:
install_type: source
git_url: https://github.com/filecoin-project/lotus.git
git_version: v0.1.1
установить lotus для сети calibration; включить расширения SHA; включить rust; включить lotus-bench:
- hosts: all
roles:
- ansible-rustup
- hosts: all
environment:
# Расширения SHA
RUSTFLAGS: "-C target-cpu=native -g"
FFI_BUILD_FROM_SOURCE: 1
vars:
# Путь для rust/cargo
cargo_home: "{{ /home/{{ ansible_env.HOME }}/.cargo }}"
roles:
- role: 0x0I.lotus
vars:
install_type: source
include_benchmarks: true
git_url: https://github.com/filecoin-project/lotus.git
git_version: ntwk-calibration
go_autoinstall: true
go_url: https://dl.google.com/go/go1.15.5.linux-amd64.tar.gz
выставить lotus API/JSON-RPC сервер на не-обратном (шаблонном/*) адресе
- hosts: all
roles:
- role: 0x0I.lotus
vars:
install_type: archive
config:
API:
ListenAddress: /ip4/0.0.0.0/tcp/1234/http
LibP2P:
ListenAddresses: ["/ip4/0.0.0.0/tcp/0", "/ip6/::/tcp/0"]
запустить сервис lotus и агентов lotus-miner с пользовательскими путями выполнения/хранения и параметрами запуска:
- hosts: all
roles:
- role: 0x0I.lotus
vars:
install_type: source
lotus_path: /mnt/lotus
lotus_storage_path: /mnt/lotus/miner
managed_services: ['lotus', 'lotus-miner']
config:
Metrics:
Nickname: "my_miner"
extra_run_args: ['--bootstrap']
extra_miner_args: ['--nosync']
custom_miner_properties:
LimitDATA: 1T
Лицензия
MIT
Информация об авторе
Эта роль была создана в 2019 году компанией O1.IO.
Lotus, an implementation of the Filecoin distributed storage network protocol written in Go
ansible-galaxy install 0x0i.lotus