The FROG4 architecture needs several components to be installed and configured. The following instructions have been tested on Ubuntu 15.10 and 16.04.
The message bus (broker) used in the FROG4 architecture is the DoubleDecker software.
Clone the code and install the broker (together its dependencies):
$ git clone https://github.com/Acreo/DoubleDecker.git
$ cd DobuleDecker
$ sudo apt-get install wget build-essential libtool automake pkg-config libjson0-dev libczmq-dev liburcu-dev libsodium-dev git
$ mkdir -pv m4
$ autoreconf --force --install
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig
To install the generator for the keys to be used on the message bus, execute the following commands:
; install dependencies
$ sudo apt-get update
$ sudo apt-get install python3-setuptools python3-nacl python3-zmq python3-urwid python3-tornado
$ git clone https://github.com/Acreo/DoubleDecker-py.git
$ cd DoubleDecker-py
$ sudo python3 setup.py install
; generate public/private keys
$ cd ..
$ mkdir dd-keys
$ cd dd-keys
$ ddkeys.py
The utility will create the keys used by the broker (broker-keys.json
) and by all FROG4 components (public-keys.json
), i.e., the frog4-orchestrator and all domain orchestrators.
The Datastore can be used by all the FROG4 components to retrieve the VNF templates, images, service descriptions and more. You may want to install a single Datastore used by all the FROG components (i.e., FROG orchestrator and the several domain orchestrators), or you may install a different Datastore for each different component; both the options are supported by the FROG4 framework. You will specify the Datastore instance to be used by each compoent in their own configuration files (instructions will be provided in the specific repositories).
To install one (or more) Datastore instances and execute them, follow the instructions provided in the Datastore repository.
Now you have installed all the additional modules needed to properly run the FROG4 framework. It's time to install the frog4-orchestrator and at least one domain orchestrator. For this, please refer to the specific README_INSTALL in each repository. Before launching each component follow the next sections to tune-up the whole system.
Each orchestrator (i.e., FROG orchestrator, SDN domain orchestrator, OpenStack domain orchestrator, universal node) has its own database that, among other information, contains the users enabled to interact with the orchestrator itself (i.e., their username and password). Then, while deploying the orchestrators that are part of the FROG architecture, please add the same user(s) in each one of the databases. To this purpose, you can follow the instructions provided in each repository.
It is possibile to add a GUI on top of the FROG4-orchestrator and of each domain orchestrator (note that you have to use a differert GUI instance for each component). The GUI can be used to:
- draw a service graph (on load it from an external file) and deploy it through the interaction with the underlying orchestrator
- view and modify service graphs already deployed, through teh interaction with the underlying orchestrator
- upload NF images and templates in the Datastore.
To install one (or more) FROG web GUI, follow the instructions provided in the FROG4 web GUI repository.
Important considerations:
- when setting the configuration file, these lines https://github.com/netgroup-polito/fg-gui/blob/master/config/default-config.ini#L22-L23 and https://github.com/netgroup-polito/fg-gui/blob/master/config/default-config.ini#L28-L29 must be set to point either to the Datastore previously installed, or to a new Datastore;
Follow the instructions provided in the file README_INSTALL.
Important considerations:
- in case you install the FROG4-orchestrator on the same machine where you installed the Broker, you do not have to clone again the DoubleDecker repository. However, you have to apply the patch (as described in the FROG4-orchestrator repository) and install it again;
- in the configuration file, in the
[doubledecker]
section, set thebroker_address
parameter so that it points to the broker previously installed; - in the configuration file, in the
[doubledecker]
section, set thedd_keyfile
parameter so that it points to a local file containing the key to be used on the message bus. Particularly, it must point to the filepublic-keys.json
generated before. Of course, if you are installing the FROG4-orchestrator on a different machine than that running the broker, you have to copy thepublic-keys.json
on the new machine
Follow the instructions provided in the file README_INSTALL.
Important considerations:
- in case you install the OpenStack domain orchestrator on the same machine where you installed the Broker, you do not have to clone again the DoubleDecker repository. However, you have to apply the patch (as described in the OpenStack domain orchestrator repository) and install it again;
- in the configuration file, in the
[doubledecker]
section, set thebroker_address
parameter so that it points to the broker previously installed; - in the configuration file, in the
[doubledecker]
section, set thedd_keyfile
parameter so that it points to a local file containing the key to be used on the message bus. Particularly, it must point to the filepublic-keys.json
generated before. Of course, if you are installing the FROG4-orchestrator on a different machine than that running the broker, you have to copy thepublic-keys.json
on the new machine; - if you do not want to install a Datastore specific for the OpenStack domain, you can skip that section that shows how to deploy a new Datastore;
- the OpenStack domain orchestrator uses the the Datastore to keep the network function templates. Then, in the section
[templates]
of the configuration file, you have to set thedatastore_url
parameter so that it points to the Datastore previously installed.
Follow the instructions provided in the file README_INSTALL.
Important considerations:
- in case you install the SDN domain orchestrator on the same machine where you installed the Broker, you do not have to clone again the DoubleDecker repository. However, you have to apply the patch (as described in the SDN domain orchestrator repository) and install it again;
- in the configuration file, in the
[messaging]
section, you have to set thedd_activate
parameter totrue
, and to set thedd_broker_address
parameter so that it points to the broker previously installed; - in the configuration file, in the
[messaging]
section, set thedd_tenant_key
parameter so that it points to a local file containing the key to be used on the message bus. Particularly, it must point to the filepublic-keys.json
generated before. Of course, if you are installing the FROG4-orchestrator on a different machine than that running the broker, you have to copy thepublic-keys.json
on the new machine; - the SDN domain orchestrator does not use the FROG4 datastore. Information about available NFs are retrieve directly from the underlying SDN controller (i.e., ONOS).
Each domain orchestrator maintains and publishes a description of its resources. The description includes the nodes/interfaces of each domain that may be used to reach other domains, including the supported technologies (e.g, GRE tunnels, VLAN). When a domain orchestrator sends the description on the message bus for the first time, the FROG orchestrator becomes aware of such domain and learns how to contact it. Resources descriptions examples can be found in the config directory of each domain orchestrator repository. Particularly, it is important to set the domain orchestrator IP and port in the management-address field, to choose a domain name in the name field and to describe each interface. These information will be used by the FROG orchestrator to eventually split and deploy over multiple domains an incoming service graph.
In order to start the FROG framework, run the components previously installed in the following order:
-
Launch the message broker:
-
Change the parameters according to your needs.
$ ddbroker -k broker-keys.json -r tcp://0.0.0.0:5555 -s 0/0/0
-
-
Launch the Datastore as described here
-
Launch the FROG orchestrator as described here
-
Launch the domain orchestrator(s) and the associated GUIs, following the appropriate section in the respective README_INSTALL file.