Add puppetdb to a new puppetdb host

This brings in the puppetdb module via install_modules.sh and
creates a new class, openstack_project::puppetdb. It was modeled
on openstack_project::puppetmaster. Note that this will not enable
puppetdb to participate in the Puppet ecosystem yet. An additional
class will have to be added to the master:

  class { 'puppetdb::master::config':
    puppetdb_server => 'puppetdb',
  }

I will leave this out of this change so we can bring up puppetdb in
stages.

This paves the way for puppetboard to be brought online.

Change-Id: I8194372bd31e08f12a815fd04dcdf338565ed911
This commit is contained in:
Spencer Krum 2014-02-15 14:54:03 -08:00
parent 3de606ff8a
commit 04b114ba82
3 changed files with 46 additions and 1 deletions

View File

@ -42,11 +42,14 @@ MODULES["puppetlabs-apache"]="0.0.4"
MODULES["puppetlabs-apt"]="1.1.0"
MODULES["puppetlabs-haproxy"]="0.4.1"
MODULES["puppetlabs-mysql"]="0.6.1"
MODULES["puppetlabs-postgresql"]="3.0.0"
MODULES["puppetlabs-postgresql"]="3.1.0"
MODULES["puppetlabs-stdlib"]="3.2.0"
MODULES["saz-memcached"]="2.0.2"
MODULES["spiette-selinux"]="0.5.1"
MODULES["rafaelfc-pear"]="1.0.3"
MODULES["puppetlabs-inifile"]="1.0.0"
MODULES["puppetlabs-firewall"]="0.0.4"
MODULES["puppetlabs-puppetdb"]="3.0.1"
MODULE_LIST=`puppet module list`

View File

@ -214,6 +214,12 @@ node 'ci-puppetmaster.openstack.org' {
}
}
node 'puppetdb.openstack.org' {
class { 'openstack_project::puppetdb':
sysadmins => hiera('sysadmins'),
}
}
node 'graphite.openstack.org' {
class { 'openstack_project::graphite':
sysadmins => hiera('sysadmins'),

View File

@ -0,0 +1,36 @@
# == Class: openstack_project::puppetdb
#
class openstack_project::puppetdb (
$sysadmins = [],
) {
# The puppetlabs postgres module does not manage the postgres user
# and group for us. Create them here to ensure concat can create
# dirs and files owned by this user and group.
user { 'postgres':
ensure => present,
gid => 'postgres',
system => true,
require => Group['postgres'],
}
group { 'postgres':
ensure => present,
system => true,
}
class { 'openstack_project::server':
iptables_public_tcp_ports => [8081],
sysadmins => $sysadmins,
}
class { 'puppetdb::database::postgresql':
require => [User['postgres'], Class['openstack_project::base'],],
}
class { '::puppetdb::server':
database_host => 'localhost',
require => [ User['postgres'], Class['puppetdb::database::postgresql'],],
}
}