summaryrefslogtreecommitdiffstats
path: root/modules/metabase
diff options
context:
space:
mode:
Diffstat (limited to 'modules/metabase')
-rw-r--r--modules/metabase/files/metabase.service10
-rw-r--r--modules/metabase/manifests/init.pp74
2 files changed, 84 insertions, 0 deletions
diff --git a/modules/metabase/files/metabase.service b/modules/metabase/files/metabase.service
new file mode 100644
index 0000000..48fbd60
--- /dev/null
+++ b/modules/metabase/files/metabase.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=metabase
+After=network.target postgresql.service
+
+[Service]
+WorkingDirectory=/opt/metabase/run
+ExecStart=java -jar /opt/metabase/metabase.jar
+
+[Install]
+WantedBy=multi-user.target
diff --git a/modules/metabase/manifests/init.pp b/modules/metabase/manifests/init.pp
new file mode 100644
index 0000000..f2e865b
--- /dev/null
+++ b/modules/metabase/manifests/init.pp
@@ -0,0 +1,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 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 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"],
+ ]
+ }
+}