Open Source MANO (OSM)

A full deployment consists of 3 components:

  • OSM as the NFV Orchestrator
  • OpenVIM or Openstack as the virtual infrastructure manager (VIM)
  • some number of compute nodes, where the VIM will run VMs under OSM's instruction

We will use the following components:

  • OSM on ubuntu 18.04
  • Devstack on ubuntu 18.04, in a single node configuration (this can easily be extended following devstack guides)

This tutorial implements the getting started from:

and adds support for ORBIT hardware, with the image based on Ubuntu 18.04.

To save time, run the OSM and VIM steps in separate ssh terminals, as they can be done at the same time.

OSM Node

  1. Create a reservation
  2. Log into the console
  3. Load image: omf load -t -i opensourcemano_1804.ndz -r 60
  4. Turn the node on: omf tell -a on -t

ssh Credentials: native / native

Web Credentials admin / admin

From Scratch


  • 40Gb disk space
  • user:
    • non-root user,
    • with non-empty password
    • member of sudo, docker, lxd groups
  • Packages:
    • net-tools
  • ipv6 disabled
  1. Prepare the node
    1. Load the image: omf load -t -i baseline_1804.ndz -r 60
    2. Turn the node on: omf tell -a on -t
    3. Log in as root: ssh
    4. set up non-root user echo native:native | chpasswd
    5. Add user to groups: sudo groupadd lxd && sudo groupadd docker && sudo usermod -a -G lxd,docker native
    6. logout: exit
    7. Log in as the user "native": ssh
  2. Set up OSM
    1. Install "net-tools" sudo apt install net-tools
    2. Download script: wget
    3. Make it executable: chmod +x
    4. Run it: ./ 2>&1 | tee osm_install_log.txt
    5. enter "y"
      1. if it crashes, run lxd init
    6. choose all defaults, except none for ipv6
    7. if failed, rerun
  3. Connect browser
    1. Via ssh tunnel
    2. via VPN TODO
    3. navigate browser to node control ip, enter admin/admin as credentials

Run these commands to clean up the old configuration:

docker stack rm osm && sleep 60 # The sleep is for making sure the stack removal finishes before redeploying docker stack deploy -c /etc/osm/docker/docker-compose.yaml osm

Save image

VIM Node

OSM must have a Virtual Infrastructure Manager (VIM) to control. We will use openstack on single node devstack for this tutorial, following:

Pre-Set up:
  1. omf load -t -i devstack_1804.ndz -r 60
  2. omf tell -a on -t
  3. ssh
  4. su stack
  5. cd ~/devstack
  6. ./

Commands will run for a while (minutes). If successful, it will output the credentials and address to login via the webui, and will look like the following:

DevStack Component Timing
 (times are in seconds)
run_process           25
test_with_retry        2
apt-get-update         2
osc                  140
wait_for_service      11
dbsync                24
pip_install          100
apt-get               15
Unaccounted time     336
Total runtime        655

This is your host IP address:
This is your host IPv6 address: ::1
Horizon is now available at
Keystone is serving at
The default users are: admin and demo
The password: nomoresecret

You will need the ip address, keystone url, user and password in the following step.

From Scratch


If you don’t specify any configuration you will get the following:

neutron (including l3 with openvswitch)

private project networks for each openstack project

a floating ip range of with the gateway of

the demo project configured with fixed ips on a subnet allocated from the range

a br-ex interface controlled by neutron for all its networking (this is not connected to any physical interfaces).

DNS resolution for guests based on the resolv.conf for your host

an ip masq rule that allows created guests to route out

PUBLIC_INTERFACE=eth1 (this connects to the br-ex bridge)

  • Change IP without running
  • Run
  • In keystone database "update endpoint set url = REPLACE(url, '[old IP address]', '[new IP address]')";
  • Update all Ips in /etc folder "grep -rl '[old IP address]' /etc | xargs sed -i 's/[old IP address]/[new IP address]/g'"
  • Update all Ips in /opt/stack folder "grep -rl '[old IP address]' /opt/stack | xargs sed -i 's/[old IP address]/[new IP address]/g'"
  • Restart apache2 server
  • Run
  • Restart Keystone "keystone-all"

Accessing the WebUI

Both nodes are listening on port 80. Redirect two ports over ssh, following This Guide

For example, forward 9901 → srv1-lg1:80 , 9902 → srv2-lg1:80

Connecting OSM to the VIM

  1. Log into the OSM with admin/admin
  2. Click "VIM accounts" on the left bar
  3. Delete existing accounts with the trash can icon
  4. Add the new account for your openstack with the following information:
    • URL http://$DEVSTACK_IP/identity/v3/
    • User admin
    • password nomoresecret
    • tenant admin
    • name openstack-site
    • Type: openstack
  5. Click create

Adding a disk image to openstack

  1. download the attachment cirros034 from this page
  2. in a new window, go to the openstack webui
  3. click images
  4. click create image
    • name: cirros034
    • image source: browse for the file you downloaded
    • format: qcow2
  5. click create image

Creating a VNF

  1. VNF package onboarding
    1. go to packages → vnf packages
    2. download the attachment cirros_vnf.tar.gz
    3. drag the downloaded file to the window
  2. NS package onboarding
    1. go to packages → ns packages
    2. download the attachment cirros_2vnf_ns.tar.gz
    3. drag it to the window
  3. Instantiate the NF
    1. click the launch icon and enter information
      • name
      • description
      • nsd_id: cirros_2vnf_ns
      • vim account id: openstack-site
  • use openstack ui to load console and ping
Last modified 2 months ago Last modified on Jun 4, 2020, 5:29:39 PM

Attachments (3)

Note: See TracWiki for help on using the wiki.