These are my rough notes from the implementation of the OPNFV Academy framework on Ravello Systems hosted cloud environment.
There are 5 blueprints we are working on:
- Pre-built MaaS with empty nodes 4 Feb, 2016 - https://www.ravellosystems.com/repo/blueprints/67863505 - ready to build OPNFV with your SDN choice - done - take an hour or two to deploy this blueprint, configure maas then four hours later you can have a working OPNFV setup you can customize. Not self-contained - needs ssh keys, github, edit files. For more advanced developer.
- Deployed OPNFV with OpenStack Juno and Juniper Contrail SDN OpenStack Juno - done - spin up an app from this blueprint and in 20 minutes you will have a working OpenStack environment. Beginner level. <-- this blueprint needs an update for the Contrail controller to work properly.
- Deployed OPNFV with ODL SDN OpenStack Liberty 17 Feb, 2016 - https://www.ravellosystems.com/repo/blueprints/68618208 - deploy to google cloud - not Amazon AWS. There were issues with networking in AWS. Google works fine.
- Deployed OPNFV with ONOS SDN OpenStack Liberty - pending
- Deployed OPNFV with No SDN OpenStack Liberty and Congress/Copper from 9 Mar, 2016 - https://www.ravellosystems.com/repo/blueprints/69075386
#Purpose We are building out an OPNFV environment in Ravello. This environment will be shared publicly as a Ravello Blueprint. A blog post and training program will be created around this blog post. Different team members can use this setup to learn about OPNFV or to expand on it for use as a Sales Demo tool or for customer facing POCs or even QA/DevTest functional testing scenarios.
- Topology is based off the simple: https://wiki.opnfv.org/copper/academy
- Using: https://www.ravellosystems.com/
- Built with: https://wiki.opnfv.org/joid/get_started
- See needed files shared here: https://github.com/opnfv/opnfv-ravello-demo
- Minimal scripting. Using web interface for most actions.
- Simple getting started environment intended for opnfv experimentation.
- Rapid low cost iteration with minimal upfront investment in time or hardware.
- Expert mode available for command line experts with REST API experience.
This section is an attempt to explain why we are using Ravello and will guide our strategy for the build out.
There are three ways to consume OPNFV:
- Automated setup using static machines driven by jenkins jobs reading gerrit running on a daily and weekly build process. jenkins jobs handle the installation, configuration, and testing of the OPNFV platform. Required LFID and Authorization to make any changes as well as dedicated hardware.
- Assisted Install: Use a pre-built jump server setup to download latest code from a public github repo and pxe-boot some machines. More flexible and “open” while following a similar process to the “real” OPNFV labs. Uses Canonical MaaS and Juju to follow along with capabilities from the JOID project. This option takes a few hours.
- Static OPNFV trial system already built out and ready to use with openstack and sdn network controller preconfigured. Rapid setup time but quickly falls out of date as upstream projects change. We will update these blueprints once a month or so.
#Getting Started You will need the following setup before hand to get going:
- An account on the Ravello cloud. They provide 2880 CPU Hours for free - enough to run 1 machine for 14 days. Make it a big one!
- Review the notes on the wiki for the OPNFV Academy - it was done using bare metal NUCs from Intel. We will make some adjustments to get it working with the virtual machines provided by Ravello.
- The files used for this demo (like ssh keys) are available on the following GitHub repo. Setup the github client on your computer.
- If you don’t have a working git client see this page with steps for Mac, Windows, and Linux: https://help.github.com/articles/set-up-git/
- Clone the repo to your local workstation: https://github.com/opnfv/opnfv-ravello-demo
- You can access and manage Ravello using any computer with a web browser. You may want to upload some ISO files or other Virtual Machine image files. Do do this will require installing software on a Linux, Windows, or Mac OS computer. Why not use a linux machine hosted on line? You can make one on Ravello, Amazon AWS, Microsoft Azure, or google?
- https://azure.microsoft.com/en-us/pricing/free-trial/
- https://cloud.google.com/free-trial/
- https://aws.amazon.com/free/
- http://www.nephoscale.com
- many others
- OPTIONAL: Create a Linux Foundation account (LFID) so you can access the OPNFV tools: https://www.opnfv.org/developers/tools
- Sign on to IRC chat.freenode.net and join the #opnfv channel to get help
#OPNFV Demonstration - User Story
- Create free account on Ravello
- Setup SSH Key Pair - there are three options here:
- add your own to Ravello Library with Import feature (may need to run: ssh-keygen -i -f opnfv-ravello.pub > opnfv-ravello1.pub)
- create a new key pair using the Ravello Web UI
- import the key from github (https://github.com/opnfv/opnfv-ravello-demo/blob/master/opnfv-ravello.pub)
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5REVxIbyGbaKZL1hT8zjvW/EoafNbdFx1H7+nnlvutb7PFlOKXHswrcX4bWZttTHnKzt2NWjeRgaX0c4RRMl/0+NLqb82nyBj5AP4V4O/s+5MP+kbmQAVUo1aKfu6Z8jw9VUTc6ztmMGFfLq/+8d79avmvfCKsv1RuPojLRHU8Np0GgUaHFbkIzaFRMMvgSAdsz8etBC/sD5v/PAsnEB6Vdv1QLIdmb7leJaaNDbf9JiTInR5yay3XYZ1y5CDpD4KuODn9nbgfzLh8NMqeQ2O2Noyg1c4yrxXLEXWQwDFRuCmXLPAta1kDOSsYUWGQzSCoQHZeAhp1E/t/ULjMPfV imported-openssh-key
- Deploy blueprint as an active application
- Assign your ssh key to the maas machine in your application
- Publish the application
- Identify the ip address for the MaaS server in your application
- verify MAAS functionality via web ui - ubuntu/ubuntu
- verify MAAS functionality via SSH EXAMPLE: ssh -i path-to-ssh-key.pem [email protected]
- Check that images are imported - http://maas-opnfvbp3app-gxowv3sb.srv.ravcloud.com/MAAS/images/
- login to OpenStack Horizon Dashboard Web UI - admin/openstack
#Environment Prep and Operation High level overview of steps to follow for building out OPNFV on Ravello. In this first pass the environment will be built out manually. Additional iterations will bring automation to these steps. Please help with improving this process. It is intended to be a team effort.
- Create the virtual machine containers
- Configure the machines and networking
- Deploy MaaS and Empty VMs
- Enter credentials for MaaS Power Driver for Ravello
- Use MaaS to create Juju bootstrap machine - verify YAML config are correct
- cd ~/opnfv-ravello-demo/joid/ci
- ./deploy.sh -o juno -s opencontrail -t nonha -l ravellodemopod
- Use Juju to perform a deployment of operating systems, openstack, and network controller.
- Verify the services are operating properly
- ssh -i path-to-key.pem ubuntu@dns-or-ip-address-of-maas-server
- Change the password for the ubuntu user. You may need it later. Or you can setup additional accounts.
- ubuntu@maas:~$ sudo su -
- root@maas:~# passwd ubuntu
- Enter new UNIX password:
- Retype new UNIX password:
- passwd: password updated successfully
- root@maas:~# exit
- Check that charms are up and running and at the bottom, you have the machines and each one has a number.
- Be sure to run these commands from the $ prompt as the ubuntu user
- juju status --format tabular
- juju ssh <machine_number>" to ssh into a machine owned by juju
- "juju ssh 1" -> you can ssh into controller
- "juju ssh 2" -> you can ssh into compute
- Run some tests - use the environment
- Tear it down and repeat - improve through iteration
This github repo contains the files used in the OPNFV demo setup on Ravello Systems hosted cloud infrastructure
See the raw draft of the google notes here: https://docs.google.com/document/d/1ZyMg6yyGAZm-vC29yeKp0_y3EQNaIuEY9JUeJ4dzmGw/edit?usp=sharing