Puppet-Gitlab-PostgreSQL-Konflikt

Puppet-Gitlab-PostgreSQL-Konflikt

Ich versuche, eine VM mit PostgreSQL und Gitlab einzurichten. Ich verwende die folgenden Pakete: gitlabundpostgresql

Dies ist meine init.pp

class { 'postgresql::server':
  ip_mask_deny_postgres_user => '0.0.0.0/32',
  ip_mask_allow_all_users    => '0.0.0.0/0',
  listen_addresses           => '*',
  ipv4acls                   => ['host all johndoe 10.1.1.0/24 cert'],
  manage_firewall            => true,
  postgres_password          => 'TPSrep0rt!',
}

class { 
  'gitlab':
    git_email         => '[email protected]',
    git_comment       => 'GitLab Performates',
    gitlab_domain     => 'gitlab.foobar.fr',
    gitlab_dbtype     => 'pgsql',
    gitlab_dbname     => 'gitlab',
    gitlab_dbuser     => 'gitlab',
    gitlab_dbpwd      => 'gitlab',
    ldap_enabled      => false,
}

fast aus den Beispielen kopiert

Aber wenn ich versuche, meine VM bereitzustellen, erhalte ich immer

Error: Duplicate declaration: Package[postgresql-client] is already declared; cannot redeclare at /etc/puppet/modules/postgresql/manifests/client.pp:12 on node

Ich verweise nur darauf postgresql::serverund Gitlab stellt sicher, dass postgresql-clientes installiert ist, also beschwert es sich?

Antwort1

Das Problem hierbei ist, dass Sie in Puppet nicht zwei Ressourcen mit demselben Namen definieren können.

Das PostgreSQL-Modul definiert das Paket['postgresql-client'] hier:https://github.com/puppetlabs/puppetlabs-postgresql/blob/master/manifests/client.pp#L8

Und GitLab hier:https://github.com/sbadia/puppet-gitlab/blob/master/manifests/setup.pp#L52

Da GitLab dieensure_packagesFunktion vonstdlib, dies sollte funktionieren, wenn Postgres vor Gitlab geladen wird, aber mit Puppet stellen Sie die Reihenfolge des Modulladens nicht sicher (heh, Entschuldigung).

Eine geeignete Lösung wäre, ensure_packageses auch im PostgreSQL-Modul zu verwenden. Sie können es entweder lokal patchen oder die Doppeldefinition umgehen, indem Sie eine der postgresql-clientPaketdefinitionen entfernen.

verwandte Informationen