You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Anton Kaliaev c94c1ff89a
[ansible-tendermint] add missing handler to readme
8 years ago
..
defaults [ansible-tendermint] tendermint_validators variable (Refs #23) 8 years ago
handlers [ansible-tendermint] systemd template 8 years ago
img [ansible-tendermint] add TOC 8 years ago
tasks [ansible-tendermint] systemd template 8 years ago
templates [ansible-tendermint] tendermint_validators variable (Refs #23) 8 years ago
vars mintnet-ansible 8 years ago
.gitignore mintnet-ansible 8 years ago
LICENSE mintnet-ansible 8 years ago
README.md [ansible-tendermint] add missing handler to readme 8 years ago
Vagrantfile mintnet-ansible 8 years ago
ansible.cfg mintnet-ansible 8 years ago
collect_public_keys.yml [ansible-tendermint] rename playbook for clarity 8 years ago
test.yml [ansible-tendermint] tendermint_validators variable (Refs #23) 8 years ago

README.md

Ansible role for Tendermint

Ansible plus Tendermint

ansible-tendermint is an ansible role which:

  • installs tendermint
  • configures tendermint
  • configures tendermint service

Requirements

This role requires Ansible 2.0 or higher.

Variables

Here is a list of all the default variables for this role, which are also available in defaults/main.yml.

tendermint_version: 0.9.0
tendermint_archive: "tendermint_{{tendermint_version}}_linux_amd64.zip"
tendermint_download: "https://s3-us-west-2.amazonaws.com/tendermint/{{tendermint_version}}/{{tendermint_archive}}"
tendermint_download_folder: /tmp

tendermint_user: tendermint
tendermint_group: tendermint

# Upstart start/stop conditions can vary by distribution and environment
tendermint_upstart_start_on: start on runlevel [345]
tendermint_upstart_stop_on: stop on runlevel [!345]
tendermint_manage_service: true
tendermint_use_upstart: true
tendermint_use_systemd: false
tendermint_upstart_template: "tendermint.conf.j2"
tendermint_systemd_template: "tendermint.systemd.j2"

tendermint_home: /opt/tendermint
tendermint_node_port: 46656
tendermint_rpc_port: 46657
tendermint_proxy_app: "tcp://127.0.0.1:46658"
tendermint_node_laddr: "tcp://0.0.0.0:{{tendermint_node_port}}"
tendermint_rpc_laddr: "tcp://0.0.0.0:{{tendermint_rpc_port}}"
tendermint_seeds: ""
tendermint_fast_sync: true
tendermint_db_backend: leveldb
tendermint_log_level: notice
tendermint_genesis_file: "{{tendermint_home}}/genesis.json"
tendermint_abci: socket
tendermint_skip_upnp: false
tendermint_addrbook_file: "{{tendermint_home}}/addrbook.json"
tendermint_addrbook_strict: true
tendermint_pex_reactor: false
tendermint_priv_validator_file: "{{tendermint_home}}/priv_validator.json"
tendermint_db_dir: "{{tendermint_home}}/data"
tendermint_grpc_laddr: ""
tendermint_prof_laddr: ""
tendermint_cs_wal_file: "{{tendermint_db_dir}}/cs.wal/wal"
tendermint_cs_wal_light: false
tendermint_filter_peers: false
tendermint_block_size: 10000
tendermint_block_part_size: 65536
tendermint_disable_data_hash: false
# all timeouts are in milliseconds
tendermint_timeout_propose: 3000
tendermint_timeout_propose_delta: 500
tendermint_timeout_prevote: 1000
tendermint_timeout_prevote_delta: 500
tendermint_timeout_precommit: 1000
tendermint_timeout_precommit_delta: 500
tendermint_timeout_commit: 1000
tendermint_skip_timeout_commit: false
tendermint_mempool_recheck: true
tendermint_mempool_recheck_empty: true
tendermint_mempool_broadcast: true
tendermint_mempool_wal_dir: "{{tendermint_db_dir}}/mempool.wal"

tendermint_log_file: /var/log/tendermint.log

tendermint_chain_id: mychain
tendermint_genesis_time: "{{ansible_date_time.iso8601_micro}}"
tendermint_validators: []

Handlers

These are the handlers that are defined in handlers/main.yml.

  • restart tendermint
  • reload systemd

Example playbook that configures a Tendermint on Ubuntu

---

- hosts: all
  vars:
    tendermint_chain_id: MyAwesomeChain
    tendermint_seeds: "172.13.0.1:46656,172.13.0.2:46656,172.13.0.3:46656"
  roles:
    - ansible-tendermint

This playbook will install Tendermint and will create all the required directories. But it won't start the Tendermint if no validators were given.

You will need to collect validators public keys manually or using collect_public_keys.yml given you have SSH access to all the nodes and set tendermint_validators variable:

---

- hosts: all
  vars:
    tendermint_chain_id: MyAwesomeChain
    tendermint_seeds: "172.13.0.1:46656,172.13.0.2:46656,172.13.0.3:46656"
    tendermint_validators:
      - pub_key:
          - 1
          - 1F017E488A6327FAFBBE092193B427912E117733DE6AF72150BF09AA58411E7F
        amount: 10
        name: paris
  roles:
    - ansible-tendermint

Example playbook that configures a Tendermint with in-proc dummy app

---

- hosts: all
  vars:
    tendermint_chain_id: MyAwesomeChain
    tendermint_proxy_app: dummy
  roles:
    - ansible-tendermint

Testing

vagrant up