How to run OSM on Vagrant

From OSM Public Wiki
Jump to: navigation, search

Basic instructions

Pre-built OSM vagrant images are available here: https://app.vagrantup.com/osm

The pre-built image requires 4GB of memory and 2 VCPUs.

1) Install vagrant (https://www.vagrantup.com) and virtualbox (https://www.virtualbox.org/)

2) Create the initial Vagrantfile in a predefined directory of your choice:

 vagrant init osm/releasefive
  • Note: to ensure the latest version is downloaded, destroy any previous existing OSM boxes (vagrant box list / vagrant box remove)

3) Edit the generated Vagrantfile if you need to customize, for example, opened ports and assigned memory:

  • If you would like to access the OSM Web client externally from the virtualbox VM, you can open up port 80 (mapped to 8080 at your host) by uncommenting this line:
 # config.vm.network "forwarded_port", guest: 80, host: 8080

4) Start OSM:

 vagrant up
  • Note: warnings related to "Vagrant unable to mount VirtualBox shared folders" can be safely ignored.

5) ssh to OSM:

 vagrant ssh

You are ready to use OSM !

Additional notes

  • If at any time you need to change something from the Vagrantfile, you can apply the changes by reloading the VM:
vagrant reload
  • If you need to copy a file to your vagrant machine, just run 'vagrant ssh-config' and copy the private key path, then:
scp -P 2222 -i /path/to/private_key someFileName.txt vagrant@127.0.0.1:
  • To use a manually downloaded image, add the box to Vagrant and create a matching Vagrantfile:
 vagrant box add osm/releasefive /path/to/vagrant.box
 vagrant init osm/releasefive
  • If at any point you need to add the optional components (elk_stack, pm_stack...) you can do so by downloading the installer from inside your VM and executing it with the -o option, for example:
wget https://osm-download.etsi.org/ftp/osm-5.0-five/install_osm.sh
chmod +x install_osm.sh
./install_osm.sh -o pm_stack
  • Please note that you may need to add more forwarded ports, for example, to access Grafana after adding the pm_stack, you would need to add a line like this one to your Vagrantfile, then run 'vagrant reload':
config.vm.network "forwarded_port", guest: 3000, host: 3000

Vagrant + VIM Emulator Quickstart

vagrant init osm/releasefive
vagrant up
vagrant ssh
# startup VIM-EMU
# new version of installer will have the vim-emu start by default
sudo docker run --name vim-emu -t -d --restart always --privileged --pid='host' --network=netOSM -v /var/run/docker.sock:/var/run/docker.sock vim-emu-img python examples/osm_default_daemon_topology_2_pop.py
export OSM_HOSTNAME=127.0.0.1
export OSM_SOL005=True
export VIMEMU_HOSTNAME=$(sudo docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' vim-emu)
osm vim-create --name emu-vim1 --user username --password password --auth_url http://$VIMEMU_HOSTNAME:6001/v2.0 --tenant tenantName --account_type openstack
git clone https://osm.etsi.org/gerrit/osm/vim-emu.git
osm vnfd-create vim-emu/examples/vnfs/ping.tar.gz
osm vnfd-create vim-emu/examples/vnfs/pong.tar.gz
osm nsd-create vim-emu/examples/services/pingpong_nsd.tar.gz
osm ns-create --nsd_name pingpong --ns_name test --vim_account emu-vim1
vagrant@vagrant:~$ osm ns-list
+------------------+--------------------------------------+--------------------+---------------+---------------------------------------------------------------------------------------------+
| ns instance name | id                                   | operational status | config status | detailed status                                                                             |
+------------------+--------------------------------------+--------------------+---------------+---------------------------------------------------------------------------------------------+
| test             | 05a363b0-4ac1-49a1-a4b1-9680e39b1ade | init               | init          | Waiting ns ready at RO. RO_id=2c569b2a-b21f-495b-9837-6a469f565044; VMs: 0/2, networks: 0/1 |
+------------------+--------------------------------------+--------------------+---------------+---------------------------------------------------------------------------------------------+
vagrant@vagrant:~$ osm ns-list
+------------------+--------------------------------------+--------------------+---------------+---------------------------------------------------------------------------------------------+
| ns instance name | id                                   | operational status | config status | detailed status                                                                             |
+------------------+--------------------------------------+--------------------+---------------+---------------------------------------------------------------------------------------------+
| test             | 05a363b0-4ac1-49a1-a4b1-9680e39b1ade | init               | init          | Waiting ns ready at RO. RO_id=2c569b2a-b21f-495b-9837-6a469f565044; VMs: 0/2, networks: 0/1 |
+------------------+--------------------------------------+--------------------+---------------+---------------------------------------------------------------------------------------------+