Abiquo 5.2

Skip to end of metadata
Go to start of metadata

The aim of this guide is to explain how to configure multitenant AMQP for multiple datacenters.

Properties

Property name

Description

Context

abiquo.rabbitmq.multitenant

True if multitenant is enabled. By default it is disabled (false)

API

abiquo.rabbitmq.virtualHost

Logical separation where the configured Abiquo service manages AMQP entities. The default virtual host is '/'

API + RS

abiquo.rabbitmq.username

Username to connect to broker + virtualHost

API + RS

abiquo.rabbitmq.password

Password to connect to broker + virtualHost

API + RS

abiquo.datacenter.id

Unique datacenter ID. For a complete description see Abiquo Configuration Properties#datacenter

RS


API configuration

To configure the API:

  1. Set "abiquo.rabbitmq.multitenant" to true
  2. Create an API virtual host, the default virtual host is "/" and this is fine to use if this is not a monolithic setup (see below for monolithic configuration)

Create an Abiquo API user with full access to the configured virtual host

rabbitmqctl add_user admin admin
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"


Watchtower configuration

The virtual host to use must be the same one configured and used by the API and the user can also be the same.

Versions prior to Abiquo 4.2

Take care to configure the virtual host and user/password in emmett.conf and delorean.conf files in section "amqp.rabbitmq"

Abiquo 4.2 and later versions

As Abiquo 4.2 watchtower uses the properties defined in abiquo.properties file, be sure to configure the properties:

  • abiquo.rabbitmq.virtualHost
  • abiquo.rabbitmq.username
  • abiquo.rabbitmq.password

See Abiquo Configuration Properties#rabbitmq

How to add new data center

Each datacenter in Abiquo has an unique ID configured in the property "abiquo.datacenter.id" and the value of this property will be used as name of a new virtual host.

  1. Create a new virtual host named as "abiquo.datacenter.id" property value

    rabbitmqctl add_vhost dc2
    
  2. Add a new user for the new datacenter

     rabbitmqctl add_user dc2_user dc2_password
    
  3. Configure access to new virtual host for Abiquo API user

    rabbitmqctl set_permissions -p dc2 admin ".*" ".*" ".*"
    
  4. Configure access to new virtual host for datacenter user

     rabbitmqctl set_permissions -p dc2 dc2_user ".*" ".*" ".*"
    

Permissions on virtual hosts can be listed (note that only the API user has access to its own API virtual host):

 
> rabbitmqctl list_permissions -p /
Listing permissions in vhost "/" …
admin.*.*.*


> rabbitmqctl list_permissions -p dc2
Listing permissions in vhost "dc2" …
dc2_user.*.*.*
admin.*.*.*


Check that properties on remote services match the configured values:

  • abiquo.datacenter.id = dc2
  • abiquo.rabbitmq.virtualHost = dc2
  • abiquo.rabbitmq.username = dc2_user
  • abiquo.rabbitmq.password= dc2_password


How to run a monolithic Abiquo with multi-tenant enabled

To configure the monolithic installation:

  • Configure the API virtual host as the same of the monolithic datacenter (value of property "abiquo.datacenter.id")
  • Configure access to the datacenter virtual host for Abiquo API user
  • Note that a particular user for the datacenter is not needed


The rest of data centers (non-monolithic) can be added as described in the previous section


  • No labels