0x0i.lotus

ansible logo

lotus logo

Ansibleロール :cherry_blossom: :link: Lotus

Galaxy Role GitHubリリース(最新の日付) ライセンス: MIT

目次

Lotusをインストールし、設定するためのAnsibleロールです。Lotusは、Filecoin分散ストレージネットワークのブロックチェーンプロトコルをGoで実装したものです。

サポートされているプラットフォーム:
* Debian
* Redhat(CentOS/Fedora)
* Ubuntu

要件

ターゲットホストにunzip/gtarユーティリティがインストールされている必要があります。詳細については、ansibleのunarchiveモジュールのノートを参照してください。

ロール変数

変数は、次のソフトウェアとマシンのプロビジョニングステージに従って利用可能で整理されています:

  • install
  • config
  • launch
  • uninstall

インストール

lotus_user: <サービスユーザー名> (デフォルト: lotus)

  • 権限の分離のためにlotusによって使用される専用のサービスユーザーとグループです(詳細はこちらを参照)。

install_type: <archive | source> (デフォルト: archive)

  • archive: 現在、UbuntuとFedoraディストリビューションでサポートされています(glibc GNU libcライブラリパッケージのバージョン>= 2.27の入手可能性による -- 各ディストリビューションのパッケージの入手可能性についてはこちらを参照)。圧縮アーカイブからLotusをインストールすると、指定されたアーカイブURLからコンポーネントバイナリ、lotusネットワーククライアントおよびlotus-minerマイニングソフトウェアが直接ダウンロードされます。

    注意: アーカイブされたインストールバイナリは、公式のリリースサイトまたは開発/カスタムソースから生成されたものから取得できます。

  • source: lotusネットワーククライアントおよびストレージマイナーバイナリをソースからビルドします。このインストールプロセスは、githubにホストされたリポジトリをクローンし、makeディレクティブを使用してソースコードからビルドすることを含みます。ソースからのビルドの詳細については、こちらを参照してください。

install_dir: </path/to/installation/dir> (デフォルト: /opt/lotus)

  • lotusバイナリが展開されるターゲットホスト上のパスです。

include_benchmarks: <true|false> (デフォルト: false)

  • lotus-benchをビルドしインストールするかどうかを指定します。詳細情報はこちらを参照。

archive_url: <path-or-url-to-archive> (デフォルト: defaults/main.ymlを参照)

  • lotusバイナリを含む圧縮tarまたはzipアーカイブのアドレスです。この方法は、技術的には利用可能な任意のバージョンのlotusのインストールをサポートします。公式バージョンへのリンクはこちらで確認できます。

archive_checksum: <path-or-url-to-checksum> (デフォルト: defaults/main.ymlを参照)

  • 指定されたアーカイブのデータ整合性を検証するためのチェックサムファイルのアドレスです。推奨されており、一般的にベストプラクティスと見なされていますが、チェックサムの指定は必須ではなく、空文字列('')をその値として指定することで無効にできます。

checksum_format: <string> (デフォルト: sha512)

  • 指定されたアーカイブまたはパッケージチェックサムに関連付けられたファイル検証に使用されるハッシュアルゴリズムです。チェックサム/暗号的ハッシュに関する詳細情報はこちらを参照してください。

git_url: <path-or-url-to-git-repo> (デフォルト: defaults/main.ymlを参照)

  • lotusのgitリポジトリのアドレスです。アドレスはGithubのサイトアドレスまたは別のgitホスティングサイトにホストされているカスタムソースを指すことができます。

git_version: <string> (デフォルト: v0.1.0)

  • チェックアウトするリポジトリのバージョンです。この値はリテラル文字列HEAD、ブランチ名、タグ名であることができます。

lotus_path: </path/to/runtime/dir> (デフォルト: /opt/lotus/.lotus)

  • lotusサービスが構成およびデータディレクトリとして確立すべきターゲットホスト上のパスです。

lotus_storage_path: </path/to/miner/data-dir> (デフォルト: /opt/lotus/.lotusstorage)

  • lotus-minerサービスが構成およびデータ保存ディレクトリとして確立すべきターゲットホスト上のパスです。

go_autoinstall: <true|false> (デフォルト: false)

  • 指定されたバージョンのGoパッケージとバイナリを自動的にインストールします。ソースからのビルド時にgoがビルドプロセスの一部として必要な場合に便利です。

go_url: <path-or-url-to-archive> (デフォルト: defaults/main.ymlを参照)

  • コンパイル用のgoバイナリまたはソースを含む圧縮tarまたはzipアーカイブのアドレスです。この方法は、技術的には利用可能な任意のバージョンのgoのインストールをサポートします。公式バージョンへのリンクはこちらで確認できます。

go_install_dir: </path/to/install/dir> (デフォルト: /usr/local)

  • goバイナリが展開されるターゲットホスト上のパスです。

設定

lotusクライアントの設定は、TOMLというミニマルなマークアップ言語で書かれた設定ファイルで表現できます。注意: このファイルは、LOTUS_PATH(lotusクライアント/サービス用)またはLOTUS_STORAGE_PATH(lotusマイナー用)の環境変数で指定されたディレクトリにあります。利用可能な設定オプションについての参考は、(デフォルトでインストールされています)を参照してください。

次の変数をカスタマイズして、このTOML設定の内容を管理できます:

config: {"<config-section>": {"<section-setting>": "<setting-value>",..},..} デフォルト: defaults/main.ymlを参照

  • lotusがサポートする任意の設定/値キーペアは、configハッシュ内に表現でき、関連するTOML設定内に正しくレンダリングされるべきです。値は通常の_yaml/ansible_形式(例:文字列、数値、真偽値はそのまま記述し、引用符なしで記述する必要があります)で記述できます。

    さらに、設定はハードコードされた著者の定義したデフォルトによって制約されたり、事前に作成されたテンプレートに制限されたりはしません。設定セクション、設定、および値がlotusツールによって認識されていれば、config内で定義可能です。

    configハッシュのキーはTOML設定セクションを表します:

    config:
      # [TOMLセクション 'API']
      API: {}
    

    config[<key>]の値は、設定を表現する埋め込まれたハッシュ内のkey,valueペアです:

    config:
      # TOMLセクション '[API]'
      API:
        # セクション設定ListenAddressの値は、ポート1234でlocalhostにバインド
        ListenAddress: "/ip4/127.0.0.1/tcp/1234/http"
    

起動

extra_run_args: <lotus-cli-options> (デフォルト: [])

  • ランタイム時にバイナリに渡すlotus daemonコマンドライン引数のリストです。これは、ユーザーの指定に応じて起動をカスタマイズできるようにします。

extra_miner_args: <lotus-miner-cli-options> (デフォルト: [])

  • ランタイム時にバイナリに渡すlotus-miner runコマンドライン引数のリストです。これも、ユーザーの指定に応じて起動をカスタマイズできるようにします。

custom_unit_properties: <hash-of-systemd-service-settings> (デフォルト: [])

  • Lotus systemdサービスの[Service]ユニット設定と実行環境をカスタマイズするために使用される設定のハッシュです。

custom_miner_properties: <hash-of-systemd-service-settings> (デフォルト: [])

  • Lotus Storage Miner systemdサービスの[Service]ユニット設定と実行環境をカスタマイズするために使用される設定のハッシュです。
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.servicemanページを参照してください。

アンインストール

perform_uninstall: <true | false> (デフォルト: false)

  • ターゲットホスト上のこのlotusインストールのすべてのアーティファクトと残骸をアンインストールして削除するかどうかを指定します(詳細は: handlers/main.ymlを参照)。

依存関係

  • 0x0i.systemd

例のプレイブック

デフォルトの例:

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

指定されたgitソースバージョンからlotusをインストール:

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

calibrationネットワーク向けにlotusをインストール; SHA拡張を含む; rustを含む; lotus-benchを含む:

- hosts: all
  roles:
    - ansible-rustup

- hosts: all
  environment:
    # SHA Extensions
    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

非ループバック(ワイルドカード/*)アドレスでlotusAPI/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.lotus
ライセンス
Unknown
ダウンロード
70
所有者