This repository contains Ansible playbooks for setting up and managing an Akash Provider node.
- GPU Support: Installation of NVIDIA GPU drivers and runtime components.
- Networking: Deployment of Tailscale via custom Ansible playbooks.
- Provider: Deployment of Akash Provider.
- OS: Sets up sysctl and cron jobs in the nodes.
- rook-ceph Sets up persistent storage based on rook-ceph. See additional details in roles/rook-ceph/README.md
- Ansible 2.9+
- Python 3.6+
- SSH access to target nodes
- Root or sudo access on target nodes
- Ubuntu 24.04 LTS
Before running the setup script, prepare the following information:
-
Provider Details
- Provider domain name (e.g., provider.example.com)
- Provider region (e.g., us-west)
- Organization name
- Contact email
- Organization website
-
Node Information
- Number of nodes in your cluster
- IP addresses for each node
- SSH credentials for each node
-
Storage Configuration (if using Rook-Ceph)
- Storage device names (e.g., /dev/sdb, /dev/nvme0n1)
- Number of OSDs per device
- Storage device type (HDD/SSD/NVMe)
- Storage node selection
-
Wallet Options
- Choose one of:
- Create a new wallet (recommended for new providers)
- Import an existing wallet key file
- Import an existing wallet using mnemonic phrase
- Paste existing AKT address and encrypted key (for existing providers)
- Note: The key and key secret must be already base64 encoded and encrypted
- Choose one of:
- SSH into your first node (node1) of the cluster:
ssh user@node1-ip-address
- Clone this repository on node1:
git clone https://github.com/akash-network/provider-playbooks.git
cd provider-playbooks
- Run the setup script:
./scripts/setup_provider.sh
- Follow the interactive prompts to configure your provider.
The setup script will guide you through selecting which playbooks to run:
- Kubernetes Installation (required for new clusters)
- Kubespray: Production-grade, full-featured Kubernetes installation
- K3s: Lightweight, single binary Kubernetes distribution (ideal for edge/IoT)
- OS: Basic OS configuration and optimizations
- GPU: NVIDIA driver and container toolkit installation
- Provider: Akash Provider service installation
- Tailscale: VPN setup for secure remote access
- Rook-Ceph: Storage operator installation and configuration
If you need to run playbooks manually:
# Run all playbooks
ansible-playbook -i inventory/hosts.yaml playbooks.yml
# Run specific playbooks using tags
ansible-playbook -i inventory/hosts.yaml playbooks.yml -t os,provider,gpu
# Run K3s specific playbooks
ansible-playbook -i inventory/hosts.yaml playbooks.yml -t k3s
Common issues and solutions:
-
SSH Connection Issues
- Ensure SSH keys are properly set up
- Verify network connectivity
- Check firewall settings
-
Kubernetes Installation
- Check system requirements
- Verify network configuration
- Review kubespray logs (for Kubespray)
- Check K3s service status (for K3s)
-
Provider Service
- Check wallet configuration
- Verify network connectivity
- Review provider logs
-
Storage Issues
- Verify storage devices are clean and available
- Check storage node resources
- Review Ceph operator logs
- Ensure proper network connectivity between storage nodes
For support, please:
- Check the Akash Documentation
- Join the Akash Discord
- Open an issue in this repository