/avail-da-automation

This repository contains Ansible playbooks for automating the deployment and testing of Avail Data Availability (DA) layer with various technology stacks. These scripts help streamline the process of setting up and evaluating different DA client implementations.

Primary LanguageJinjaMIT LicenseMIT

Avail DA Testing Automation

This repository contains Ansible playbooks for automating the deployment and testing of Avail Data Availability (DA) layer with various technology stacks. These scripts help streamline the process of setting up and evaluating different DA client implementations.

Current Tech Stack Support

  • zkSync: Automated setup and configuration for testing Avail DA with zkSync implementation
  • (More tech stacks to be added)

Prerequisites

  • Ansible 2.9 or higher
  • SSH Pass
  • SSH access to target hosts
  • Python 3.x
  • Target system running Ubuntu 20.04 or higher
  • Avail App ID (Get your App ID here)
  • Avail account with seed phrase (Create account here)

Installing Prerequisites

For Ubuntu/Debian:

# Add Ansible repository
sudo apt-get update
sudo apt-get install software-properties-common
sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt install sshpass
# Install Ansible
sudo apt-get install ansible

# Verify installation
ansible --version

#Install sshpass
sudo apt-get install sshpass

For MacOS:

# Using Homebrew
brew install ansible

# Verify installation
ansible --version

#Install sshpass
brew install sshpass

For other operating systems, please refer to the official Ansible documentation.

Repository Structure

.
├── inventory/         # Host definitions
├── playbooks/        # Ansible playbooks for different tech stacks
└── requirements.yml  # Required Ansible collections and roles

Available Playbooks

zkSync Integration

Location: playbooks/deploy-zksync-availda.yml

This playbook automates:

  • Installation of zkSync dependencies
  • Configuration of Avail DA client
  • Setup of necessary networking components
  • Integration with zkSync environment

During the setup process, you will be prompted for the following information:

  1. Server Configuration

    • Your Ubuntu server IP address (replace your_server_ip in the command)
    • Your sudo password for server access
  2. Network Settings

  3. Wallet Configuration

Usage:

ansible-playbook playbooks/deploy-zksync-availda.yml -i inventory/hosts.yml

Getting Started

  1. Clone this repository:

    git clone https://github.com/christineRPM/avail-da-automation.git
    cd avail-da-automation
  2. Update the inventory file with your target hosts:

    # inventory/hosts.yml
    all:
      hosts:
        your-target-host:
          ansible_host: your-ip-address
          ansible_user: your-ssh-user
  3. Before running the playbook, make sure you have:

    • Created an Avail account and saved your seed phrase
    • Generated your Avail App ID
    • Your server's sudo password ready
  4. Run the zkSync deployment playbook:

    ansible-playbook playbooks/deploy-zksync-availda.yml -i inventory/hosts.yml

Contributing

Feel free to contribute additional tech stack implementations or improvements:

  1. Create a new branch for your implementation
  2. Add your playbook under the playbooks/ directory
  3. Update this README with relevant documentation
  4. Submit a pull request

License

MIT License