Meet RubyMine, the new Puppet IDE on the block

Puppet modules are designed to be self-contained bundles of code, wrapping up into a single package all the classes, files, and templates having to do with any one component. This means that the Puppet Apache module will manage only Apache, and the MySQL module will manage only MySQL.

But a lot of components have dependencies. For example, many modules will reuse resources from the puppetlabs-firewall module to create rules allowing network access, or they'll use resources from puppetlabs-concat to build configuration files. That's traditionally made it a little difficult to manage your development environment, since each module needed access to all of its dependencies for testing, and it's left up to you, the programmer, to go look up the documentation for each resource type you want to use.

Image courtesy of the RubyMine blog.

JetBrains is changing that with their recently announced RubyMine 2017.1 EAP release, containing a new feature, Puppet Project Structure. (RubyMine, in case you don't know about it already, is a Ruby and Rails integrated development environment (IDE).) The new dependency management features allow you to install the proper version of each dependency of your module using the existing metadata.json file inside a module or the Puppetfile in an environment, and then use the resource types within the dependencies to provide intelligent code completion as you work.

This uses the open source librarian-puppet tool, which manages all dependencies recursively, so it will minimize the administrivia headaches you must deal with. Head on over to the JetBrains blog and read Artem Sarkisov's post about the new release, or just sign up for the early access program and try out Puppet Project Structure for yourself.

Ben Ford is a principal training solutions engineer at Puppet.

Learn more

Puppet sites use proprietary and third-party cookies. By using our sites, you agree to our cookie policy.