Robert scratched his head. How would he get a Puppet class to manage a complex resource on his systems? I guess I’ll have to make a Custom Type, he thought. But last time I looked into that, I noticed you need to know a lot about Puppet Internals.
If you recognize this thought process, easy_type is for you. Like the name says, easy type is designed to make it easy to build a Custom Puppet Type.
Check this blog post for a tutorial on using
Check the rdoc documentation for easy_type
To get started, you first need to install the
$ puppet module install hajee/easy_type
Custom types need to be part of a module. So we need to have a module. You can create a module with the
puppet module tool
$ puppet module generate robert/test_module
Creating a scaffold of your type
You can use
easy_type to create your custom type scaffold.
$ cd robert-test_module $ puppet type scaffold easy_type my_type --force
This command creates a scaffold for you. The first parameter
easy_type specfies the type of custom type you are creating. At this point in time
--force creates any directories required en overwrites any existing files. We use it in this example because the
lib/puppet directory is not yet created.
Add a property
A custom type without a property is not very useful. So we need to create a property:
$ puppet type generate property my_property my_type
Edit your custom type
You can edit the code in
lib/puppet/types/my_type.rb and the ruby files in
Spread the word
If you like easy_type, You can spread the word by adding a badge to the README.md file of your newly created type.
[![Powered By EasyType](https://raw.github.com/hajee/easy_type/master/powered_by_easy_type.png)](https://github.com/hajee/easy_type)
This will look like this:
Bert Hajee hajee@moretIA.com
Please log tickets and issues at our Projects site