0x0i.lotus

logo de ansible

logo de lotus

Rol de Ansible :cherry_blossom: :link: Lotus

Rol en Galaxy Última versión de GitHub Licencia: MIT

Índice

Rol de Ansible que instala y configura Lotus: una implementación en Go del protocolo blockchain de la red de almacenamiento distribuido Filecoin.

Plataformas Soportadas:
* Debian
* Redhat(CentOS/Fedora)
* Ubuntu

Requisitos

Se requiere que el utilitario unzip/gtar esté instalado en el host de destino. Vea las notas del módulo unarchive de ansible aquí para más detalles.

Variables del Rol

Las variables están disponibles y organizadas de acuerdo con las siguientes etapas de provisión de software y máquina:

  • instalar
  • configurar
  • lanzar
  • desinstalar

Instalar

lotus_user: <nombre-de-usuario-del-servicio> (predeterminado: lotus)

  • usuario y grupo de servicio dedicados usados por lotus para la separación de privilegios (vea aquí para más detalles)

install_type: <archivo | fuente> (predeterminado: archivo)

  • archivo: actualmente soportado por las distribuciones de Ubuntu y Fedora (debido a la disponibilidad de versiones >= 2.27 del paquete glibc GNU libc libraries -- vea aquí para la disponibilidad del paquete por distribución), la instalación de Lotus a través de archivos comprimidos resulta en la descarga directa de sus binarios de componente, el cliente de red lotus y el software de minería lotus-miner, desde la URL del archivo comprimido especificado.

    nota: los binarios de instalación archivados se pueden obtener del sitio oficial de versiones o aquellos generados desde fuentes de desarrollo/ personalizadas.

  • fuente: construir los binarios del cliente de red lotus y del minero de almacenamiento desde la fuente. Este proceso de instalación consiste en clonar el repositorio alojado en github y compilar desde el código fuente usando directivas make. Vea aquí para más detalles sobre la construcción desde la fuente.

install_dir: </ruta/a/directorio/de/instalación> (predeterminado: /opt/lotus)

  • ruta en el host de destino donde deben extraerse los binarios de lotus.

include_benchmarks: <true|false> (predeterminado: false)

  • para construir e instalar lotus-bench. Más información aquí.

archive_url: <ruta-o-url-al-archivo> (predeterminado: ver defaults/main.yml)

  • dirección de un archivo comprimido tar o zip que contiene los binarios de lotus. Este método admite técnicamente la instalación de cualquier versión disponible de lotus. Los enlaces a versiones oficiales se pueden encontrar aquí.

archive_checksum: <ruta-o-url-al-checksum> (predeterminado: ver defaults/main.yml)

  • dirección de un archivo de suma de verificación para verificar la integridad de los datos del archivo especificado. Aunque se recomienda y generalmente se considera una buena práctica, especificar una suma de verificación no es obligatorio y se puede desactivar proporcionando una cadena vacía ('') como su valor.

checksum_format: <cadena> (predeterminado: ver sha512)

  • algoritmo de hash utilizado para la verificación de archivos asociado con la suma de verificación del archivo o paquete especificado. Consulte aquí para más información sobre sumas de verificación/hash criptográficos.

git_url: <ruta-o-url-al-repo-git> (predeterminado: ver defaults/main.yml)

  • dirección del repositorio git de lotus. La dirección puede referirse al sitio de Github o a una fuente personalizada alojada en un sitio de git diferente.

git_version: <cadena> (predeterminado: v0.1.0)

  • versión del repositorio para extraer. Puede ser la cadena literal HEAD, un nombre de rama o un nombre de etiqueta.

lotus_path: </ruta/a/directorio/de/ejecución> (predeterminado: /opt/lotus/.lotus)

  • ruta en el host de destino que el servicio lotus debe establecer como su directorio de configuración de tiempo de ejecución y datos.

lotus_storage_path: </ruta/a/directorio/de/datos-del-minero> (predeterminado: /opt/lotus/.lotusstorage)

  • ruta en el host de destino que el servicio lotus-miner debe establecer como su directorio de almacenamiento de datos y tiempo de ejecución.

go_autoinstall: <true|false> (predeterminado: false)

  • instalar automáticamente la versión especificada de los paquetes y binarios de Go. Útil al instalar desde la fuente que requiere go como parte de su proceso de compilación.

go_url: <ruta-o-url-al-archivo> (predeterminado: ver defaults/main.yml)

  • dirección de un archivo comprimido tar o zip que contiene los binarios de go o la fuente para compilación. Este método admite técnicamente la instalación de cualquier versión disponible de go. Los enlaces a versiones oficiales se pueden encontrar aquí.

go_install_dir: </ruta/a/directorio/de/instalación> (predeterminado: /usr/local)

  • ruta en el host de destino donde deben extraerse los binarios de go.

Configurar

La configuración del cliente lotus se puede expresar en un archivo de configuración escrito en TOML, un lenguaje de marcado mínimo. Nota: Este archivo se puede encontrar en el directorio especificado por las variables de entorno LOTUS_PATH (para el cliente/servicio lotus) o LOTUS_STORAGE_PATH (para el minero lotus). Para tener una idea de las opciones de configuración disponibles, consulte este ejemplo (instalado por defecto).

Las siguientes variables se pueden personalizar para manejar el contenido de esta configuración TOML:

config: {"<sección-de-configuración>": {"<configuración-sección>": "<valor-configuración>",..},..} predeterminado: ver defaults/main.yml

  • Cualquier configuración de clave/valor que sea compatible con lotus debe poder expresarse dentro del hash config y renderizarse correctamente dentro de la configuración TOML asociada. Los valores se pueden expresar en forma típica de yaml/ansible (por ejemplo, Cadenas, números y valores verdadero/falso deben escribirse tal cual y sin comillas).

    Además, la configuración no está restringida por valores predeterminados definidos por el autor ni limitada por plantillas predefinidas. Si la sección de configuración, configuración y valor son reconocidos por la herramienta lotus, :thumbsup: se pueden definir dentro de config.

    Las claves del hash config representan secciones de configuración TOML:

    config:
      # [Sección TOML 'API']
      API: {}
    

    Los valores de config[<clave>] representan pares clave-valor dentro de un hash incrustado que expresa la configuración:

    config:
      # Sección TOML '[API]'
      API:
        # Configuración de la sección ListenAddress con valor de localhost enlazando en el puerto 1234
        ListenAddress: "/ip4/127.0.0.1/tcp/1234/http"
    

Lanzar

extra_run_args: <opciones-de-línea-de-comando-lotus-cli> (predeterminado: [])

  • lista de argumentos de línea de comando lotus daemon que se pasarán al binario en tiempo de ejecución para personalizar el lanzamiento. Admite la expresión completa del cli de lotus daemon, esta variable permite personalizar el lanzamiento según la especificación del usuario.

extra_miner_args: <opciones-de-línea-de-comando-lotus-miner-cli> (predeterminado: [])

  • lista de argumentos de línea de comando lotus-miner run que se pasarán al binario en tiempo de ejecución para personalizar el lanzamiento. Admite la expresión completa del cli de lotus-miner run, esta variable permite personalizar el lanzamiento según la especificación del usuario.

custom_unit_properties: <hash-de-configuraciones-del-servicio-systemd> (predeterminado: [])

  • hash de configuraciones utilizadas para personalizar la configuración y el entorno de ejecución de la unidad de servicio Lotus systemd.

custom_miner_properties: <hash-de-configuraciones-del-servicio-systemd> (predeterminado: [])

  • hash de configuraciones utilizadas para personalizar la configuración y el entorno de ejecución de la unidad de servicio Lotus Storage Miner systemd.
Ejemplo
custom_unit_properties:
  Environment: "LOTUS_PATH=/var/data/lotus"
custom_miner_properties:
  Environment: "LOTUS_STORAGE_PATH=/var/data/lotus-miner"

Para establecer múltiples variables de entorno, deben separarse por espacios:

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"

Consulte la página del manual systemd.service para una visión general y referencia de configuración.

Desinstalar

perform_uninstall: <true | false> (predeterminado: false)

  • si debe desinstalar y eliminar todos los artefactos y restos de esta instalación de lotus en un host de destino (ver: handlers/main.yml para detalles)

Dependencias

  • 0x0i.systemd

Ejemplo de Playbook

ejemplo predeterminado:

- hosts: all
  roles:
  - role: 0x0I.lotus

instalar lotus desde la versión fuente de git especificada:

- hosts: all
  roles:
  - role: 0x0I.lotus
    vars:
      install_type: source
      git_url: https://github.com/filecoin-project/lotus.git
      git_version: v0.1.1

instalar lotus para la red de calibración; incluir extensiones SHA; incluir rust; incluir lotus-bench:

- hosts: all
  roles:
    - ansible-rustup

- hosts: all
  environment:
    # Extensiones SHA
    RUSTFLAGS: "-C target-cpu=native -g"
    FFI_BUILD_FROM_SOURCE: 1
  vars:
    # Ruta para 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

exponer el servidor API/JSON-RPC de lotus en una dirección que no sea de loopback (comodín/*)

- 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"]

lanzar el servicio lotus y los agentes lotus-miner con rutas de almacenamiento/configuración de tiempo de ejecución personalizadas y opciones de lanzamiento:

- 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

Licencia

MIT

Información del Autor

Este rol fue creado en 2019 por O1.IO.

Acerca del proyecto

Lotus, an implementation of the Filecoin distributed storage network protocol written in Go

Instalar
ansible-galaxy install 0x0i.lotus
Licencia
Unknown
Descargas
70
Propietario