# Copyright 2015 Open Platform for NFV Project, Inc. and its contributors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# This file contains instructions for installation and use of the Copper
# project adhoc test driver for OpenStack Congress, formatted as a
# Docuwiki page.
Following are notes on creating a container as test driver for Congress. This is based upon an Ubuntu host as installed by JOID.
=== Create and Activate the Container ===
sudo lxc-create -n trusty-copper -t /usr/share/lxc/templates/lxc-ubuntu -- -b ubuntu ~/opnfv
sudo lxc-start -n trusty-copper -d
sudo lxc-info --name trusty-copper
Name: trusty-copper
State: RUNNING
PID: 4563
IP: 10.0.3.44
CPU use: 28.77 seconds
BlkIO use: 522.79 MiB
Memory use: 559.75 MiB
KMem use: 0 bytes
Link: vethDMFOAN
TX bytes: 2.62 MiB
RX bytes: 88.48 MiB
Total bytes: 91.10 MiB
=== Login and configure the test server ===
ssh ubuntu@10.0.3.44
sudo apt-get update
sudo apt-get upgrade -y
# Install pip
sudo apt-get install python-pip -y
# Install java
sudo apt-get install default-jre -y
# Install other dependencies
sudo apt-get install git gcc python-dev libxml2 libxslt1-dev libzip-dev php5-curl -y
# Setup OpenStack environment variables per your OPNFV install
export CONGRESS_HOST=192.168.10.117
export KEYSTONE_HOST=192.168.10.108
export CEILOMETER_HOST=192.168.10.105
export CINDER_HOST=192.168.10.101
export GLANCE_HOST=192.168.10.106
export HEAT_HOST=192.168.10.107
export NEUTRON_HOST=192.168.10.111
export NOVA_HOST=192.168.10.112
source ~/admin-openrc.sh
# Install and test OpenStack client
mkdir ~/git
cd git
git clone https://github.com/openstack/python-openstackclient.git
cd python-openstackclient
git checkout stable/liberty
sudo pip install -r requirements.txt
sudo python setup.py install
openstack service list
+----------------------------------+------------+----------------+
| ID | Name | Type |
+----------------------------------+------------+----------------+
| 2f8799ae50f24c928c021fabf8a50f5f | keystone | identity |
| 351b13f56d9a4e25849406ec1d5a2726 | cinder | volume |
| 5129510c3143454f9ba8ec7e6735e267 | cinderv2 | volumev2 |
| 5ee1e220460f41dea9be06921400ce9b | congress | policy |
| 78e73a7789a14f56a5d248a0cd141201 | quantum | network |
| 9d5a00fb475a45b2ae6767528299ed6b | ceilometer | metering |
| 9e4b1624ef0b434abc0b82f607c5045c | heat | orchestration |
| b6c01ceb5023442d9f394b83f2a18e01 | heat-cfn | cloudformation |
| ba6199e3505045ad87e2a7175bd0c57f | glance | image |
| d753f304a0d541dbb989780ae70328a8 | nova | compute |
+----------------------------------+------------+----------------+
# Install and test Congress client
cd ~/git
git clone https://github.com/openstack/python-congressclient.git
cd python-congressclient
git checkout stable/liberty
sudo pip install -r requirements.txt
sudo python setup.py install
openstack congress driver list
+------------+--------------------------------------------------------------------------+
| id | description |
+------------+--------------------------------------------------------------------------+
| ceilometer | Datasource driver that interfaces with ceilometer. |
| neutronv2 | Datasource driver that interfaces with OpenStack Networking aka Neutron. |
| nova | Datasource driver that interfaces with OpenStack Compute aka nova. |
| keystone | Datasource driver that interfaces with keystone. |
| cinder | Datasource driver that interfaces with OpenStack cinder. |
| glancev2 | Datasource driver that interfaces with OpenStack Images aka Glance. |
+------------+--------------------------------------------------------------------------+
# Install and test Glance client
cd ~/git
git clone https://github.com/openstack/python-glanceclient.git
cd python-glanceclient
git checkout stable/liberty
sudo pip install -r requirements.txt
sudo python setup.py install
glance image-list
+--------------------------------------+---------------------+
| ID | Name |
+--------------------------------------+---------------------+
| 6ce4433e-65c0-4cd8-958d-b06e30c76241 | cirros-0.3.3-x86_64 |
+--------------------------------------+---------------------+
# Install and test Neutron client
cd ~/git
git clone https://github.com/openstack/python-neutronclient.git
cd python-neutronclient
git checkout stable/liberty
sudo pip install -r requirements.txt
sudo python setup.py install
neutron net-list
+--------------------------------------+------# install dependencies
sudo apt-get install lamp-server^ -y
# when prompted, set mysql root user password to "ubuntu"
----+------------------------------------------------------+
| id | name | subnets |
+--------------------------------------+----------+------------------------------------------------------+
| dc6227df-af41-439f-bd2c-c2c2f0fe7fc5 | public | 5745846c-dd79-4900-a7da-bf506348ceac 192.168.10.0/24 |
| a3f9f13a-5de9-4d3b-98c8-d2e40a2ef8e9 | internal | 5e0be862-90da-44ab-af43-56d5c65aa049 10.0.0.0/24 |
+--------------------------------------+----------+------------------------------------------------------+
# Install and test Nova client
cd ~/git
git clone https://github.com/openstack/python-novaclient.git
cd python-novaclient
git checkout stable/liberty
sudo pip install -r requirements.txt
sudo python setup.py install
nova hypervisor-list
+----+---------------------+-------+---------+
| ID | Hypervisor hostname | State | Status |
+----+---------------------+-------+---------+
| 1 | compute1.maas | up | enabled |
+----+---------------------+-------+---------+
# Install and test Keystone client
cd ~/git
git clone https://github.com/openstack/python-keystoneclient.git
cd python-keystoneclient
git checkout stable/liberty
sudo pip install -r requirements.txt
sudo python setup.py install
=== Setup the Congress Test Webapp ===
# Clone Copper (if not already cloned in user home)
cd ~/git
if [ ! -d ~/git/copper ]; then git clone https://gerrit.opnfv.org/gerrit/copper; fi
# Copy the Apache config
sudo cp ~/git/copper/components/congress/test-webapp/www/ubuntu-apache2.conf /etc/apache2/apache2.conf
# Point proxy.php to the Congress server per your install
sed -i -- "s/192.168.10.117/$CONGRESS_HOST/g" \
~/git/copper/components/congress/test-webapp/www/html/proxy/index.php
# Copy the webapp to the Apache root directory and fix permissions
sudo cp -R ~/git/copper/components/congress/test-webapp/www/html /var/www
sudo chmod 755 /var/www/html -R
# Make webapp log directory and set permissions
mkdir ~/logs
chmod 777 ~/logs
# Restart Apache
sudo service apache2 restart
=== Using the Test Webapp ===
Browse to the trusty-copper server IP address.
Interactive options are meant to be self-explanatory given a basic familiarity with the Congress service and data model. But the app will be developed with additional features and UI elements.