Scaling Puppet Enterprise – Part IV – ActiveMQ Hub and Spokes
As in the previous installment, you need to have already completed a few steps before arriving at this post. You should have already completed a “split installation” (Documented here). Also, your load balancer needs to be configured and running. The procedure for this portion can be found here. Finally, you should have the additional compilers installed and configured along with two example agent nodes as covered here and here.. If you’ve completed all these portions, you are now ready to configure ActiveMQ for scaling MCollective.
Once the preceding items are performed, you may find it necessary to add ActiveMQ hubs and spokes to increase capacity for MCollective and/or the Code Sync and Code Manager functions of Puppet Enterprise. This installment documents how to install these additional components and tie them into the existing infrastructure.
Create an ActiveMQ Hub
- Go to the Puppet Enterprise Console in your browser.
- Select Nodes | Classification and create a new group called “PE ActiveMQ Hub”
- Stand up two new nodes for the ActiveMQ Hub and Spoke (in our example, activemq-hub.example.com and activemq-spoke.example.com) according to the following specifications:
Once your nodes have been provisioned, install the Puppet Agent on each node, making sure to point the installer DIRECTLY at the MoM (master.example.com**) instead of at the compiler VIP.
curl -k https://master.example.com:8140/packages/current/install.bash | bash
and let the agent install complete in its entirety.
Next, from your browser, retrieve the Puppet Enterprise Console and select the “PE ActiveMQ Hub” group you created earlier. Pin the activemq-hub.example.com node into the PE ActiveMQ Hub group.
- Select the “Classes” tab and add a new class entitled: “puppet_enterprise::profile::amq::hub“
- Click “Add Class“.
- Under the Parameters drop-down, select “network_collector_spoke_collect_tag” and set its value to “pe-amq-network-connectors-for-activemq-hub.example.com“
- Commit the changes.
- SSH to the activemq-hub.example.com and run puppet agent -t to make all your changes effective for the Hub node.
Create ActiveMQ Spoke (or “broker”)
- In the Puppet Enterprise Console, Select Nodes | Classification | PE ActiveMQ Broker
- Pin your new ActiveMQ broker into the PE ActiveMQ Broker group.
- Select the “Classes” tab.
- Under the puppet_enterprise::profile::amp::broker class, choose the activemq_hubname parameter and set it to the FQDN of the hub you just created. In our case, activemq-hub.example.com.
- SSH to the new broker (activemq-spoke.example.com) and run puppet agent -t.
- Finally, unpin master.example.com from the PE ActiveMQ Broker group.
At this point, you should have:
- Puppet Master of Masters – master.example.com
- PuppetDB – puppetdb.example.com
- PE Console – console.example.com
- HAProxy Node – compiler.example.com
- 2 Catalog compilers – compile1.example.com and compile2.example.com
- An ActiveMQ Hub – activemq-hub.example.com
- An ActiveMQ Spoke – activemq-spoke.example.com
- Two Agent Nodes – agent1.example.com and agent2.example.com
with their respective configurations. Your serving infrastructure is complete, and you are now ready to configure it for use.