Collection providing Ansible roles, playbooks and modules to manage Avalanche nodes, subnets and blockchains.
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 validators
- And more
- Ansible >= 2.9 (see Installing Ansible)
This collection has been tested to work with the following versions:
- Ubuntu 20.04
- AvalancheGo >= 1.7.0
# With Ansible >= 2.10
ansible-galaxy collection install git+https://github.com/AshAvalanche/ansible-avalanche-collection.git
# With Ansible 2.9
mkdir -p ansible_collections/ash
git clone https://github.com/AshAvalanche/ansible-avalanche-collection.git ansible_collections/ash/avalanche
The repository ansible-avalanche-getting-started provides examples of how to use the collection.
- ash.avalanche.tx: submit a transaction to an Avalanche network
- ash.avalanche.node: install, configure and upgrade Avalanche nodes
- ash.avalanche.subnet: create Avalanche subnets
- ash.avalanche.blockchain: create Avalanche blockchains
- ash.avalanche.bootstrap_local_network: bootstrap a local test network (
--network-id=local
) - ash.avalanche.provision_nodes: provision nodes for Fuji or Mainnet (
--network-id=fuji|mainnet
)
ash.avalanche.node
:- All the nodes on which to install AvalancheGo have to be in the
avalanche_nodes
group. - For local networks, one of the nodes has to be in the
bootstrap_node
group. This node has to be started first to serve as a bootstrap node for the others. For an example of how to do that, see the bootstrap_local_network.yml playbook.
- All the nodes on which to install AvalancheGo have to be in the
ash.avalanche.subnet
:- The node used to make API calls have to be in the
subnet_control_node
group. - The nodes to be added as validators to the subnet have to be in the
subnet_validators
group. The Ansible host has to be able to connect to those nodes via SSH.
- The node used to make API calls have to be in the
ash.avalanche.blockchain
:- The node used to make API calls have to be in the
subnet_control_node
group. - The validators of the subnet have to be in the
subnet_validators
group. The Ansible host has to be able to connect to those nodes via SSH.
- The node used to make API calls have to be in the
- Avalanche transaction module
- Subnet role
- VMs management
- Blockchain role
- TLS support