User Tools

Site Tools


copper:academy:joid:congress

This is an old revision of the document!


This is a temporary location for a Congress install guide that will be included in the Copper git repo.

Following are instructions for installing Congress on an Ubuntu 14.04 LXC container in the OPNFV Controller node, as installed by the JOID installer. This guide uses instructions from the Congress guide on readthedocs. Specific values below will need to be modified if you intend to repeat this procedure in your install environment.

Prequisite

OPFNV install per JOID

Install base VM for congress on controller node
sudo juju ssh ubuntu@192.168.10.21
Clone the container
sudo lxc-clone -o juju-trusty-lxc-template -n juju-trusty-congress
Start the container
sudo lxc-start -n juju-trusty-congress -d
Get the container IP address
sudo lxc-info -n juju-trusty-congress
If you need to start over
sudo lxc-destroy --name juju-trusty-congress
Exit from controller (back to jumphost) and login to congress container
sudo juju ssh ubuntu@192.168.10.117
Update package repos
sudo juju ssh ubuntu@192.168.10.117

sudo apt-get update

Setup environment variables
export CONGRESS_HOST=192.168.10.106
export KEYSTONE_HOST=192.168.10.119
export CEILOMETER_HOST=192.168.10.116
export CINDER_HOST=192.168.10.117
export GLANCE_HOST=192.168.10.118
export NEUTRON_HOST=192.168.10.125
export NOVA_HOST=192.168.10.121
install pip
sudo apt-get install python-pip -y
install java
sudo apt-get install default-jre -y
install other dependencies
# when prompted, set and remember mysql root user password
sudo apt-get install git gcc python-dev libxml2 libxslt1-dev libzip-dev mysql-server python-mysqldb -y
sudo pip install virtualenv
clone congress
git clone https://github.com/openstack/congress.git
cd congress
git checkout stable/liberty
Create virtualenv
virtualenv ~/congress
source bin/activate
Setup Congress
sudo mkdir -p /etc/congress
sudo mkdir -p /etc/congress/snapshot
sudo mkdir /var/log/congress
sudo chown ubuntu /var/log/congress
sudo cp etc/api-paste.ini /etc/congress
sudo cp etc/policy.json /etc/congress
install requirements.txt and tox dependencies (detected by errors during "tox -egenconfig")
sudo apt-get install libffi-dev -y
sudo apt-get install openssl -y
sudo apt-get install libssl-dev -y
install dependencies in virtualenv
pip install -r requirements.txt
python setup.py install
install tox
pip install tox
generate congress.conf.sample
tox -egenconfig
edit congress.conf.sample as needed
sed -i -- 's/#verbose = true/verbose = true/g' etc/congress.conf.sample
sed -i -- 's/#log_file = <None>/log_file = congress.log/g' etc/congress.conf.sample
sed -i -- 's/#log_dir = <None>/log_dir = \/var\/log\/congress/g' etc/congress.conf.sample
sed -i -- 's/#bind_host = 0.0.0.0/bind_host = 192.168.10.117/g' etc/congress.conf.sample
sed -i -- 's/#policy_path = <None>/policy_path = \/etc\/congress\/snapshot/g' etc/congress.conf.sample
sed -i -- 's/#auth_strategy = keystone/auth_strategy = noauth/g' etc/congress.conf.sample
sed -i -- 's/#drivers =/drivers = congress.datasources.neutronv2_driver.NeutronV2Driver,congress.datasources.glancev2_driver.GlanceV2Driver,congress.datasources.nova_driver.NovaDriver,congress.datasources.keystone_driver.KeystoneDriver,congress.datasources.ceilometer_driver.CeilometerDriver,congress.datasources.cinder_driver.CinderDriver/g' etc/congress.conf.sample
sed -i -- 's/#auth_host = 127.0.0.1/auth_host = 192.168.10.108/g' etc/congress.conf.sample
sed -i -- 's/#auth_port = 35357/auth_port = 35357/g' etc/congress.conf.sample
sed -i -- 's/#auth_protocol = https/auth_protocol = http/g' etc/congress.conf.sample
sed -i -- 's/#admin_tenant_name = admin/admin_tenant_name = admin/g' etc/congress.conf.sample
sed -i -- 's/#admin_user = <None>/admin_user = congress/g' etc/congress.conf.sample
sed -i -- 's/#admin_password = <None>/admin_password = congress/g' etc/congress.conf.sample
sed -i -- 's/#connection = <None>/connection = mysql:\/\/ubuntu:<mysql password>@localhost:3306\/congress/g' etc/congress.conf.sample
copy congress.conf.sample to /etc/congress
sudo cp etc/congress.conf.sample /etc/congress/congress.conf
create congress database
sudo mysql -u root -p
CREATE DATABASE congress;
GRANT ALL PRIVILEGES ON congress.* TO 'ubuntu'@'localhost' IDENTIFIED BY '<mysql password>';
GRANT ALL PRIVILEGES ON congress.* TO 'ubuntu'@'%' IDENTIFIED BY '<mysql password>';
exit
install congress-db-manage dependencies (detected by errors)
sudo apt-get build-dep python-mysqldb -y
pip install MySQL-python
create database schema
congress-db-manage --config-file /etc/congress/congress.conf upgrade head
pip install python-openstackclient
pip install python-congressclient
pip install python-keystoneclient
download admin-openrc.sh from Horizon and save in ~
source ~/admin-openrc.sh
setup Congress user. TODO: needs update in http://congress.readthedocs.org/en/latest/readme.html#installing-congress
pip install cliff --upgrade
export ADMIN_ROLE=$(openstack role list | awk "/ Admin / { print \$2 }")
export SERVICE_TENANT=$(openstack project list | awk "/ admin / { print \$2 }")
openstack user create --password congress --project admin --email "congress@example.com" congress
export CONGRESS_USER=$(openstack user list | awk "/ congress / { print \$2 }")
openstack role add $ADMIN_ROLE --user $CONGRESS_USER --project $SERVICE_TENANT
Create Congress service
openstack service create congress --type "policy" --description "Congress Service"
export CONGRESS_SERVICE=$(openstack service list | awk "/ congress / { print \$2 }")
Create Congress endpoint
openstack endpoint create $CONGRESS_SERVICE \
  --region $OS_REGION_NAME \
  --publicurl http://$CONGRESS_HOST:1789/ \
  --adminurl http://$CONGRESS_HOST:1789/ \
  --internalurl http://$CONGRESS_HOST:1789/
Start the Congress service in the background
bin/congress-server &
# disown the process (so it keeps running if you get disconnected)
disown -h %1
Create data sources

To remove datasources: openstack congress datasource delete <name> Probably good to do these commands in a new terminal tab, as the congress server log from the last command will be flooding your original terminal screen…

openstack congress datasource create nova "nova" \
  --config username=$OS_USERNAME \
  --config tenant_name=$OS_TENANT_NAME \
  --config password=$OS_PASSWORD \
  --config auth_url=http://$KEYSTONE_HOST:5000/v2.0
openstack congress datasource create neutronv2 "neutronv2" \
  --config username=$OS_USERNAME \
  --config tenant_name=$OS_TENANT_NAME \
  --config password=$OS_PASSWORD \
  --config auth_url=http://$KEYSTONE_HOST:5000/v2.0
openstack congress datasource create ceilometer "ceilometer" \
  --config username=$OS_USERNAME \
  --config tenant_name=$OS_TENANT_NAME \
  --config password=$OS_PASSWORD \
  --config auth_url=http://$KEYSTONE_HOST:5000/v2.0
openstack congress datasource create cinder "cinder" \
  --config username=$OS_USERNAME \
  --config tenant_name=$OS_TENANT_NAME \
  --config password=$OS_PASSWORD \
  --config auth_url=http://$KEYSTONE_HOST:5000/v2.0
openstack congress datasource create glancev2 "glancev2" \
  --config username=$OS_USERNAME \
  --config tenant_name=$OS_TENANT_NAME \
  --config password=$OS_PASSWORD \
  --config auth_url=http://$KEYSTONE_HOST:5000/v2.0
openstack congress datasource create keystone "keystone" \
  --config username=$OS_USERNAME \
  --config tenant_name=$OS_TENANT_NAME \
  --config password=$OS_PASSWORD \
  --config auth_url=http://$KEYSTONE_HOST:5000/v2.0 
Restarting after server power loss etc

Currently this install procedure is manual. Automated install and restoral after host recovery is TBD. For now, this procedure will get the Congress service running again.

# On jumphost, SSH to Congress server
sudo juju ssh ubuntu@192.168.10.117
# If that fails
  # On jumphost, SSH to controller node
  sudo juju ssh ubuntu@192.168.10.119
  # Start the Congress container
  sudo lxc-start -n juju-trusty-congress -d
  # Verify the Congress container status
  sudo lxc-ls -f juju-trusty-congress
  NAME                  STATE    IPV4            IPV6  GROUPS  AUTOSTART  
  ----------------------------------------------------------------------
  juju-trusty-congress  RUNNING  192.168.10.117  -     -       NO       
  # exit back to the Jumphost, wait a minute, and go back to the "SSH to Congress server" step above
# On the Congress server that you have logged into
source ~/admin-openrc.sh
cd congress
source bin/activate
bin/congress-server &
disown -h  %1
copper/academy/joid/congress.1449706852.txt.gz · Last modified: 2015/12/10 00:20 by Bryan Sullivan