Meet RubyMine, the New Puppet IDE on the Block

DZone 's Guide to

Meet RubyMine, the New Puppet IDE on the Block

The RubyMine IDE is now available to help you automatically manage module dependencies within your Puppet module project.

· Integration Zone ·
Free Resource

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.

However, 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 title

RubyMine automatically manages module dependencies within your Puppet module project. Image courtesy of the RubyMine blog.

JetBrains is changing that with their recently announced RubyMine 2017.2 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.)

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. 

puppet ,ide ,integration ,rubymine

Published at DZone with permission of Ben Ford , DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}