0x0i.lotus

ansible logo

lotus logo

Ansible Rolle :cherry_blossom: :link: Lotus

Galaxy Rolle GitHub Veröffentlichung (neueste) Lizenz: MIT

Inhaltsverzeichnis

Ansible Rolle, die Lotus installiert und konfiguriert: eine Go-Implementierung des Filecoin verteilten Speicher Netzwerk Blockchain-Protokolls.

Unterstützte Plattformen:
* Debian
* Redhat(CentOS/Fedora)
* Ubuntu

Anforderungen

Benötigt das Hilfsprogramm unzip/gtar auf dem Zielhost. Weitere Informationen finden Sie in den Anmerkungen zum Ansible unarchive Modul hier.

Rollenvariablen

Variablen sind verfügbar und gemäß den folgenden Software- und Maschinenbereitstellungsphasen organisiert:

  • installation
  • konfiguration
  • start
  • deinstallation

Installation

lotus_user: <service-user-name> (Standard: lotus)

  • Ein dedizierter Dienstbenutzer und eine Gruppe, die von lotus zur Trennung der Berechtigungen verwendet werden (siehe hier für Details)

install_type: <archive | source> (Standard: archive)

  • archive: derzeit unterstützt von Ubuntu- und Fedora-Distributionen (aufgrund der Verfügbarkeit von Version >= 2.27 des glibc GNU libc libraries Pakets – siehe hier für die Verfügbarkeit auf Distributionsbasis), die Installation von Lotus über komprimierte Archive führt zu einem direkten Download der zugehörigen Binärdateien, des lotus Netzwerkclients und der lotus-miner Mining-Software von der angegebenen Archiv-URL.

    Hinweis: Archivierte Installationsbinärdateien können von der offiziellen Release Seite oder von Entwicklungs-/benutzerdefinierten Quellen abgerufen werden.

  • source: Erstellen Sie die lotus Netzwerk-Client und Speicherminer Binärdateien aus dem Quellcode. Dieser Installationsprozess besteht aus dem Klonen des auf GitHub gehosteten Repositories und dem Erstellen aus dem Quellcode mit make-Direktiven. Siehe hier für weitere Details zum Erstellen aus dem Quellcode.

install_dir: </path/to/installation/dir> (Standard: /opt/lotus)

  • Pfad auf dem Zielhost, wo die lotus Binärdateien extrahiert werden sollen.

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

  • Um lotus-bench zu erstellen und zu installieren. Weitere Informationen hier.

archive_url: <path-or-url-to-archive> (Standard: siehe defaults/main.yml)

  • Adresse eines komprimierten tar oder zip Archivs, das lotus Binärdateien enthält. Diese Methode unterstützt technisch die Installation jeder verfügbaren Version von lotus. Links zu offiziellen Versionen finden Sie hier.

archive_checksum: <path-or-url-to-checksum> (Standard: siehe defaults/main.yml)

  • Adresse einer Prüfziffer Datei zur Verifizierung der Datenintegrität des angegebenen Archivs. Obwohl empfohlen und allgemein als bewährte Praxis angesehen, ist die Angabe einer Prüfziffer nicht erforderlich und kann durch Angabe eines leeren Strings ('') für seinen Wert deaktiviert werden.

checksum_format: <string> (Standard: siehe sha512)

  • Hash-Algorithmus, der zur Dateiverifizierung im Zusammenhang mit der angegebenen Archiv- oder Paketprüfziffer verwendet wird. Weitere Informationen zu Prüfziffern/kryptografischen Hashes sind hier zu finden.

git_url: <path-or-url-to-git-repo> (Standard: siehe defaults/main.yml)

  • Adresse des lotus Git-Repositorys. Die Adresse kann auf die Github Adresse oder eine benutzerdefinierte Quelle, die auf einem alternativen Git-Hosting-Dienst gehostet wird, verweisen.

git_version: <string> (Standard: v0.1.0)

  • Version des Repositories, die ausgecheckt werden soll. Dies kann der Literalstring HEAD, ein Branch-Name oder ein Tag-Name sein.

lotus_path: </path/to/runtime/dir> (Standard: /opt/lotus/.lotus)

  • Pfad auf dem Zielhost, den der lotus Dienst als sein Laufzeitkonfigurations- und Datenverzeichnis festlegen soll.

lotus_storage_path: </path/to/miner/data-dir> (Standard: /opt/lotus/.lotusstorage)

  • Pfad auf dem Zielhost, den der lotus-miner Dienst als sein Laufzeit- und Datenspeicherverzeichnis festlegen soll.

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

  • Installiert automatisch die angegebene Version von Go-Paketen und -Binärdateien. Nützlich, wenn die Installation aus dem Quellcode erfolgt, die go als Teil des Build-Prozesses erfordert.

go_url: <path-or-url-to-archive> (Standard: siehe defaults/main.yml)

  • Adresse eines komprimierten tar oder zip Archivs, das go Binärdateien oder Quellcode für die Kompilierung enthält. Diese Methode unterstützt technisch die Installation jeder verfügbaren Version von go. Links zu offiziellen Versionen finden Sie hier.

go_install_dir: </path/to/install/dir> (Standard: /usr/local)

  • Pfad auf dem Zielhost, wo die go Binärdateien extrahiert werden sollen.

Konfiguration

Die Konfiguration des lotus Clients kann in einer Konfigurationsdatei im TOML-Format TOML ausgedrückt werden, einer minimalen Auszeichnungssprache. Hinweis: Diese Datei befindet sich im Verzeichnis, das durch die Umgebungsvariablen LOTUS_PATH (für den lotus Client/Dienst) oder LOTUS_STORAGE_PATH (für den lotus Miner) angegeben ist. Für eine Vorstellung von den verfügbaren Konfigurationsoptionen, siehe dieses Beispiel (standardmäßig installiert).

Die folgenden Variablen können angepasst werden, um den Inhalt dieser TOML-Konfiguration zu verwalten:

config: {"<config-section>": {"<section-setting>": "<setting-value>",..},..} Standard: siehe defaults/main.yml

  • Jedes von lotus unterstützte Konfigurationseinstellung/Wert-Schlüsselpaar sollte innerhalb des config Hashes ausgedrückt und korrekt im zugehörigen TOML Konfigurationsdateiformatiert werden. Werte können in typischer yaml/ansible Form ausgedrückt werden (z.B. Strings, Zahlen und true/false Werte sollten wie angegeben ohne Anführungszeichen geschrieben werden).

    Darüber hinaus ist die Konfiguration nicht durch festgelegte Autoren-Standardeinschränkungen oder durch vorgefertigte Vorlagen beschränkt. Wenn der Konfigurationsabschnitt, die Einstellung und der Wert von den lotus Tools erkannt werden, :thumbsup: um sie innerhalb des config zu definieren.

    Schlüsseln des config Hashes repräsentieren TOML Konfigurationsabschnitte:

    config:
      # [TOML Abschnitt 'API']
      API: {}
    

    Werte von config[<key>] repräsentieren Schlüssel-Wert-Paare innerhalb eines eingebetteten Hashes, der Konfigurationseinstellungen ausdrückt:

    config:
      # TOML Abschnitt '[API]'
      API:
        # Abschnittseinstellung Listenadresse mit dem Wert von localhost, die an Port 1234 bindet
        ListenAddress: "/ip4/127.0.0.1/tcp/1234/http"
    

Start

extra_run_args: <lotus-cli-options> (Standard: [])

  • Liste der lotus daemon Kommandozeilenargumente, die zur Laufzeit an die Binärdatei übergeben werden, um den Start anzupassen. Dies unterstützt die vollständige Ausdrucksweise von lotus daemon's cli, diese Variable ermöglicht es, den Start entsprechend der Benutzerangaben anzupassen.

extra_miner_args: <lotus-miner-cli-options> (Standard: [])

  • Liste der lotus-miner run Kommandozeilenargumente, die zur Laufzeit an die Binärdatei übergeben werden, um den Start anzupassen. Dies unterstützt die vollständige Ausdrucksweise von lotus-miner run's cli, diese Variable ermöglicht es, den Start entsprechend der Benutzerangaben anzupassen.

custom_unit_properties: <hash-of-systemd-service-settings> (Standard: [])

  • Hash von Einstellungen, die zur Anpassung der [Service] Einheit Konfiguration und Ausführungsumgebung des Lotus systemd Dienstes verwendet wird.

custom_miner_properties: <hash-of-systemd-service-settings> (Standard: [])

  • Hash von Einstellungen, die zur Anpassung der [Service] Einheit Konfiguration und Ausführungsumgebung des Lotus Storage Miner systemd Dienstes verwendet wird.
Beispiel
custom_unit_properties:
  Environment: "LOTUS_PATH=/var/data/lotus"
custom_miner_properties:
  Environment: "LOTUS_STORAGE_PATH=/var/data/lotus-miner"

Um mehrere Umgebungsvariablen festzulegen, müssen sie durch Leerzeichen getrennt werden:

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"

Referenzieren Sie die systemd.service man Seite für einen Konfigurationsüberblick und Referenz.

Deinstallation

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

  • Ob alle Artefakte und Überreste dieser lotus Installation auf einem Zielhost deinstalliert und entfernt werden sollen (siehe: handlers/main.yml für Details)

Abhängigkeiten

  • 0x0i.systemd

Beispiel-Playbook

Standardbeispiel:

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

lotus von einer angegebenen git Quellversion installieren:

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

Installieren von lotus für das calibration Netzwerk; SHA-Erweiterungen einfügen; Rust einfügen; lotus-bench einfügen:

- hosts: all
  roles:
    - ansible-rustup

- hosts: all
  environment:
    # SHA-Erweiterungen
    RUSTFLAGS: "-C target-cpu=native -g"
    FFI_BUILD_FROM_SOURCE: 1
  vars:
    # Pfad für 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

Exponieren Sie den lotus API/JSON-RPC Server auf einer Nicht-Loopback (Wildcard/*) Adresse

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

Starten Sie lotus Dienst und lotus-miner Agenten mit benutzerdefinierten Laufzeit-/Speicherpfaden und Startoptionen:

- 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

Lizenz

MIT

Autoreninformationen

Diese Rolle wurde 2019 von O1.IO erstellt.

Über das Projekt

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

Installieren
ansible-galaxy install 0x0i.lotus
GitHub Repository
Lizenz
Unknown
Downloads
70
Besitzer