Ansible role for the Sia distributed storage network
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
defaults
handlers
hooks
meta
tasks
templates
tests
vars
.gitignore
.travis.yml
LICENSE
README.md
build

README.md

Ansible Role: Sia

Build Status Ansible Galaxy License

The Sia Ansible role installs Sia on a node and automates its initial provisioning steps.

Features

  • Unattended install
    • This role allows you to provision a Sia node from start to finish completely unattended. No more waiting hours for the blockchain to sync or the wallet to unlock before you can proceed to the next step of installation.
  • Service installation
    • Will install Sia as a systemd service.
  • Idempotent
    • This role is idempotent. You can run it against the same server multiple times and it will not change the server's state unless necessary.
  • Simple upgrade
    • With this role, upgrading your Sia version is simply a matter of changing the version variable.

Role Variables

Available variables are listed below, along with default values (see defaults/main.yml):

The version of Sia to install:

sia_version: 1.3.2

The location to install Sia:

sia_dir: "/opt/{{ sia_package }}"

The convenience symlink that will always point to the latest version of Sia (e.g. /opt/sia/siac wallet):

sia_symlink: "/opt/sia"

The location to store Sia data files (blockchain files, encrypted wallet files, and other Sia metadata):

sia_data_dir: "/opt/sia-data"

Specifies whether or not to use the bootstrap method to sync the Sia blockchain:

sia_bootstrap_blockchain: False

Username and group to use for Sia service:

sia_user: sia
sia_group: "{{ sia_user }}"

Sia modules to load (see the --modules parameter of siad):

sia_modules: cgtwrh

Path (on the control node, localhost) to a file to store newly created seed passphrases. If specified, and ansible-role-sia provisions a node with an unitialized wallet, Ansible will initialize the wallet with a random Sia seed and save the passphrase to this file. If the node already has an initialized wallet, this variable is ignored.

sia_seed_path: null

The 29-word Sia passphrase to use to initialize the node's Sia wallet. If the node already has an initialized wallet, this variable is ignored.

sia_seed: null

The passphrase to decrypt the node's wallet:

sia_wallet_password: "{{ sia_seed }}"

Dependencies

None

Example Playbook

example.yml

- hosts: all
  roles:
    - { role: mtlynch.sia }

Running Example Playbook

To run the example playbook, example.yml (above), run the following commands:

ansible-galaxy install mtlynch.sia
ansible-playbook example.yml

Additional Examples

See this blog post for additional examples.

License

MIT

Author Information

This role was created in 2018 by Michael Lynch.