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
82
83
84
|
class metabase {
include postgres
include systemd
# when updating this value, also rm /opt/metabase/metabase.jar
$metabase_version = "v0.41.5"
# move back to jre-openjdk-headless once metabase supports java 15?
package { "jre11-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'],
];
}
systemd::service { "metabase":
source => "puppet:///modules/metabase/metabase.service",
}
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["jre11-openjdk-headless"],
Systemd::Service["metabase"],
File["/media/persistent/metabase"],
Exec["download metabase"],
Exec["create metabase db user"],
Exec["create metabase application db"],
];
}
}
|