Some features to improve quality in your Puppet development, such as puppet-lint, puppet-rspec, and commands such as puppet module create have been around for some time, but previously, you had to discover these tools out there in the wild, install them, and figure out how to use them effectively yourself.
Puppet decided back in August 2017 to bring these things all together on the client side and make them a breeze to use with the new Puppet Development Kit version 1.0. I can certainly recall puppet-rspec always took some time to set up and get working correctly. Now it's all really easy.
Let's take a whistle-stop tour of the module development process using the new PDK 1.0.
- Creating the module framework and metadata: The pdk new module command runs in the same way as the old puppet module create command, as follows:
$ pdk new module zope –-skip-interview
- Creating the init.pp: There is now a set of creation commands for manifests inside modules, as follows:
- pdk new class (https://puppet.com/docs/pdk/1.0/pdk_reference.html#pdk-new-class-command)
- pdk new defined_type (https://puppet.com/docs/pdk/1.0/pdk_reference.html#pdk-new-definedtype-command)
- pdk new task (https://puppet.com/docs/pdk/1.0/pdk_reference.html#pdk-new-task-command)—see Chapter 6, Workflow, for more details on the new Puppet task functionality.
So, just use the name of the module to create init.pp:
$ pdk new class zope
These commands now negate any need for snippets in your text editor to create the comments, declarations, and other boilerplate code.
- Creating further classes: Create any further classes using the same command. See the following example:
$ pdk new class params