Puppet Module to Install StackStorm – Announcing Release Candidate

January 4, 2018
By Nick Maludy of Encore Technologies

So far StackStorm has multiple installation methods: deb/rpm packages, curl|bash installer used for simple deployments, Docker, Ansible, Chef.

Now it’s Puppet time!

Starting in July of 2017 a major effort has been underway to modernize the Puppet module to install/deploy StackStorm. In August of 2017 v1.0.0-beta was released with completely re-worked internals to support the new StackStorm deb/rpm package installation method and fix a large number of bugs. Since the beta we’ve continued development of new features like supporting all 4 StackStorm OSes, Puppet 4 and 5 compatibility, ChatOps installation and configuration, modernized pack management, full integration testing in Docker containers along with a slew of Puppet best practices improvements.

Today we’re proud to announce the Release Candidate version v1.0.0-rc of the stackstorm-st2 Puppet module which is available on Forge.


https://forge.puppet.com/stackstorm/st2

Our plan is to release v1.0.0 stable in the coming weeks, but in order to do this we need your help. We ask everyone who is interested in Puppet-based deployment to give the module a try and provide your feedback!

Keep reading to find out more details about what’s changed and where the project is heading.

Modernization Improvements

  • Support latest versions of StackStorm. Prior to 1.0.0-beta the module was designed around the legacy deployment system. This has been upgraded to the modern package deployment methodology. These changes were ported over.

  • Support all StackStorm OSes (Ubuntu 14.04, Ubuntu 16.06, CentOS/RHEL 6, CentOS/RHEL 7). Previously the module was not running properly on several of the distributions. A great deal of work has gone into making the module cross-platform compatible.

  • Puppet linting and best practices. Upgraded the style of a majority of the code to validate against modern puppet-lint tests.

  • Integration testing. New in 1.0.0-rc, we’ve gone and completely rewritten the build system to run in an several isolated Docker environments. This means that every time a build is triggered, stackstorm/st2 is used to install StackStorm on every supported OS version.

  • Support for Puppet 4.x and Puppet 5.x. New in 1.0.0-rc. Tied into the integration testing effort, we’ve also introduced tests for running the module with modern versions of Puppet.

What Else Has Changed

Some highlights of changes since v1.0.0-beta:

  • Migrated to voxpupuli puppet/rabbitmq module and puppet/mongodb modules.

  • Upgraded NodeJS to 6.x when installing StackStorm >= 2.4.0.

  • Upgraded MongoDB to 3.4 when installing StackStorm >= 2.4.0.

  • New type and provider for managing st2 packs: st2_pack.

  • Added new parameter index_url to ::st2 allowing custom st2 Exchange

  • Added a new class st2::profie::chatops to manage the chatops package, service and configuration.

  • Added new parameters mongodb_manage_repo and nginx_manage_repo to ::st2 so that the repository can be managed by an external system and not the stackstorm-st2 module.

  • Added Slack notifications to https://stackstorm-community.slack.com #puppet for Travis build failures.

Future Ideas

That’s where we’ve been, here’s some ideas of where we’re going:

  • Support for all auth backends (MongoDB, PAM, LDAP, etc).

  • Improve unit testing coverage.

  • Integration testing verification using InSpec or Serverspec.

  • Splitting ::st2::profile::server into component services.

  • High Availability support.

How Can You Get Started?

We’ve focused on making getting started with the stackstorm-st2 module as simple as possible. Just include the full install class in your manifest for a node and you’re on your way!

include ::st2::profile::fullinstall

This will install StackStorm and all it dependencies!

If you’re using r10k or librarian-puppet to manage your module dependencies, you can reference our Puppetfile for your distribution:

For more info, checkout the README.

Participation

The stackstorm-st2 module welcomes any and all contributions (including bug reports)!

If you’re curious how you can help, check out our issues list, or drop by the #puppet channel questions in our public Slack workspace. We’re always looking for new and exciting ideas for how we can make StackStorm and its supporting projects like the stackstorm/st2 Puppet module better, so don’t be shy!

Thanks

A very big thank you goes out to all those who’ve contributed code to this release!

P.S.
From the StackStorm side, we want to thank our partners from Encore Technologies, particularly Nick Maludy for taking the lead with the Puppet Module github.com/StackStorm/puppet-st2. As an advanced user, you know best what’s needed from StackStorm deployment & configuration and contribute to that.
That’s the power of Open Source!