Bootstrap
Project containing all the required tools for instantiating openbaton
Install / Use
/learn @openbaton/BootstrapREADME
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:
- Docker (>=18.03)
- Docker Compose (>=1.20)
- A checkout of this repository
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
node-connect
349.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
Security Score
Audited on Mar 23, 2020
