hyphacoop / cosmos-ansible

Ansible scripts for spinning up Cosmos network configurations
Apache License 2.0
48 stars 15 forks source link

Ansible Cosmos Network Creator

Lint Join RS Testnet

✨ An Ansible toolkit for Cosmos networks πŸ’«

Use this toolkit to:

Waterdrops feeding seedlings

🌰 Requirements

🌱 Quick Start

To join the Cosmos Hub release testnet:

  1. Clone this repository
  2. Run ansible-galaxy install -r requirements.yml to install dependencies
  3. Set up SSH access to the target machine
  4. Run the playbook
    ansible-playbook node.yml -i examples/inventory-release-testnet.yml -e 'target=SERVER_IP_OR_DOMAIN'
  5. Log into the target machine to follow the syncing process
    journalctl -fu cosmovisor

Watch the video below to see the playbook in action:

Join the Cosmos Hub Public Testnet

🌳 Explore Further

Playbook Tags

Use node_control.py to run only part of the node playbook:

./node_control.py [-i inventory] [-t target] operation

The inventory argument is optional and defaults to inventory.yml (e.g. ./node_control.py restart).

The target option is the server IP or domain.

The operation will apply to all the nodes in the inventory:

Role Folder Structure

🌴 Automatic Tests

This repository runs different tests automatically as defined below.

Fresh State (weekly)

The fresh state test is run using GitHub Actions and results are displayed with a badge at the top of this readme.

Mainnet exported genesis (bi-weekly)

We export a genesis file from cosmoshub-4 and modify it using our tinkerer script. The exported and modified genesis files can be accessed here.

We run the stateful tests with the modified genesis file when there is a major version of Gaia that is higher than the major version running on cosmoshub-4.

Joining the Public Testnet (weekly)

We test joining the Cosmos Hub public testnet weekly using GitHub Actions and a badge is displayed at the top of this readme.

πŸ”Ž Code Standards