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:

  1. 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, replacing routinginfopasswd 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>
  2. 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>
  3. 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>
  4. 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"
    	>
  5. Restart the activemq service:
    # service activemq restart
  6. On the broker host, verify that the rubygem-openshift-origin-routing-activemq package is installed:
    # yum install rubygem-openshift-origin-routing-activemq
  7. 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
  8. Edit the /etc/openshift/plugins.d/openshift-origin-routing-activemq.conf file and ensure the ACTIVEMQ_HOST and ACTIVEMQ_PORT parameters are set appropriately for your ActiveMQ broker. Set the ACTIVEMQ_PASSWORD parameter to the password chosen for the routinginfo 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 the ACTIVEMQ_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 Brokers

    ACTIVEMQ_HOST='192.168.59.163:61613,192.168.59.147:61613'
  9. 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 the MCOLLECTIVE_CONFIG parameter overrides the ACTIVEMQ_HOST and ACTIVEMQ_PORT parameters in this file, the ACTIVEMQ_USERNAME and ACTIVEMQ_PASSWORD parameters in this file are still used by the routing plug-in and must be set.
  10. Restart the broker service:
    # service openshift-broker restart
Red Hat logoGithubRedditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.