Earlier Attempts
Take 5 - OpenStack on main host and compute hosts under KVM
OpenStack running in a VM had touble being reachable from compute hosts outside the main host machine. So dropping back to running OpenStack on the host machine directly, until I figure out how to resolve the connectivity issue (maybe the bridged networking config below would help with that - it's a recent change which was needed to allow the compute hosts running in VMs to connect to OpenStack…).
Starting with Ubuntu 14.04 LTS Server
installed with SSH server, LAMP, Tomcat Java, and Virtualization as options
Get the basic server setup
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install ubuntu-desktop
sudo apt-get install virtinst
sudo apt-get install virt-manager
sudo apt-get install hal-info
sudo apt-get install qemu-system
sudo apt-get install git -y
Setup bridged networking for local VMs
sudo /etc/init.d/networking restart
to be safe, reboot
Install OpenStack
-
cd devstack
customize the configurtion file that will used to setup OpemStack
cp samples/local.conf .
vi local.conf
FLAT_INTERFACE=(your ethernet interface)
ADMIN_PASSWORD=(something you will remember - you will use this to login to the Horizon UI)
MYSQL_PASSWORD=(mysql root password)
RABBIT_PASSWORD=(something you will remember)
SERVICE_PASSWORD=(something you will remember)
./stack.sh
If all goes well, you will get an output of key items at the end of the script e.g.
-
-
Examples on using novaclient command line is in exercise.sh
The default users are: admin and demo
The password: opnfv
This is your host ip: 192.168.1.132
Setup Compute controller service
Setup compute hosts to connect to OpenStack
Prerequisite: see Basic Compute Host Install below
sudo apt-get install nova-compute-kvm
Customize the nova compute config file
verify that your machine supports hardware acceleration (returns 1)
sudo rm /var/lib/nova/nova.sqlite
sudo service nova-compute restart
In Horizon, verify that your compute hosts show up in the System / Hypervisors view
After restarting your host machine
Basic KVM-Based Compute Host Install
The following assumes you will use Ubuntu 14.04 LTS Server for the VM host
Create a new Virtual Machine Manager image for the VM
If the image is not in qcow2 format already
If when you run Virtual Machine Manager, your CM is not aleady there (due to virt-install above)
Create new VM and select import existing image. Hit Forward.
browse ("local") to the qcow2 file folder
select
OS type "linux". Hit Forward
select RAM (min 1048) and CPUs (leave at 1 is OK). Hit Forward.
Select "customize configuration". Hit Finish.
Under Disk 1 select advanced options and select Storage Format qcow2. Hit Apply.
Hit Begin Installation.
Run Virtual Machine Manager
Select the VM you want to initialize, and select Run
If the VM is from an install disk (ISO), you will get the Ubuntu installer.
When install is complete, reboot the VM and login
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install openssh-server
How to customize the VM with LAMP support
Cloning VMs
Use Virtual Machine Manager to clone into the desired compute hosts, e.g. I started with ubuntu-1404 and cloned into ubuntu-1404-h1 and ubuntu-1404-h2
Select "Clone" (not share disk)
Boot the VMs, and update the configs
Take 4 - OpenStack and compute hosts under KVM
To address some of the potential snags occurring due to conflicts between OpenStack, ODL, OVS, libvirt, … I am switching to running OpenStack and compute nodes under KVM VMs, with the addition of other compute nodes on other machines. At this point ODL is not in the picture as I have to figure out how the whole flat network approach works first. And the goal for this initial sandbox will be to get off the ground with policy feature assessment in OpenStack, so ODL can wait until I learn it better or get guidance on how to factor it into this setup.
At this point I have most of the above working. What is not currently working is getting the external compute node connected to OpenStack nova, likely some firewall issue with KVM that I need to fix.
I'll post details on how this was setup soon.
Take 3 - Ubuntu 14.04 host
Returning to a more direct approach, this time will ensure component independence by installing:
* OpenStack on host OS
* ODL in VM managed by OpenStack
Decided pretty quickly that as some of the earlier issues may have been with running OpenStack on the host directly, I would switch to trying it in a VM (take 4).
Take 2 - Foreman - assisted install
Trying out Foreman to see if it helps get past some of the basic issues with the manual install.
-
-
sudo yum -y install foreman-installer
-
sudo foreman-installer
-
repeat foreman-installer
…
only options seem to be bare metal install. It´s unclear how to install OpenStack in a VM, so had to return to devstack install. But ran into the same issues as found in the original Centos7 effort below (httpd for keystone fails to start due to a configuration error related to a module - no examples of how to resolve this error are found anywhere).
.
.
.
Take 1 - manual install
Here is a graphic of the concept. This is very draft and leaves many things unclear partly because I'm not sure how to do them yet.
This procedure is not being further pursued at the moment… too many undocumented things about the overall setup of OpenStack, ODL, etc…
Restart process for For sandbox based upon host OS: Unbuntu 14.04 Server LTS
devstack/rejoin-stack.sh
from Horizon, launch mininet-vm created earlier
ssh to mininet VM and enter
back in ubuntu terminal
cd distribution-karaf-0.2.1-Helium-SR1.1
./bin/karaf clean
(currently here in the debug process) install enough ODL features to get ODL UX working (ports 8080 and 8181)
feature:install odl-restconf odl-l2switch-switch odl-mdsal-apidocs odl-dlux-core
Restart process for sandbox based upon host OS: Unbuntu 14.04 Server LTS
Ensure you have enable virtualization support in your BIOS
Install Ubuntu. I selected options for SSH, LAMP, VM host.
install updates
sudo apt-get update
sudo apt-get upgrade
install ubuntu desktop: sudo apt-get install ubuntu-desktop
install Java 7
-
-
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
sudo apt-get install oracle-java7-set-default
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
sudo vi /etc/environment
install git: sudo apt-get install git -y
Install OpenStack (DevStack)
-
cd devstack
Create local.conf: cp samples/local.conf .
Add/replace these lines: vi local.conf
FLAT_INTERFACE=(your ethernet interface)
ADMIN_PASSWORD=(something you will remember - you will use this to login to the Horizon UI)
MYSQL_PASSWORD=(mysql root password)
RABBIT_PASSWORD=(something you will remember)
SERVICE_PASSWORD=(something you will remember)
Start the devstack install: ./stack.sh
If all goes well, you will get an output of key items at the end of the script
If you hit an error related to the mysql root password, you can reset it and try again
At this point you should be able to login to Horizon at your installed server e.g.
http://192.168.1.132/ using the account "admin" and the ADMIN_PASSWORD you set above.
install and configure mininet
-
convert to QCOW2 format
unzip mininet.zip
qemu-img convert -O qcow2 mn-2.2.0-trusty64server-150106-01-30-00/mininet-vm-x86_64.vmdk mn-2.2.0-trusty64server-150106-01-30-00/mininet-vm-x86_64.qcow2
In Horizon, create image for mininet-vm
Install openvswitch: sudo apt-get install openvswitch-switch
-
-
unzip Helium-SR1.1.zip
cd distribution-karaf-0.2.1-Helium-SR1.1
./bin/karaf
You should get the OpenDaylight prompt "opendaylight-user@root>"
verify it's working with: feature:list
install the ODL components
-
In Horizon, launch mininet-vm created earlier
ssh to mininet VM and enter
Bring up a VM and validate basic functionality: this will be initially a manual sequence and eventually scripted using OpenStack APIs
Take 0
Tried CentOS 7 but continually getting errors:
-
When installing, select the "Server with
GUI" profile, leaving all options blank (it's unclear whether any are needed at this point)
As su, add your username to /etc/sudoers via "visudo"
Log out of root!
Install git: sudo yum install git
-
Create devstack/local.conf, adding/replacing these lines
FLAT_INTERFACE=(your ethernet interface)
ADMIN_PASSWORD=(random string)
MYSQL_PASSWORD=(random string)
RABBIT_PASSWORD=(random string)
SERVICE_PASSWORD=(random string)
Start the devstack install: cd devstack; ./stack.sh
A variety of errors received - no reason why, not time to debug