SkillAgentSearch skills...

Bootstrap

Project containing all the required tools for instantiating openbaton

Install / Use

/learn @openbaton/Bootstrap
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<img src="https://raw.githubusercontent.com/openbaton/openbaton.github.io/master/images/openBaton.png" width="250"/>

Copyright © 2015-2016 Open Baton. Licensed under Apache v2 License.

Open Baton Bootstrap

This repository contains a number of deployment templates and instructions how to install Open Baton in containers.

The Quick Start provides the easiest and fastest way to bring up a working Open Baton framework without caring about any configuration. In addition, there are some other templates provided for different scenarios (check Available Scenarios) allowing a better way of configuration and versioning

How versioning is managed, you can check here.

System Requirements

You will need:

Quick Start

In one command you can start Open Baton by using docker-compose and the docker-compose.yml in this repository.

It downloads the docker-compose.yml in the current folder via curl and executes docker-compose up. All configurations are contained in this compose file. Only the HOST_IP must be set to the actual IP of your host machine so that the virtual machines' Generic EMS can connect to the Generic VNFM via RabbitMQ. Below the command to use:

curl -o docker-compose.yml https://raw.githubusercontent.com/openbaton/bootstrap/master/docker-compose.yml | env HOST_IP=$YOUR_LOCAL_IP docker-compose up -d

This basic deployment setup is there for a quick start and contains the following components:

  • NFVO
  • Generic VNFM
  • Openstack4j driver
  • Docker VNFM
  • Docker driver
  • RabbitMQ
  • MySQL

These components are enough to make deployments in OpenStack and Docker.

Alternatively, you can also clone this repository via git and making use directly the docker-compose.yml by issuing up command. It is important to define the environment variable HOST_IP to the reachable IP of your workstation so that all components (including VNFs/EMS) the central message bus.

$ env HOST_IP=$YOUR_LOCAL_IP docker-compose up -d

You can use a simple curl loop to check if the orchestrator is up and running:

$ until curl -sSf --stderr /dev/null http://localhost:8080; do printf '.' && sleep 5;done

Alternatively, you can also check the logs of the orchestrator:

$ docker-compose logs -f nfvo

Once Open Baton has started, you can reach the NFVO's dashboard with your webbrowser at http://localhost:8080

Versioning

Versioning is provided via GitHub branches and tags within this repository.

  • master contains always the latest version of all components. Those images are automatically generated and pushed to Docker Hub every time a new commit is done.
  • tags the name of the tag indicates the corresponding release version of Open Baton. A list of available versions can be found [here][bootstrap-tags].

Note: A change between versions, so branches and tags, can be done with the following comment:

$ git checkout <branch/tag>

Available components

Most of the Open Baton components are available as Docker images and can easily be started, either via docker-compose making use of deployment templates (check Available Scenarios) or separately via docker directly (check Plug-and-Play). A set of utils are provided as well which are used by OpenBaton for communication, persistency or monitoring.

Open Baton components in a nutshell:

  • [NFVO][github-nfvo]: NFV Orchestrator, main component of Open Baton (requires RabbitMQ as the central communication system)
  • [Generic VNFM][github-vnfm-generic]: enabling generic lifecycle management of VNFs in combination with the Generic EMS
  • [OpenStack4j driver][github-driver-openstack4j]: used to manage virtual resources via OpenStack
  • [Docker VNFM][github-vnfm-docker]: enabling container deployments via Docker (works together with the Docker driver)
  • [Docker driver][github-driver-docker] used to manage virtual resources via Docker
  • [Dummy VNFM][github-vnfm-dummy]: enabling simple deployments without any lifecycle management
  • [Test driver] [github-driver-test]: used to fake deployments of virtual resources so can be used for testing NFVO and VNF Manager workflows
  • [Autoscaling Engine][github-ase]: provides autoscaling capabilities as an external component (requires monitoring system and plugin)
  • [Network Slicing Engine][github-nse]: provides network slicing cababiltites as an external component
  • [Zabbix plugin][github-zabbix-plugin]: monitoring plugin to retrieve measurements from Zabbix monitoring system

Utils:

  • [RabbitMQ][web-rabbitmq]: is the central communication system where all components are connected to
  • [MySQL][web-mysql]: standard database solution to provide persistency
  • [Zabbix][web-zabbix]: Monitoring system that is intergrated with the Generic VNFM

Available scenarios

Below you can find a number of different scenarios. default is the scenario used also in the Quick Start that is self-container and doesn't make use of any external configuration and/or environment files. The rest of the scenarios make use of external files such as versioning or passing environment files for better configuration (check here). Moreover, dependencies between services themself are always defined in the docker-compose file itself.

The name of the scenario indicates the main functionality provided and identifies also the docker-compose file that provides all services required for that.

Basic usage:

$ docker-compose -f <DOCKER_COMPOSE_FILE> up -d

Note This provides also some examples how to configure different environments. Adding or removing services can easily be achives (e.g. using an external MySQL or RabbitMQ installation). Moreover, any setup can be extended by plugging-in other components (check Plug-and-Play).

Note 'HOST_IP' should always be set/provided in the environment variables' file (in env/openbaton.env). Especially the Generic VNFM won't work without it.

default (docker-compose.yml):

Provides a self-contained template providing an Open Baton setup to make deployments in OpenStack and Docker. Check Quick Start to see purpose and basic usage.

Contains the following components:

  • NFVO
  • RabbitMQ
  • MySQL
  • Generic VNFM
  • OpenStack4j driver
  • Docker VNFM
  • Docker driver

Minimal setup (docker-compose-minimal.yml)

Provides a minimal setup containing the NFVO, communication sytem and persistency.

Contains the following components:

  • NFVO
  • RabbitMQ
  • MySQL

OpenStack Deployments (docker-compose-openstack.yml)

Provides a setup that allows deployments and lifecycle management of VNFs by allocating virtual resources (e.g. Virtual Machines) in OpenStack.

Contains the following components:

  • NFVO
  • RabbitMQ
  • MySQL
  • Generic VNFM
  • OpenStack4j driver

Docker Deployments (docker-compose-docker.yml)

Provides a setup that allows deployments of VNFs by allocating virtual resources (e.g. Containers) in via Docker.

Contains the following components:

  • NFVO
  • RabbitMQ
  • MySQL
  • Docker VNFM
  • Docker driver

Dummy Deployments (docker-compose-dummy.yml)

Provides a setup that allows deployments of VNFs without allocating virtual resources. Can be used for testing.

Contains the following components:

  • NFVO
  • RabbitMQ
  • MySQL
  • Dummy VNFM
  • Test driver

Auto Scaling (docker-compose-ase.yml)

Provides a setup that allows deployments and lifecycle management of VNFs by allocating virtual resources (e.g. Virtual Machines) in OpenStack. In addition, it provides also autoscaling capabilties by making use of Zabbix as the monitoring system.

Contains the following components:

  • NFVO
  • RabbitMQ
  • MySQL
  • Generic VNFM
  • OpenStack4j driver
  • Zabbix monitoring plugin
  • Zabbix (required additional configuration via the Zabbix dashboard, check [here][zabbix-config])
  • Autoscaling engine

Network Slicing (docker-compose-nse.yml)

Provides a setup that allows deployments and lifecycle management of VNFs by allocating virtual resources (e.g. Virtual Machines) in OpenStack. In addition, it provides network slicing capabilites.

Contains the following components:

  • NFVO
  • RabbitMQ
  • MySQL
  • Generic VNFM
  • OpenStack4j driver
  • Network Slicing Engine

full (docker-compose-full.yml)

Provides a setup that contains all the components of all the scenarios above.

Contains the following components:

  • NFVO
  • RabbitMQ
  • MySQL
  • Generic VNFM
  • OpenStack4j driver
  • Docker VNFM
  • Docker driver
  • Dummy VNFM
  • Test driver
  • Zabbix monitoring plugin
  • Zabbix (requires additional configuration via the Zabbix dashboard, check [here][zabbix-config])
  • Autoscaling engine
  • Network Slicing Engine

Configuration files

The following configuration files are used by the corresponding scenarios if those components are used.

Note The default scenario doesn't use any external configuration/environment file (everything is contained in the docker-compose file itself in this case).

Versioning - ./.env

The file ./.env contains the versioning for all components. Versions are preset within this file and managed via branches and tags. Nevertheless, you may change manually to set the version of the Docker images to use.

The Open Baton components are set always to latest in the master branch and to the correspond

Related Skills

View on GitHub
GitHub Stars7
CategoryDevelopment
Updated6y ago
Forks14

Security Score

55/100

Audited on Mar 23, 2020

No findings