Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Branch: master
Fetching contributors…

Cannot retrieve contributors at this time

74 lines (47 sloc) 2.25 KB


Squiggle is a squiggly Puppet API wrapper.

It's named in honour of Mr Squiggle


Install Mr Squiggle via Miss Jane or via Rubygems:

gem install squiggle

You can also get the source from


Squiggle has five configuration variables:          # default: localhost
Squiggle.port          # default: 8140
Squiggle.scheme        # default: https
Squiggle.key           # default: nil
Squiggle.cert          # default: nil
Squiggle.cacert        # default: nil

You will need the key, certificate from an authenticated Puppet client (or authenticate your client as a Puppet client) and the CA cert from the Puppet master you are connecting to.

You will need to ensure your /etc/puppet/auth.conf file allows the appropriate access from that client to the API path you wish to access. You can see details on the auth.conf file here.

To connect to a Puppet master at = ""
Squiggle.port = "8140"
Squiggle.scheme = "https"
Squiggle.key = "/path/to/key.pem"
Squiggle.cert = "/path/to/cert.pem"
Squiggle.cacert = "/path/to/ca_crt.pem"

You can also use the squiggle.setup block if you prefer this style:

Squiggle.setup do |s| = ""
  s.port = "5000"
  s.scheme = "https"
  s.key = "/path/to/key.pem"
  s.cert = "/path/to/cert.pem"
  s.cacert = "/path/to/ca_crt.pem"

After you have configured Squiggle, we need to create a connection:


If you want to reset your configiuration to their default values:



Setting up Squiggle and running Squiggle.connect! creates a connection object that can then be used to send requests to your Puppet master, accessed via Squiggle.connection.

For example to return the CA certificate:


You can see details of the Puppet REST API here.


Copyright (c) 2010 James Turnbull. See LICENSE.txt for further details.

Jump to Line
Something went wrong with that request. Please try again.