Puppet Class: foreman::database

Defined in:
manifests/database.pp

Overview

Class: foreman::database

Parameters

db_name

Type: String Default: ‘foreman’

The name of the Foreman database that will be created.

db_uesr

Type: String/Username Default: ‘foreman’

The name of the user who will access this database.

db_password

Type: String Default: ”

The (optional) password for the Foreman database.

Authors

  • Kendall Moore <kmoore@keywcorp.com>

Parameters:

  • db_user (Any) (defaults to: 'foreman')
  • development_database (Any) (defaults to: '')
  • development_password (Any) (defaults to: '')
  • log_level (Any) (defaults to: 'WARN')
  • production_database (Any) (defaults to: 'foreman')
  • production_password (Any) (defaults to: '')
  • test_database (Any) (defaults to: '')
  • test_password (Any) (defaults to: '')


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
# File 'manifests/database.pp', line 27

class foreman::database (
  $db_user              = 'foreman',
  $development_database = '',
  $development_password = '',
  $log_level            = 'WARN',
  $production_database  = 'foreman',
  $production_password  = '',
  $test_database        = '',
  $test_password        = ''
) {
  include '::postgresql::client'
  include '::postgresql::server'
  include '::foreman::database::install'

  file { '/etc/foreman/database.yml':
    ensure  => 'present',
    owner   => 'root',
    group   => 'foreman',
    mode    => '0640',
    content => template('foreman/etc/foreman/database.yml.erb')
  }

  $_production_password = empty($production_password) ? {
    ''      => false,
    default => postgresql_password($db_user, $production_password),
  }
  postgresql::server::db { $production_database:
    user     => $db_user,
    password => $_production_password,
    owner    => $db_user,
  }
  ~>
  foreman::rake { 'db:migrate': } ~> foreman::rake { 'db:seed': } ~> foreman::rake { 'apipie:cache': }

  if !empty($development_database) {
    $_development_password = empty($development_password) ? {
      ''      => false,
      default => postgresql_password($db_user, $development_password),
    }
    postgresql::server::db { $development_database:
      user     => $db_user,
      password => $_development_password,
      owner    => $db_user,
    }
  }

  if !empty($test_database) {
    $_test_password = empty($test_password) ? {
      ''      => false,
      default => postgresql_password($db_user, $test_password),
    }
    postgresql::server::db { $test_database:
      user     => $db_user,
      password => $_test_password,
      owner    => $db_user,
    }
  }

  Postgresql::Server::Role[$db_user] -> Postgresql::Server::Database[$production_database]
}