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.