Introduction
The Ansible Avalanche Collection provides Ansible roles, playbooks and modules to manage Avalanche nodes, Subnets, blockchains and more!
What is Ansible? And why do we use it?
Ansible is an open-source IT automation tool developed by RedHat. It has become the de facto tool used to automate systems configuration, software deployment and zero downtime rolling updates. This makes it the perfect tool to operate large-scale Avalanche node clusters.
The Ash team has years of experience operating large-scale distributed systems with Ansible.
Learn more:
Why an Ansible collection for Avalanche?
Ava Labs provides avalanche-network-runner to easily run a local test network (either locally or in Kubernetes).
This collection takes a different approach and provides tools for production environments. Those can also be used to bootstrap realistic test networks.
It aims at:
- Provisioning Avalanche nodes on Fuji or Mainnet with flawless upgrade capabilities. Ansible also brings easy node configuration persistence and idempotent deployments.
- Bootstrapping local test networks that really mimic production environments
- Automating Subnet and blockchain operations (subnet whitelisting, plugin deployment) for node operators
- And more
Getting started
Follow the tutorials to get started!
Collection resources
Roles
- ash.avalanche.node: install, configure and upgrade Avalanche nodes
- ash.avalanche.subnet: create Avalanche Subnets and blockchains
- ash.avalanche.faucet: create Avalanche Faucet instances
- ash.avalanche.evm.blockscout: create Blockscout instances
- ash.avalanche.ash_cli: install and configure the Ash CLI
Modules
- ash.avalanche.eth_call:
eth_call
a smart contract's function on an EVM Avalanche network - ash.avalanche.ash_cmd: run an Ash CLI command
Filters
- ash.avalanche.convert: convert an amount between AVAX units
- ash.avalanche.XXX_to_XXX: convert a string between encodings
Playbooks
- ash.avalanche.bootstrap_local_network: bootstrap a local test network (
avalanchego_network_id: local
) - ash.avalanche.provision_nodes: provision nodes for Fuji or Mainnet (
avalanchego_network_id: fuji|mainnet
) - ash.avalanche.create_subnet: create a Subnet and its blockchains, and add validators to it (
avalanchego_network_id: local|fuji
) - ash.avalanche.create_blockchains: create a blockchain in an existing Subnet (
avalanchego_network_id: local|fuji
) - ash.avalanche.add_network_validator: starts a validation cycle on the Primary Network (
avalanchego_network_id: local|fuji
) - ash.avalanche.install_blockscout_docker: installs a Blockscout instance over a Subnet EVM blockchain using Docker
- ash.avalanche.install_faucet_docker: installs an Avalache Faucet instance over a Subnet EVM blockchain using Docker
- ash.avalanche.install_monitoring_stack: installs and configures Grafana, Prometheus and Node Exporter to monitor Avalanche nodes