Puppet type/provider for (limited) yaml setting manipulation as resources
Ruby Puppet
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib/puppet Add 'boolean' type support Nov 8, 2013
.gitignore
LICENSE.txt Add LICENSE file, Apache 2.0 Nov 2, 2016
Modulefile
README.md Add README for yamlfile Feb 11, 2013

README.md

yamlfile

yamlfile module with yaml_setting type+provider, a la Chris Price’ inifile module / ini_setting type+provider

This is an experimental utility module allowing for more dynamic configuration of the myriad of yaml files used to configure various yaml-configured ruby applications with finer grained control than templates would easily allow.

A rapid prototype provider is included built using Adrien Thebo’s filemapper utility module. It won’t account for comments but it mostly works.

Usage

The type interface is probably the hardest part and is largely a design question. The prototype says screw it, K.I.S.S., and assumes hashes are the most common thing to be dealing with for yaml configuration files. As such a pair of resources given as:

yaml_setting { 'example1_1':
  target => '/tmp/example1.yaml',
  key    => 'value/subkey/final',
  value  => ['one', 'two', 'three'],
}
yaml_setting { 'example1_2':
  target => '/tmp/example1.yaml',
  key    => 'value/subkey/other':
  value  => 'string',
}

should result in a file e.g. /tmp/example1.yaml:

value:
  subkey:
    final:
      - one
      - two
      - three
    other: string

Known Issues

Right now the type design doesn't allow for ruby symbols to be used as keys.

There are no tests.