lotus

логотип ansible

логотип lotus

Роль Ansible :цветок-вишни: :ссылка: Lotus

Galaxy Role GitHub release (последняя по дате) Лицензия: MIT

Содержание

Роль Ansible для установки и настройки Lotus: реализации протокола блокчейн-сети Filecoin.

Поддерживаемые платформы:
* Debian
* Redhat(CentOS/Fedora)
* Ubuntu

Требования

Необходима утилита unzip/gtar, установленная на целевом хосте. См. примечания к модулю ansible unarchive здесь для подробностей.

Переменные роли

Переменные доступны и организованы по следующим этапам установки и настройки:

  • установка
  • конфигурация
  • запуск
  • удаление

Установка

lotus_user: <имя-пользователя-сервиса> (по умолчанию: lotus)

  • специальный пользователь и группа, используемые lotus для разделения привилегий (подробности здесь)

install_type: <архив | источник> (по умолчанию: архив)

  • архив: поддерживается текущими версиями дистрибутивов Ubuntu и Fedora (из-за доступности версии >= 2.27 пакета glibc GNU 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, которые нужно передать бинарному файлу во время выполнения для настройки запуска. Поддерживает полное выражение cli lotus daemon, эта переменная позволяет настроить запуск в соответствии с требованиями пользователя.

extra_miner_args: <опции-lotus-miner-cli> (по умолчанию: [])

  • список аргументов командной строки lotus-miner run, которые нужно передать бинарному файлу во время выполнения для настройки запуска. Поддерживает полное выражение cli lotus-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/ansible-role-lotus
Лицензия
Unknown
Загрузки
61
Владелец