8.6.2. Configuring the Sample Routing Plug-In
OpenShift Enterprise includes a sample routing plug-in for publishing routing information on an ActiveMQ queue, which allows an external routing layer to route traffic for high-availability applications. In addition to enabling the sample plug-in on the broker host, the ActiveMQ configuration must be modified.
Procedure 8.18. To Enable and Configure the Sample Routing Plug-in:
- Add a new user, topic, and queue to ActiveMQ. On each ActiveMQ broker, edit the
/etc/activemq/activemq.xml
file and add the following line within the<users>
section, replacingroutinginfopasswd
with your own password:<authenticationUser username="routinginfo" password="routinginfopasswd" groups="routinginfo,everyone"/>
Example 8.14. Example <users> Section
<users> <authenticationUser username="mcollective" password="marionette" groups="mcollective,everyone"/> <authenticationUser username="admin" password="secret" groups="mcollective,admin,everyone"/> <authenticationUser username="routinginfo" password="routinginfopasswd" groups="routinginfo,everyone"/> </users>
- Add the following lines within the
<authorizationEntries>
section:<authorizationEntry topic="routinginfo.>" write="routinginfo" read="routinginfo" admin="routinginfo" /> <authorizationEntry queue="routinginfo.>" write="routinginfo" read="routinginfo" admin="routinginfo" />
Example 8.15. Example <authorizationEntries> Section
<authorizationEntries> <authorizationEntry queue=">" write="admins" read="admins" admin="admins" /> <authorizationEntry topic=">" write="admins" read="admins" admin="admins" /> <authorizationEntry topic="mcollective.>" write="mcollective" read="mcollective" admin="mcollective" /> <authorizationEntry queue="mcollective.>" write="mcollective" read="mcollective" admin="mcollective" /> <authorizationEntry topic="ActiveMQ.Advisory.>" read="everyone" write="everyone" admin="everyone"/> <authorizationEntry topic="routinginfo.>" write="routinginfo" read="routinginfo" admin="routinginfo" /> <authorizationEntry queue="routinginfo.>" write="routinginfo" read="routinginfo" admin="routinginfo" /> </authorizationEntries>
- Add the following lines within the
<plugins>
section:<redeliveryPlugin fallbackToDeadLetter="true" sendToDlqIfMaxRetriesExceeded="true"> <redeliveryPolicyMap> <redeliveryPolicyMap> <redeliveryPolicyEntries> <redeliveryPolicy queue="routinginfo" maximumRedeliveries="4" useExponentialBackOff="true" backOffMultiplier="4" initialRedeliveryDelay="2000" /> </redeliveryPolicyEntries> </redeliveryPolicyMap> </redeliveryPolicyMap> </redeliveryPlugin>
- Add the
schedulerSupport="true"
directive within the<broker>
section:<broker xmlns="http://activemq.apache.org/schema/core" brokerName="activemq.example.com" dataDirectory="${activemq.data}" schedulePeriodForDestinationPurge="60000" schedulerSupport="true" >
- Restart the
activemq
service:#
service activemq restart
- On the broker host, verify that the rubygem-openshift-origin-routing-activemq package is installed:
#
yum install rubygem-openshift-origin-routing-activemq
- Copy the
/etc/openshift/plugins.d/openshift-origin-routing-activemq.conf.example
file to/etc/openshift/plugins.d/openshift-origin-routing-activemq.conf
:#
cp /etc/openshift/plugins.d/openshift-origin-routing-activemq.conf.example /etc/openshift/plugins.d/openshift-origin-routing-activemq.conf
- Edit the
/etc/openshift/plugins.d/openshift-origin-routing-activemq.conf
file and ensure theACTIVEMQ_HOST
andACTIVEMQ_PORT
parameters are set appropriately for your ActiveMQ broker. Set theACTIVEMQ_PASSWORD
parameter to the password chosen for theroutinginfo
user:Example 8.16. Example Routing Plug-in Configuration File
ACTIVEMQ_TOPIC='/topic/routinginfo' ACTIVEMQ_USERNAME='routinginfo' ACTIVEMQ_PASSWORD='routinginfopasswd' ACTIVEMQ_HOST='127.0.0.1' ACTIVEMQ_PORT='61613'
In OpenShift Enterprise 2.1.2 and later, you can set theACTIVEMQ_HOST
parameter as a comma-separated list of host:port pairs if you are using multiple ActiveMQ brokers:Example 8.17. Example
ACTIVEMQ_HOST
Setting Using Multiple ActiveMQ BrokersACTIVEMQ_HOST='192.168.59.163:61613,192.168.59.147:61613'
- You can optionally enable SSL connections per ActiveMQ host. To do so, set the
MCOLLECTIVE_CONFIG
parameter in the/etc/openshift/plugins.d/openshift-origin-routing-activemq.conf
file to the MCollective client configuration file used by the broker:MCOLLECTIVE_CONFIG='/opt/rh/ruby193/root/etc/mcollective/client.cfg'
Note that while setting theMCOLLECTIVE_CONFIG
parameter overrides theACTIVEMQ_HOST
andACTIVEMQ_PORT
parameters in this file, theACTIVEMQ_USERNAME
andACTIVEMQ_PASSWORD
parameters in this file are still used by the routing plug-in and must be set. - Restart the broker service:
#
service openshift-broker restart