On our puppet master we are not able to use the puppetlabs provided rpm’s, instead we are installing puppet via ruby gems. Reason being that we run the puppet master under passenger with ruby 1.9.3 (installed via RedHat SCL).

Today I’ve updated our master to 3.6.2 / puppetdb 1.6.3 and hit a major road block:

You need the package/gem puppetdb-terminus, which matches the version of puppetdb. So if you would like to run puppetdb 1.6.3, you also need puppetdb-terminus 1.6.3. But there’s only a rpm package available, the ruby gem is still at version 1.0.0.

This is what i did to manually create the puppetdb-terminus gem in the right version:

$ curl -O http://downloads.puppetlabs.com/puppetdb/puppetdb-1.6.3.tar.gz
$ tar zxvf puppetdb-1.6.3
$ cd puppetdb-1.6.3/ext/master

Drop the following gemspec file into the folder (puppetdb-terminus.gem):

Gem::Specification.new do |s|
  s.name        = 'puppetdb-terminus'
  s.version     = '1.6.3'
  s.summary     = 'PuppetDB is a Puppet data warehouse; it manages storage and retrieval of all platform-generated data, such as catalogs, facts, reports'
  s.description = 'Centralized Puppet Storage'
  s.authors     = ['Puppetlabs']
  s.email       = 'puppet@puppetlabs.com'
  s.files       = Dir['lib/**/*']
  s.license     = 'Apache-2.0'
  s.homepage    = 'https://github.com/puppetlabs/puppetdb'
end

and finally create the gem:

$ gem build puppetdb-terminus.gem

you are now able to install the gem via

$ gem install puppetdb-terminus-1.6.3.gem