diff --git a/manifests/site.pp b/manifests/site.pp index a9e1423a..d876dedf 100644 --- a/manifests/site.pp +++ b/manifests/site.pp @@ -1,188 +1,188 @@ node 'louvre.internal.softwareheritage.org' { include role::swh_server } node /^(orsay|beaubourg|hypervisor\d+|branly)\.(internal\.)?softwareheritage\.org$/ { include role::swh_hypervisor } node 'pergamon.softwareheritage.org' { include role::swh_sysadmin include profile::export_archive_counters } node 'tate.softwareheritage.org' { include role::swh_forge } node 'moma.softwareheritage.org' { include role::swh_api } node 'webapp0.softwareheritage.org' { include role::swh_base_api } node 'saatchi.internal.softwareheritage.org' { include role::swh_scheduler } node /^(belvedere|somerset).(internal.)?softwareheritage.org$/ { include role::swh_database include profile::pgbouncer } node 'banco.softwareheritage.org' { include role::swh_backup include role::postgresql_backup } node /^esnode\d+.(internal.)?softwareheritage.org$/ { include role::swh_elasticsearch } node /^zookeeper\d+.(internal.)?softwareheritage.org$/ { include role::swh_zookeeper } node /^kafka\d+\./ { include role::swh_kafka_broker } node /^cassandra\d+\./ { include role::swh_cassandra_node } node 'granet.internal.softwareheritage.org' { include role::swh_graph_backend } node /^(unibo-test).(internal.)?softwareheritage.org$/ { include role::swh_vault_test } node /^(unibo-prod|vangogh).(euwest.azure.)?(internal.)?softwareheritage.org$/ { include role::swh_vault } node /^uffizi\.(internal\.)?softwareheritage\.org$/ { include role::swh_storage_baremetal } node 'storage01.euwest.azure.internal.softwareheritage.org' { include role::swh_storage_cloud } node 'storage02.euwest.azure.internal.softwareheritage.org' { include role::swh_storage_cassandra } node /^getty.(internal.)?softwareheritage.org$/ { include role::swh_journal_orchestrator } node /^worker\d+\.(internal\.)?softwareheritage\.org$/ { include role::swh_worker_inria } node /^worker\d+\..*\.azure\.internal\.softwareheritage\.org$/ { include role::swh_worker_azure } node /^dbreplica(0|1)\.euwest\.azure\.internal\.softwareheritage\.org$/ { include role::swh_database } node /^ceph-osd\d+\.internal\.softwareheritage\.org$/ { include role::swh_ceph_osd } node /^ceph-mon\d+\.internal\.softwareheritage\.org$/ { include role::swh_ceph_mon } node /^ns\d+\.(.*\.azure\.)?internal\.softwareheritage\.org/ { include role::swh_nameserver_secondary } node 'thyssen.internal.softwareheritage.org' { include role::swh_ci_server } node 'riverside.internal.softwareheritage.org' { include role::swh_sentry } node /^jenkins-debian\d+\.internal\.softwareheritage\.org$/ { include role::swh_ci_agent_debian } node 'logstash0.internal.softwareheritage.org' { include role::swh_logstash_instance } node 'kibana0.internal.softwareheritage.org' { include role::swh_kibana_instance } node 'kelvingrove.internal.softwareheritage.org' { include role::swh_idp_primary } node 'giverny.softwareheritage.org' { include role::swh_desktop } node 'db0.internal.staging.swh.network' { include role::swh_base_database include profile::postgresql::server include profile::pgbouncer - include ::profile::devel::postgres + include profile::postgresql::client } node 'scheduler0.internal.staging.swh.network' { include role::swh_scheduler - include ::profile::devel::postgres + include profile::postgresql::client } node 'gateway.internal.staging.swh.network' { include role::swh_gateway } node 'storage0.internal.staging.swh.network' { include role::swh_base_storage - include ::profile::devel::postgres + include profile::postgresql::client } node /^worker\d\.internal\.staging\.swh\.network$/ { include role::swh_worker_inria } node 'webapp.internal.staging.swh.network' { include role::swh_base_api include profile::network } node 'deposit.internal.staging.swh.network' { include role::swh_deposit include profile::postgresql::server include profile::pgbouncer - include ::profile::devel::postgres + include profile::postgresql::client } node 'vault.internal.staging.swh.network' { include role::swh_vault } node 'journal0.internal.staging.swh.network' { include role::swh_journal_allinone } node 'bojimans.internal.softwareheritage.org' { include role::swh_netbox } node default { include role::swh_base } diff --git a/site-modules/profile/manifests/devel/postgres.pp b/site-modules/profile/manifests/devel/postgres.pp index b27d8afc..816ad62a 100644 --- a/site-modules/profile/manifests/devel/postgres.pp +++ b/site-modules/profile/manifests/devel/postgres.pp @@ -1,36 +1,8 @@ +# Profile to install development postgresql packages class profile::devel::postgres { $packages = lookup('packages::devel::postgres', Array, 'unique') package { $packages: ensure => present, } - - $dbs = lookup('swh::postgres::service::dbs', Array, 'deep') - - # Explicitly install the configuration files per user's home - # TL;DR the pgpass must be readonly per user so we can't use the global one - $users = lookup('swh::postgres::service::users', Array, 'deep') - each ($users) | $user | { - if $user == 'root' { - $home = '/root' - } else { - $home = "/home/${user}" - } - - file {"${home}/.pg_service.conf": - ensure => file, - content => template('profile/postgres/pg_service.conf.erb'), - owner => $user, - group => $user, - mode => '0400', - } - file {"${home}/.pgpass": - ensure => file, - content => template('profile/postgres/pgpass.conf.erb'), - owner => $user, - group => $user, - mode => '0400', - } - } - } diff --git a/site-modules/profile/manifests/postgresql/client.pp b/site-modules/profile/manifests/postgresql/client.pp index 87671fb1..8a8cec5a 100644 --- a/site-modules/profile/manifests/postgresql/client.pp +++ b/site-modules/profile/manifests/postgresql/client.pp @@ -1,7 +1,38 @@ class profile::postgresql::client { include profile::postgresql::apt_config package { 'postgresql-client': ensure => present, } + + # This part installs per user the postgresql client files ~/.pg_service.conf + # and ~/.pgpass https://intranet.softwareheritage.org/wiki/Databases + $dbs = lookup('swh::postgres::service::dbs', Array, 'deep') + + # Explicitly install the configuration files per user's home + # TL;DR the pgpass must be readonly per user so we can't use the global one + $users = lookup('swh::postgres::service::users', Array, 'deep') + each ($users) | $user | { + if $user == 'root' { + $home = '/root' + } else { + $home = "/home/${user}" + } + + file {"${home}/.pg_service.conf": + ensure => file, + content => template('profile/postgres/pg_service.conf.erb'), + owner => $user, + group => $user, + mode => '0400', + } + file {"${home}/.pgpass": + ensure => file, + content => template('profile/postgres/pgpass.conf.erb'), + owner => $user, + group => $user, + mode => '0400', + } + } + }