Puppet Class: pg_profile::database::db_init
- Inherits:
- pg_profile
- Defined in:
- manifests/database/db_init.pp
Summary
This class implements the steps to initialize the database for the foirst time.Overview
--
pg_profile::database::db_init
–++–
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'manifests/database/db_init.pp', line 21
class pg_profile::database::db_init(
Array[Stdlib::Absolutepath]
$data_dirs,
Array[Stdlib::Absolutepath]
$log_dirs,
Stdlib::Absolutepath
$data_dir,
Stdlib::Absolutepath
$log_dir,
) inherits pg_profile {
echo {'Ensure Postgres initial setup':
withpath => false,
}
easy_type::debug_evaluation() # Show local variable on extended debug
if $facts.dig('os','family') == 'RedHat' and $facts.dig('os','selinux','enabled') == true {
$data_dir_type = 'postgresql_db_t'
$log_dir_type = 'postgresql_log_t'
}
else {
$data_dir_type = undef
$log_dir_type = undef
}
#
# Create all data directories with correct settings
#
$data_dirs.each |$dir| {
unless defined(File[$dir]) {
file{$dir:
ensure => directory,
owner => $pg_profile::os_user,
group => $pg_profile::os_group,
seltype => $data_dir_type,
mode => '0700',
before => Exec['Initialize Postgres Database']
}
}
}
#
# Create all data directories with correct settings
#
$log_dirs.each |$dir| {
unless defined(File[$dir]) {
file{$dir:
ensure => directory,
owner => $pg_profile::os_user,
group => $pg_profile::os_group,
seltype => $log_dir_type,
mode => '0700',
before => Exec['Initialize Postgres Database']
}
}
}
exec { 'Initialize Postgres Database':
command => "/usr/pgsql-${pg_profile::version}/bin/initdb -D ${data_dir} -X ${log_dir}",
creates => "${data_dir}/PG_VERSION",
user => $pg_profile::os_user,
group => $pg_profile::os_group,
logoutput => 'on_failure',
}
pg_register { 'localhost':
os_user => $pg_profile::os_user,
database => 'postgres',
daemonized => false,
default => true,
}
}
|