summaryrefslogtreecommitdiffstats
path: root/modules/metabase/manifests/init.pp
blob: f4e9e3884e9e7076033f7902f0b1870743dded69 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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
class metabase {
  include postgres
  include systemd

  $metabase_version = "v0.33.0"

  package { "jre-openjdk-headless":
    ensure => installed;
  }

  group { "metabase":
    ensure => present;
  }

  user { "metabase":
    ensure => present,
    gid => "metabase",
    system => true,
    require => Group["metabase"];
  }

  file {
    "/opt/metabase":
      ensure => directory;
    "/media/persistent/metabase":
      ensure => directory,
      owner => 'metabase',
      group => 'metabase',
      require => [
        User['metabase'],
        Group['metabase'],
      ];
    "/usr/lib/systemd/system/metabase.service":
      source => "puppet:///modules/metabase/metabase.service",
      notify => Exec["/usr/bin/systemctl daemon-reload"];
  }

  exec { "download metabase":
    provider => shell,
    command => "curl -LO http://downloads.metabase.com/${metabase_version}/metabase.jar",
    cwd => "/opt/metabase",
    creates => "/opt/metabase/metabase.jar",
    require => File["/opt/metabase"];
  }

  exec { "create metabase db user":
    provider => shell,
    command => "createuser -d metabase",
    user => 'postgres',
    unless => "psql -Atc 'select usename from pg_catalog.pg_user' | grep -F metabase",
    require => [
      Package["postgresql"],
      Service["postgresql"],
    ];
  }

  exec { "create metabase application db":
    provider => shell,
    command => "createdb -U metabase metabase",
    user => 'postgres',
    unless => "psql -Atc 'select datname from pg_catalog.pg_database' | grep -F metabase",
    require => [
      Exec["create metabase db user"],
      Package["postgresql"],
      Service["postgresql"],
    ];
  }

  service { "metabase":
    ensure => running,
    enable => true,
    require => [
      Package["jre-openjdk-headless"],
      File["/usr/lib/systemd/system/metabase.service"],
      File["/media/persistent/metabase"],
      Exec["download metabase"],
      Exec["create metabase db user"],
      Exec["create metabase application db"],
    ];
  }
}