Ich nutze das Puppetmodul puppetlabs/puppetdb um meine PuppetDB zu verwalten, dazu gehört folgendes Profil:
class profiles::puppetdb { class { '::puppetdb': listen_address => $::ipaddress_em1, java_args => { '-Xmx' => '8192m', '-Xms' => '2048m' }, node_ttl => '1d', node_purge_ttl => '1d', report_ttl => '999d', ssl_protocols => 'TLSv1.2', manage_firewall => false, manage_package_repo => true, ssl_listen_address => $::ipaddress_em1, postgres_version => '9.4', puppetdb_version => latest, } }
Dieses richtet das Postgres-eigene Repository ein und installiert Postgres daraus und nicht aus den normalen Quellen der Distribution. Daraus folgt allerdings folgende Warnung beim starten der PuppetDB:
2015-03-20 16:45:25,760 WARN Missing PostgreSQL extension `pg_trgm`
We are unable to create the recommended pg_trgm indexes due to
the extension not being installed correctly. Run the command:
CREATE EXTENSION pg_trgm;
as the database super user on the PuppetDB database to correct
this, then restart PuppetDB
Wenn man die Erweiterung Anlegen möchte kommt folgende Fehlermeldung:
postgres=# CREATE EXTENSION pg_trgm; ERROR: could not open extension control file "/usr/pgsql-9.4/share/extension/pg_trgm.control": No such file or directory postgres=#
Die Erweiterung pg_trgm muss man via
yum install postgresql94-contrib.x86_64
nachinstallieren, danach klappt auch das Anlagen der Erweiterung:
postgres=# CREATE EXTENSION pg_trgm; CREATE EXTENSION postgres=#
Nach einem Restart der Erweiterung ist die Änderung auch aktiv und wird von PuppetDB genutzt.