conflicto títere gitlab postgresql

conflicto títere gitlab postgresql

Estoy intentando configurar una máquina virtual con postgresql y gitlab. Estoy usando los siguientes paquetes: gitlab&postgresql

Este es mi 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,
}

casi copiado de los ejemplos

Pero cuando intento aprovisionar mi VM siempre obtengo

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

Solo estoy haciendo referencia a postgresql::servergitlab y se asegura de que postgresql-clientesté instalado, así que ¿te quejas?

Respuesta1

El problema aquí es que no puedes definir dos recursos con el mismo nombre en Puppet.

El módulo PostgreSQL define el Paquete['postgresql-client'] aquí:https://github.com/puppetlabs/puppetlabs-postgresql/blob/master/manifests/client.pp#L8

Y GitLab aquí:https://github.com/sbadia/puppet-gitlab/blob/master/manifests/setup.pp#L52

Como GitLab usa elensure_packagesfunción debiblioteca estándar, esto debería funcionar si postgres se carga antes que gitlab, pero con Puppet no aseguras (je, lo siento) el orden de carga del módulo.

Una solución adecuada también sería usarla ensure_packagesen el módulo PostgreSQL. Puede parchear eso localmente o solucionar la doble definición eliminando una de las postgresql-clientdefiniciones del paquete.

información relacionada