SONATA Deployment Documentation

This is the starting page for the deployment and usage documentation of SONATA Project. The page will guide you through the SONATA architecture and present the main building blocks of the SONATA Service Platform. Following it provides installations details and links to the SONATA Github repositories. Finally it provides some usage guidelines for the SONATA service platform.


Project maintained by sonata-nfv Hosted on GitHub Pages —

Installation

General instructions and main steps

The SONATA system consists of the Service Platform for deploying and orchestrating services and the Service Development Kit to create deployable service packages. For running services, the Service Platform uses the capabilities of a VIM (virtual infrastructure manager), specifically OpenStack. In order to use the Service Platform, you therefore need to have access to a running OpenStack installation.

In general, the main steps to install a working SONATA system are as follows:

  1. Install the Service Platform (see 4.2).
  2. Install the Service Development Kit (see 4.3).
  3. Install the Emulator for testing purposes (see 4.4).
  4. Install OpenStack (or get access to an existing installation).
  5. Connect the Service Platform to OpenStack (see 5.5.2).

Afterwards, you are ready to create your own services (or acquire existing ones), and deploy them with your Service Platform. This is described in section 5.

Service Platform installation

Pre-requisites

Hardware:

Software:

Installation options

Default Installation

To install SONATA Service Platform v3.0 you only need to follow the steps described above taking into account that the configuration will be the following:

Custom Installation

For custom installation, a configuration file is available in the folder: group\_vars/sp/vault.yml

This file is encrypted. To open it, the password should be located ~/.ssh/.vault_pass. The default password is sonata.

To edit the encrypted file you can use the following command: ansible-vault edit group_vars/sp/vault.yml. The default configuration file is as follows:

  1. VARs for MONITOR pgSQL database
upassword: sonata
urootpw: 1234
dbname: monitoring
dbuser: monitoringuser
# VARs for GATEKEEPER pgSQL database
gtk_db_name: gatekeeper
gtk_db_user: sonatatest
gtk_db_pass: sonata
# VARs for GATEKEEPER USER MGMT
gtk_keycloak_user: admin
gtk_keycloak_pass: admin
# VARs for IA
ia_repo_user: sonatatest
ia_repo_pass: sonata
#VARs for Monitoring
mon_db_name: monitoring
mon_db_user: monitoringuser
mon_db_pass: sonata

To change the default configuration of installation, the following file can be edited: roles/sp/defaults/main.yml

---
######################
# defaults file for sp
######################
nbofvms: 1
pop: alabs
proj: demo
distro: xenial
plat: sp
########################
# Docker network segment
########################
# Docker network name
docker_network_name: son-sp
#############################################
# SONATA 5G NFV SP specific version variables
#############################################
# SONATA SP Version. This installer was created to deploy version 2.1
sp_ver: 3.0
# SONATA SP Hostname. Default Public IP address
plat_hostname: "Template:Public ip"
# SONATA SP Domain Name. Default Public IP address
domain_name: "Template:Public ip"
# SONATA SP fqdn. Default Public IP address
fqdn: "Template:Public ip"
# SONATA SP User created by son-install
sp_user: sonata
sp_pass: "$1$SRc2ws2Z$rSdCC/UKiatagNdfsTVuf0"

Installation instructions

sudo apt-get install -y software-properties-common
sudo apt-add-repository -y ppa:ansible/ansible
sudo apt-get update
sudo apt-get install -y ansible
sudo apt-get install -y git
git clone https://github.com/sonata-nfv/son-install.git
cd son-install
echo sonata | tee ~/.ssh/.vault_pass
ansible-playbook utils/deploy/sp.yml -e "target=localhost public_ip=<your_ip4_address>" -v

Installation Videos

[https://asciinema.org/a/44MwPYliuOxxYBFkkm7M8eqM4 Sonata SP v3.0 installation video]

SDK

The goal of the SONATA SDK is to assist the developer in designing services and/or functions. The SDK is mainly composed by a set of CLI tools, each with a specific purpose following the development workflow.

Pre-requisites

The CLI tools have the following pre-requisites:

Installation options

son-cli can be installed via the OS package distribution system or using setuptools. We currently provide repositories for Ubuntu Trusty (14.04), Ubuntu Xenial (16.04) and CentOS 7. For the remaining OS’s please use python’s setuptools.

Installation instructions

Depending on the Linux distribution (Ubuntu or CentOS) you are using, the following commands install and configure the service development kit.

Ubuntu Trusty (14.04) and Xenial (16.04)

  1. Add the GPG key
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8EC0731023C1F15B
  1. Add a source entry for the repository

    2.1. Ubuntu Trusty (14.04)

    echo "deb http://repo.sonata-nfv.eu ubuntu-trusty main" | sudo tee -a /etc/apt/sources.list
    

    2.2. Ubuntu Xenial (16.04)

    echo "deb http://repo.sonata-nfv.eu ubuntu-xenial main" | sudo tee -a /etc/apt/sources.list
    
  2. Update and install

sudo apt-get update
sudo apt-get install sonata-cli

CentOS 7

 yum install epel-release
 [sonata-repo]
 name=SONATA Repository
 baseurl=http://rpmrepo.sonata-nfv.eu/repo/
 enabled=1
 gpgcheck=0
 yum install sonata-cli

Installation Videos

Emulator

SONATA’s emulation platform was created to support network service developers to locally prototype and test complete network service chains in realistic end-to-end multi-PoP scenarios. It allows the execution of real network functions, packaged as Docker containers, in emulated network topologies running locally on the network service developer’s machine. The emulation platform is based on Containernet.

Pre-requisites

The emulator requires a Ubuntu 16.04 LTS installation on a bare motel machine or a VM. The following packages need to be installed:

Installation options

There are two ways to install and use son-emu. The simple one is to use Vagrant to create a VirtualBox-based VM on your machine that contains the pre-installed and configured emulator. The more complicated, but more flexible, installation is done using an Ansible playbook executed on a Ubuntu 16.04 LTS machine or VM as described in the following section.

Installation instructions

sudo apt-get install ansible git aptitude
cd
git clone https://github.com/containernet/containernet.git
cd ~/containernet/ansible
sudo ansible-playbook -i "localhost," -c local install.yml
cd
git clone https://github.com/sonata-nfv/son-emu.git
cd ~/son-emu/ansible
sudo ansible-playbook -i "localhost," -c local install.yml

More details about installation alternatives can be found in the son-emu GitHub wiki.

Installation Videos