diff options
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"], + ] + } +} |