summaryrefslogtreecommitdiffstats
path: root/modules/metabase/manifests/init.pp
blob: 07c6079d0051b37d0d15649af8b1d4a84d150337 (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
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;
    "/opt/metabase/run":
      ensure => directory;
    "/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",
    user => 'metabase',
    cwd => "/opt/metabase",
    creates => "/opt/metabase/metabase.jar",
    require => [
      User["metabase"],
      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 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 db user"],
      Package["postgresql"],
      Service["postgresql"],
    ];
  }

  service { "metabase":
    ensure => running,
    require => [
      Package["metabase"],
      File["/usr/lib/systemd/system/metabase.service"],
    ]
  }
}