From 68d5b1ff1b835df8d127996e4e55596612a741a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20M=E4kinen?= Date: Thu, 25 Apr 2013 00:33:45 +0300 Subject: [PATCH] Initial version of postgresql module. --- postgresql/manifests/init.pp | 79 ++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 postgresql/manifests/init.pp diff --git a/postgresql/manifests/init.pp b/postgresql/manifests/init.pp new file mode 100644 index 0000000..3bf7916 --- /dev/null +++ b/postgresql/manifests/init.pp @@ -0,0 +1,79 @@ + +# Install PostgreSQL client +# +class postgresql::client { + + package { "postgresql": + ensure => installed, + } + +} + + +# Install PostgreSQL server +# +# === Parameters: +# +# $datadir: +# Data directory for databases. +# +class postgresql::server($datadir="/srv/pgsql") { + + case $::operatingsystem { + "centos","redhat": { + file { "/etc/sysconfig/pgsql/postgresql": + ensure => present, + content => "PGDATA=/srv/pgsql\n", + mode => "0644", + owner => "root", + group => "root", + require => Package["postgresql-server"], + notify => Service["postgresql"], + } + } + default: { + fail("postgresql::server not supported in ${::operatingsystem}") + } + } + + exec { "service postgresql initdb": + user => "root", + path => "/bin:/usr/bin:/sbin:/usr/sbin", + creates => "/srv/pgsql/postgresql.conf", + require => File["/srv/pgsql"], + before => Service["postgresql"], + } + + if $datadir != "/srv/pgsql" { + file { $datadir: + ensure => directory, + mode => "0700", + owner => "postgres", + group => "postgres", + } + file { "/srv/pgsql": + ensure => link, + target => $datadir, + owner => "root", + group => "root", + require => File[$datadir], + } + } else { + file { "/srv/pgsql": + ensure => directory, + mode => "0700", + owner => "postgres", + group => "postgres", + } + } + + package { "postgresql-server": + ensure => installed, + } + + service { "postgresql": + ensure => running, + enable => true, + } + +}