Skip to content

Setting up the environment for GP4L service provisioning

The orchestrated provisioning of L2 circuits in GP4L has been tested in an Ubuntu 22.04 VM with Python 3.10.12.

To run the provisioning you first need to install all of the necessary components following the provided steps.

Step 1. Install Docker and docker-compose

sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo   "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" |   sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose

Step 2. Clone and run Maat

git clone https://bitbucket.software.geant.org/scm/ossbss/maat.git
cd maat/docker
sudo docker-compose up -d

Step 3. Install Containerlab

curl -sL https://containerlab.dev/setup | sudo bash -s "setup-sshd"
curl -sL https://containerlab.dev/setup | sudo bash -s "install-gh-cli"
curl -sL https://containerlab.dev/setup | sudo bash -s "install-containerlab"

Step 4. Clone freeRtr-containerlab

git clone https://github.com/rare-freertr/freeRtr-containerlab.git

Step 5. Install Ansible and necessary collections

sudo apt-add-repository ppa:ansible/ansible
sudo apt install ansible
ansible-galaxy collection install ansible.netcommon

Step 6. Install LSO

  • Create docker compose
version: "3.7"
services:
  lso:
    image: lso:latest
    network_mode: "host"
    environment:
      SETTINGS_FILENAME: /app/config.json
      ANSIBLE_ROLES_PATH: /app/lso/ansible_roles
    volumes:
      - /home/ubuntu/lso/config.json:/app/config.json:ro
      - /home/ubuntu/.ssh/id_rsa.pub:/root/.ssh/id_rsa.pub:ro
      - /home/ubuntu/.ssh/id_rsa:/root/.ssh/id_rsa:ro
      - /home/ubuntu/gp4l_service_provisioning/ansible:/app/ansible:ro

In the above compose, /home/ubuntu/gp4l_service_provisioning/ansible corresponds to the directory inside this repo where the ansible playbooks that will be executed by LSO are located.

  • Run LSO container

sudo docker-compose up -d

Step 7. Install Airflow

sudo apt install python3-pip
pip install "apache-airflow[celery]==2.10.2" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.2/constraints-3.10.txt"

You are now ready to go to the next step, configuration and setup of the environment.