diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-08-22 02:41:26 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-08-22 02:41:26 -0400 |
commit | 83b766ff539b56b3071f578c929821422002979f (patch) | |
tree | 080541c02a8e4f1902098d008542445d4f07c397 /modules/metabase | |
parent | 2ebf71069cadd301cbe48fd131993651cacddfa1 (diff) | |
download | puppet-tozt-83b766ff539b56b3071f578c929821422002979f.tar.gz puppet-tozt-83b766ff539b56b3071f578c929821422002979f.zip |
configure metabase
Diffstat (limited to 'modules/metabase')
-rw-r--r-- | modules/metabase/files/metabase.service | 10 | ||||
-rw-r--r-- | modules/metabase/manifests/init.pp | 74 |
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"], + ] + } +} |