wiki:Tutorials/Cloud/OSM

Version 61 (modified by msherman, 5 years ago) ( diff )

Open Source MANO (OSM) Tutorial

Overview

A full deployment consists of 3 components:

  • OSM as the NFV Orchestrator
  • Openstack, OpenVIM, Open Nebula, or similar 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 Devstack configuration combines the VIM node and the compute node on one machine. OSM communicates with the Openstack identity service to discover the rest of the configuration.

This tutorial implements the getting started from: here, 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.

Prerequisites:

  1. SSH keys set up for the testbed
  2. Ability to set up ssh tunneling to access the web interface pages
  3. A reservation for a domain with at least two compute resources
  4. For convenience, 3 terminal windows.

OSM Node Set Up

  1. Log into the console with your first terminal
  2. Load the tutorial-osm.ndz onto the first node, and resize to ≥ 60gb:
    • Example: omf load -t srv1-lg1.sb1.cosmos-lab.org -i tutorial-osm.ndz -r 60
    • Wait for imaging process to complete. Work on the other terminals in the meantime
    • You should see: INFO exp: 1 node successfully imaged ...
  3. Turn the node on: omf tell -a on -t srv1-lg1.sb1.cosmos-lab.org
  4. Wait for the node to come up, (up to ~3 minutes)
    • You can ping the node, it will respond once booted

VIM Node Set up:

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

  1. Log into the console with your second terminal
  2. Load the tutorial-devstack.ndz onto the second node, and resize to ≥ 60gb:
    • Example: omf load -t srv2-lg1.sb1.cosmos-lab.org -i tutorial-devstack.ndz -r 60
    • Wait for imaging process to complete. Work on the other terminals in the meantime
    • You should see: INFO exp: 1 node successfully imaged ...
  3. Turn the node on: omf tell -a on -t srv2-lg1.sb1.cosmos-lab.org
  4. Wait for the node to come up (up to ~3 minutes)
    1. You can ping the node, it will respond once booted
  5. SSH into the node ssh native@srv2-lg1.sb1.cosmos-lab.org
  6. Change to the Devstack directory: cd ~/devstack
  7. Run the installation script: ./stack.sh

Note, we use username: native, password: native , because Openstack needs a non-root user.

Commands will run for a while (about 10 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           16 
test_with_retry        2 
apt-get-update         5 
osc                  115 
wait_for_service      10 
git_timed            107 
dbsync                65 
pip_install          201 
apt-get              166 
-------------------------
Unaccounted time     345 
=========================
Total runtime        1032


This is your host IP address: 10.19.1.2
This is your host IPv6 address: ::1
Horizon is now available at http://10.19.1.2/dashboard
Keystone is serving at http://10.19.1.2/identity/
The default users are: admin and demo
The password: native

You will need the Host IP address, Horizon and Keystone URLs, and user and password in the following steps.

Connecting to the Web Interfaces

Use your third terminal, or whatever ssh program you are using, to forward a different local port to port 80 on each of the OSM and VIM machines.

For more information, follow This Guide

For example, using a linux shell, and forwarding: 9901 → srv1-lg1:80 , 9902 → srv2-lg1:80

ssh testbeduser@sb1.cosmos-lab.org -N \
-L 9980:srv1-lg1:80 \
-L 9981:srv2-lg1:80

The OSM Web UI will likely be ready much sooner than the Openstack UI, due to the time taken for installation.

  • OSM Web UI
    • Credentials are: admin / admin
    • Use your browser to navigate to the first forwarded port, here localhost:9980
  • If the webui doesn't come up:
    1. SSH to the node with the ssh credentials: native / native
    2. Check to see that all containers are running docker stack ps osm
    3. Try re-installing OSM by running ./install_osm.sh
  • Openstack Web UI
    • Credentials are: admin / native, unless different in the stack.sh output.
    • Use your browser to navigate to the second forwarded port, here localhost:9981
    • The web UI won't be ready until stack.sh completes successfully
  • The following steps are executed in the respective web interfaces

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 native
    • tenant admin
    • name openstack-site
    • Type: openstack
  5. Click create

Adding a disk image to openstack

  1. download the attachment cirros-0.3.4-x86_64-disk.img​ from this page, by clicking attachments, then clicking the small download icon.
  2. in a new window, go to the openstack webui
  3. click images
  4. click create image, and use the following properties (important)
    • name: cirros034
    • image source: browse for the file you downloaded from the wiki
    • format: qcow2
  5. click create image

Creating a VNF

  1. Go back to the OSM webui
  2. 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
  3. NS package onboarding
    1. go to packages → ns packages
    2. download the attachment cirros_2vnf_ns.tar.gz
    3. drag it to the window
  4. Instantiate the NF
    1. click the launch icon and enter information
      • name
      • description
      • nsd_id: cirros_2vnf_ns
      • vim account id: openstack-site

Interacting with the VNF

  1. In the Openstack UI:
  2. Select the project "admin" from the dropdown in the top left
  3. Click instances:
    1. you should now see a pair of cirros instances running.
    2. open a console on one, and try pinging the other

Changelog

08/20/2020 Updated to OSM release EIGHT, Openstack release Train

10/21/2019 Updated to OSM release SIX

Note: See TracWiki for help on using the wiki.