0x0i.lotus
Ansible Rolle :cherry_blossom: :link: Lotus
Inhaltsverzeichnis
- Unterstützte Plattformen
- Anforderungen
- Rollenvariablen
- Abhängigkeiten
- Beispiel-Playbook
- Lizenz
- Autoreninformationen
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, deslotus
Netzwerkclients und derlotus-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 vonlotus
. 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 vongo
. 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 desconfig
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 desconfig
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 vonlotus 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 vonlotus-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.