summaryrefslogtreecommitdiffstats
path: root/modules/metabase
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-08-22 02:41:26 -0400
committerJesse Luehrs <doy@tozt.net>2019-08-22 02:41:26 -0400
commit83b766ff539b56b3071f578c929821422002979f (patch)
tree080541c02a8e4f1902098d008542445d4f07c397 /modules/metabase
parent2ebf71069cadd301cbe48fd131993651cacddfa1 (diff)
downloadpuppet-tozt-83b766ff539b56b3071f578c929821422002979f.tar.gz
puppet-tozt-83b766ff539b56b3071f578c929821422002979f.zip
configure metabase
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"],
+ ]
+ }
+}