ipfs

IPFS

Функции:

  • Автоматическая генерация Peering.Peers.
  • Конфигурация применяется через ipfs config с использованием настраиваемого модуля. Поддерживает идемпотентность и генерацию отличий.
  • Позволяет указать пользовательский публичный IP-адрес, если работает за маршрутизатором.
  • Загружает бинарные файлы для обновлений через локальный IPFS шлюз, если он уже установлен.
  • Запускает ipfs repo gc как отдельный сервис.
  • Поддерживает x86_64 и aarch64.

Требования

  • Целевая система использует systemd

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

  • ipfs_ansible_group: Ansible группа, содержащая управляемые узлы IPFS. По умолчанию: all.
  • ipfs_home_dir: по умолчанию /var/lib/ipfs
  • ipfs_version: (это очевидно)
  • ipfs_init_profile: Профиль для применения при инициализации IPFS (см. Настройка профиля)
  • ipfs_gc_when: Когда запускать ipfs repo gc. Время systemd (см. man systemd.time).
  • ipfs_force_https_download: Принудительно загружать бинарный архив по https, даже если сервис запущен. По умолчанию: no.
  • ipfs_force_migration: Принудительно запускать ipfs repo migrate. Это подразумевает безусловную остановку сервиса. По умолчанию: no.
  • ipfs_swarm_port: 4001
  • ipfs_public_addresses: Публичные адреса для сварм. По умолчанию:
    • /ip4/{{ ansible_default_ipv4['address'] }}/tcp/{{ ipfs_swarm_port }}
    • /ip4/{{ ansible_default_ipv4['address'] }}/udp/{{ ipfs_swarm_port }}/quic
    • /ip4/{{ ansible_default_ipv4['address'] }}/udp/{{ ipfs_swarm_port }}/quic-v1
    • /ip4/{{ ansible_default_ipv4['address'] }}/udp/{{ ipfs_swarm_port }}/quic-v1/webtransport
  • ipfs_private_addresses: Форматированы как ipfs_public_addresses. Используются для прямого соединения между узлами IPFS. Может быть полезно при подключении через LAN по VPN.
  • ipfs_config_extra: Дополнительная конфигурация узла IPFS. Структура yaml преобразуется в json и отправляется в ipfs config. Значение по умолчанию:
    ipfs_config_extra:
      Gateway.PublicGateways:
        localhost: null
    
    Это приведет к выполнению:
    ipfs config --json Gateway.PublicGateways '{"localhost": null}'
    
    что происходит из https://github.com/ipfs/kubo/blob/master/docs/config.md#implicit-defaults-of-gatewaypublicgateways

Зависимости

Нет

Пример плейбука

Просто:

- hosts: ipfs
  roles: [ipfs]

Лицензия

GPL-3.0-or-later

Информация об авторе

Адам "etam" Мизерский adam@mizerski.pl https://etam-software.eu

О проекте

Sets up IPFS nodes, fills "Peering.Peers" and contains custom ansible module that talks with "ipfs config".

Установить
ansible-galaxy install etam/ansible-role-ipfs
Лицензия
gpl-3.0
Загрузки
57
Владелец
Doing a bit of programming, a bit of Linux sysadmin, a bit of openSUSE packaging, and most importantly enjoying free weekends.