Prerequisites

Have a cluster installed like in: SUSECloud Part 1 - Install The Multi Node OpenStack/Ceph Environment

After you have installed the admin node you can access the SUSECloud admin website.

Getting OpenStack Installed

  • Turn on the one or more VMs that will act as hosts which SUSECloud can provision.
for I in `VBoxManage list vms | grep node | grep -v -E "\-1\""|awk '{ gsub (/"/,""); print $1}'`
do 
  VBoxManage startvm ${I} --type headless
  VBoxManage controlvm ${I} vrde on
done

You can watch the process with an RDP client:

  • Wait for the VM to show up in the Crowbar Admin web UI with a blinking yellow icon indicating Sleshammer is waiting for instructions (the VM is ready to be allocated)
  • The VM will display something like the following on the console when it has reached a state ready for allocation:

  • Open the admin interface at http://192.168.124.10:3000

  • When nodes are discovered, they must be allocated. Bulk Edit the nodes

    • Enter the corresponding alias in the alias field of the node
    • hit the save button

  • The client node will begin the allocation which includes:
    • Initial Chef run
    • Reboot
    • Install of base system via PXE & preseed
    • Reboot into newly installed system (login prompt)

Again you can watch the progress with the dashboard view.

Wait until all nodes become solid green again. After that we can edit the nodes to hint their usage. This is useful for the later steps. From top to bottom:

  • click on the node

  • click on the edit button

  • specify the “Intended Role” with the dropdown control to your needs.

OpenStack Installation Order

Order matters when provisioning OpenStack pieces on the various host nodes. The proper order is as already predefined in the Barclamps -> Openstack list.

We have to follow that order from top to bottom.

Database

Create a new Proposal for Database:

  • Within the Database Proposal setup under the Deployment section, drag the control node from Available Nodes into the database-server box.
  • Click Apply to initiate setting up the Database service on the selected node.

Keystone

Create a new Proposal for Keystone:

  • Within the Keystone Proposal setup under the Deployment section, drag the control node from Available Nodes into the keystone-server box.
  • Click Apply to initiate setting up the Keystone service on the selected node.

RabbitMQ

Create a new Proposal for RabbitMQ:

  • Within the RabbitMQ Proposal setup under the Deployment section, drag the control node from Available Nodes into the rabbitmq-server box.
  • Click Apply to initiate setting up the RabbitMQ service on the selected node.

Ceph

Create a new Proposal for Ceph:

  • Within the Ceph Proposal setup under the Deployment section, drag the storage-1 - storage-3 nodes from Available Nodes into the ceph-mon and ceph-osd box.
  • Click Apply to initiate setting up the Ceph service on the selected node.

Swift

We leave out Swift in this deployment

Glance

Create a new Proposal for Glance:

  • We use Ceph as the default backend, so choose Rados in the Dropdown

  • Within the Glance Proposal setup under the Deployment section, drag the control node from Available Nodes into the glance-server box.
  • Click Apply to initiate setting up the Glance service on the selected node.

Cinder

Create a new Proposal for Cinder:

  • We use Ceph as the default backend, so choose Rados in the Type of Volume Dropdown

  • Within the Cinder Proposal setup under the Deployment section, drag the control node from Available Nodes into the cinder-controller and cinder-volume box.

  • Click Apply to initiate setting up the Cinder service on the selected node.

Neutron

Create a new Proposal for Neutron:

  • We use the linuxbridge as the network plugin, so choose linuxbridge in the Plugin Dropdown

We want all our public/floating traffic on a separate physical interface. Unfortunately SUSECloud does not support this out of the box yet, so we have to alter the chef recipes and templates.

This is somewhat hackish at the moment as it is really tied to this Virtualbox setup were we know that its gonna be eth1 and vlan 300 for the public interface.

admin:~ # sed -i 's/network_vlan_ranges = physnet1:/network_vlan_ranges = physnet2:300:300,physnet1:/' /opt/dell/chef/cookbooks/neutron/templates/default/ml2_conf.ini.erb
admin:~ # sed -i 's/network_vlan_ranges = physnet1:/network_vlan_ranges = physnet2:300:300,physnet1:/' /opt/dell/chef/cookbooks/neutron/templates/default/linuxbridge_conf.ini.erb
sed -i 's/physical_interface_mappings = physnet1:/physical_interface_mappings = physnet2:eth1,physnet1:/' /opt/dell/chef/cookbooks/neutron/templates/default/linuxbridge_conf.ini.erb
sed -i 's/public_net\["vlan"\]} --provider:physical_network physnet1/public_net["vlan"]} --provider:physical_network physnet2/' /opt/dell/chef/cookbooks/neutron/recipes/post_install_conf.rb

admin:~ # knife cookbook upload neutron -o /opt/dell/chef/cookbooks/
Uploading neutron        [1.0.0]
Uploaded 1 cookbook.
  • Within the Neutron Proposal setup under the Deployment section, drag the control node from Available Nodes into the neutron-server box.
  • Click Apply to initiate setting up the Neutron service on the selected node.

Nova

We are running Nova with Qemu as Virtualbox does us not allow to use kvm in kvm. This is currently not supported in SUSECloud 3. There is just one issue: Using Ceph with Qemu needs an code change to the recipes.

ssh root@192.168.124.10
grep -ir -e "libvirt_type" /opt/dell/chef/cookbooks/* |grep rbd
/opt/dell/chef/cookbooks/nova/recipes/config.rb:  if cinder_server[:cinder][:volume][:volume_type] == "rbd" and node[:nova][:libvirt_type] == "kvm"

We have to change this line to:

if cinder_server[:cinder][:volume][:volume_type] == "rbd” and ['kvm','qemu'].include?(node[:nova][:libvirt_type])

and upload it to the chef server

admin:~ # knife cookbook upload nova -o /opt/dell/chef/cookbooks/
Uploading nova           [0.3.0]
Uploaded 1 cookbook.

Create a new Proposal for Nova:

  • Within the Neutron Proposal setup under the Deployment section, drag the control node from Available Nodes into the nova-multi-controller box and the compute-1 and compute-2 nodes into the nova-multi-compute-qemu
  • Click Apply to initiate setting up the Neutron service on the selected node.

Horizon

Create a new Proposal for Horizon:

  • Within the Horizon Proposal setup under the Deployment section, drag the control node from Available Nodes into the nova_dashhboard-server box.
  • Click Apply to initiate setting up the Horizon service on the selected node.

Finished Installation

We leave out ceilometer and heat in this deployment. So if everything went well we should see now a lot of green on the OpenStack Barclamp list:

To use the Openstack login we can have a look at the control node:

The details page of the control node has two links build in. One for the the admin-net dashboard and one for the public-net dashboard.

OpenStack Dashboard Login

To access the dashboard open the browser at http://192.168.124.81

  • Username: crowbar
  • Password: crowbar

  • System Info - Services:

  • System Info - Network Agents:

  • System Info - Hypervisors:

comments powered by Disqus
Blog Tags