Puppet

Usage

This plugin builds on top of deployment notification plugin and lets Puppet users track when/where/what files are deployed, and trigger other activities after deployments have happened. See deployment notification plugin for more details.

This plugin adds the ability to parse the YAML report format from Puppet. The easiest way to do this is to use the built-in HTTP reporter and have it sent to your Jenkins at '/puppet/report'. The APITOKEN is the API token of a valid Jenkins user:

$ puppet apply --reports http --reporturl=http://USER:APITOKEN@server/jenkins/puppet/report

With CSRF protection enabled, the above will fail because puppet will try to POST the content without proper crumb. So alternatively, you can use the jenkinstracking report processor from puppet-jenkinstracking module:

$ puppet apply --reports jenkinstrcking --reporturl=http://USER:APITOKEN@server/jenkins/

.. or use store report processor, which writes the YAML report as a file, and then send them over Jenkins SSH like this:

$ puppet apply --reports store --reportdir=/var/log/puppet
$ for f in (ls /var/log/puppet/*/*); do cat $f | ssh -p PORT user@jenkins submit-puppet-report && rm $f; done

Instead of Jenkins SSH, you can also use Jenkins CLI:

cat $f | java -jar jenkins-cli.jar -s http://server/jenkins/puppet/report submit-puppet-report

The latter two approach can be combined with remote file transfer, which would be convenient for deployments where these servers cannot see Jenkins due to the network topology.

Recognized resource type

This plugin currently tracks the use of file resources and pick up fingerprints from there automatically.

Our plan is to auto-recognize other resources where it makse sense, and also provide a custom puppet resource for recording fingerprints of arbitrary files.

Tracking files explicitly

If the resource type auto-recognition is insufficient and you want Jenkins to explicitly track fingerprints of specific files, use the tracking resource from puppet-jenkinstracking in your manifest like this:

track { '/usr/share/foo/foo.war'}

Changelog

Version 1.1 (Dec 21, 2015)

  • Improve logging for troubleshooting purposes
  • Puppet plugin compatible with deployment-notification-1.2
  • PuppetEvent support for the "Track" events
  • Add a Plugin name/description

Version 1.0 (Feb 17, 2014)

  • Initial release