Deploying multi-node Openstack with Opencontrail

In this post, I have chosen Opencontrail as SDN solution for Openstack neutron networking.
Opencontrail on its own have large amount of components/services which is difficult to cover in single post.
For non-familiar folks, refer to: Opencontrail architecture documentation

Opencontail site contains, lots of interesting blog posts on various topics,…It’s the¬†endless world out there ūüôā

This post intended to get you started with environment to play around and get feel for.
I will primarily focus on creating multi-node setup using Openstack and Opencontaril.
We will see the configuration points for Openstack and Opencontrail.
Then do, some basic operations, like VM launche, and ssh and ping operations to check the connectivity.

So, I guess, enough taking, Let’s get technical.

What do you need for environment?

  • A machine which support virtualization (Intel-VT/AMD-V)
  • Memory 8GB¬†minimum, will use 5.5 GB for all three VMs
  • Disk 60 GB free space
  • VirtualBox/VMware Player/KVM host – I have VirtualBox
  • A cup of Coffee!

Create three virtual machines with ubuntu 14.04 server.

VM1 specification (contrail-openstack-controller):

eth0: 192.168.1.11 (bridged adapter)
eth1: 10.10.10.3 (Host-only adapter)

vm1

Contrail-Openstack-Controller

VM2: specification (compute1):

eth0: 192.168.1.12 (bridged adapter)
eth1: 10.10.10.4 (Host-only adapter)

vm2

Compute Node 1

Vm3: specification (compute2):

eth0: 192.168.1.13 (bridged adapter)
eth1: 10.10.10.5 (Host-only adapter)

Compute Node 2

Compute Node 2

After login to the machines clone following repositories.

https://github.com/Juniper/contrail-installer.git

https://github.com/openstack-dev/devstack.git

For installation of contrail, you can follow up contrail-installer README.

VM1:

Act as controller hence, we will be running all the openstack services, without openstack-nova-compute and opencontrail-vrouter-agent. Following, locarc for opencontrail.

vm1-contrail-localrc

Follow steps as per the contrail-installer and install contrail services.

cd contrail-installer
cp samples/localrc-all localrc (edit localrc as needed)
./contrail.sh build
./contrail.sh install
./contrail.sh configure
#Before starting contrail services, remove agent service from ENABLED_SERVICES
https://github.com/Juniper/contrail-installer/blob/master/contrail.sh#L12
./contrail.sh start

Devstack localrc: disabled most of the services like cinder, heat, tempest and compute

vm1-devstack-localrc

Copy opencontrail plugin for devstack to use:

cd devstack
cp ~/contrail-installer/devstack/lib/neutron_plugins/opencontrail lib/neutron_plugins/
./stack.sh

VM2 & VM3

This will be compute nodes, hence this will be running nova-compute and contrail-vrouter-agent serivces.

Localrc for contrail and devstack as follows:

Check out contrail localrc, INSTALL_PROFILE=COMPUTE

vm2-contrail-localrc           vm2-devstack-localrc

Verify setup with screen outputs: on all the VMs

screen -x contrail
screen -x stack

Screens for contrail and devstack on controller node

controller-contrail-screen

controller contrail screen

controller devstack screen

controller devstack screen

Screens for contrail and devstack on compute node

nova compute screen

nova compute screen

Contrail agent on compute node

Contrail agent on compute node

Check regiester compute nodes with ‘nova hypervisor-list’, and launch 2 VMs.

Booted 2 VMs on two compute nodes

Test ping and ssh commands between vms

vm ssh and ping test

vm ssh and ping test

Let  me know, wherever you stumble across problem during this setup. I will try my best to help you out.

Just got below patch merge now, which was necessary for multi-node contrail setup.

https://github.com/Juniper/contrail-installer/pull/105

Advertisements