Code Monkey home page Code Monkey logo

ansible-role-tezos-node's Introduction

Role Name

This Ansible Role aims to make deploying a Tezos node fast and easy for Ansible users.

The role is heavily parameterized, allowing users to deploy nodes for different Tezos networks (mainnet/ithacanet/jakartanet/etc..) and various economic protocols to support block transitions.

Two bootstrap strategies are supported, namely syncing from genesis or importing a snapshot for fast bootstrapping.

The role has been tested against Version 13 of the Tezos Node.

This role does not manage any Tezos keys

Requirements

Docker (Tested on Debian Buster)

Installation

ansible-galaxy install ecadlabs.tezos_node

Role Variables

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

The Tezos network you wish to provision. This variable does not have a default, so you must set it. Typically, values are jakartanet or mainnet. The tezos_network value is used for several purposes; naming of docker containers, naming of a docker network, selection of which Tezos network to use, and validating that snapshot imports are from the expected network

tezos_network:

The location where on the host the Tezos nodes data directory will reside. This role uses Docker bind mounts over docker volumes.

node_data_dir: "/srv/tezos/{{ network_name }}_node"

The location on the host where the Tezos client configuration will reside. This directory contains client configuration and keys used by the tezos-client command.

client_data_dir: "/srv/tezos/{{ network_name }}_client"

The tezos docker image to use.

octez_version: v13.0

The history mode you wish to operate your node in. Options are archive, full, or rolling

history_mode: full

Providing a snapshot url controls how your node will bootstrap. Specify a snapshot_url to have the role download and import a snapshot. As there are different snapshots for each history mode, this snapshot must have the same history mode as the node. If the value provided begins with http:// or https://, the role will download a snapshot from that URL. If the provided value is a Unix file path such as /var/tmp/a_tezos_snapshot the role will copy the snapshot from the Ansible host machine to the target.

snapshot_url: https://mainnet.xtz-shots.io/rolling # See https://xtz-shots.io/

The path or URL to the snapshot file that will be used for the initial import of your node. The snapshot will be downloaded to the target host's filesystem and mounted via a volume into a short-lived docker image responsible for the import process.

    snapshot_tmp_file: /tmp/snapshot

Dependencies

None (but make sure you have docker installed, geerlingguy.docker works well)

Example Playbook

For mainnet:

- hosts: servers
  roles:
    - role: ecadlabs.tezos_node
      snapshot_url: https://mainnet.xtz-shots.io/rolling # See https://xtz-shots.io/
      history_mode: rolling
      tezos_network: mainnet
      snapshot_tmp_file: /tmp/snapshot

License

MIT

Author Information

Created by the humans from ECAD Labs Inc. https://ecadlabs.com

ansible-role-tezos-node's People

Contributors

jevonearth avatar bgmurphy avatar danielelisi avatar gimbrailo avatar puppetninja avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.