From 50cebb7579f8d30f168b95b3f1b372ac03f011dc Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 25 Aug 2019 04:36:03 -0400 Subject: let metabase create multiple databases --- manifests/tozt.pp | 1 + modules/metabase/manifests/init.pp | 12 --------- modules/tozt/files/metabase | 5 ++++ modules/tozt/files/ynab-export | 4 --- modules/tozt/manifests/metabase.pp | 55 +++++++++++++++++++++++++++++++++++--- 5 files changed, 58 insertions(+), 19 deletions(-) create mode 100644 modules/tozt/files/metabase delete mode 100644 modules/tozt/files/ynab-export diff --git a/manifests/tozt.pp b/manifests/tozt.pp index c4ec96f..322c9c5 100644 --- a/manifests/tozt.pp +++ b/manifests/tozt.pp @@ -6,6 +6,7 @@ node 'tozt', 'tozt.localdomain' { class { 'base': extra_script => " (cd /home/doy/coding/ynab-export && git pull) + (cd /home/doy/coding/investments-sheet-export && git pull) "; } diff --git a/modules/metabase/manifests/init.pp b/modules/metabase/manifests/init.pp index a576194..a3573fa 100644 --- a/modules/metabase/manifests/init.pp +++ b/modules/metabase/manifests/init.pp @@ -54,18 +54,6 @@ class metabase { ]; } - exec { "create metabase 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, require => [ diff --git a/modules/tozt/files/metabase b/modules/tozt/files/metabase new file mode 100644 index 0000000..b52a817 --- /dev/null +++ b/modules/tozt/files/metabase @@ -0,0 +1,5 @@ +#!/bin/sh +set -eu + +su doy /home/doy/coding/ynab-export/bin/load > /dev/null +su doy /home/doy/coding/investments-sheet-export/bin/load > /dev/null diff --git a/modules/tozt/files/ynab-export b/modules/tozt/files/ynab-export deleted file mode 100644 index 3cf1254..0000000 --- a/modules/tozt/files/ynab-export +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -set -eu - -su doy /home/doy/coding/ynab-export/bin/load > /dev/null diff --git a/modules/tozt/manifests/metabase.pp b/modules/tozt/manifests/metabase.pp index 348fcb8..bde8715 100644 --- a/modules/tozt/manifests/metabase.pp +++ b/modules/tozt/manifests/metabase.pp @@ -20,16 +20,47 @@ class tozt::metabase { source => 'puppet:///modules/tozt/nginx/metabase.conf'; } + exec { "create ynab db": + provider => shell, + command => "createdb -U metabase ynab", + user => 'postgres', + unless => "psql -Atc 'select datname from pg_catalog.pg_database' | grep -F ynab", + require => [ + Exec["create metabase db user"], + Package["postgresql"], + Service["postgresql"], + ]; + } + + exec { "create investments db": + provider => shell, + command => "createdb -U metabase investments", + user => 'postgres', + unless => "psql -Atc 'select datname from pg_catalog.pg_database' | grep -F investments", + require => [ + Exec["create metabase db user"], + Package["postgresql"], + Service["postgresql"], + ]; + } + file { "/home/doy/.config/ynab": ensure => directory, owner => 'doy', group => 'doy', require => Conf::User["doy"]; - "/etc/cron.hourly/ynab-export": + "/etc/cron.hourly/metabase": mode => '0755', - source => "puppet:///modules/tozt/ynab-export", - require => Exec["clone ynab-export"]; + source => "puppet:///modules/tozt/metabase", + require => [ + Exec["clone ynab-export"], + Exec["clone investments-sheet-export"], + Secret["/home/doy/.config/ynab/api-key"], + Secret["/home/doy/.config/google/investment-sheets"], + Exec["create ynab db"], + Exec["create investments db"], + ]; } secret { "/home/doy/.config/ynab/api-key": @@ -39,6 +70,13 @@ class tozt::metabase { require => File["/home/doy/.config/ynab"]; } + secret { "/home/doy/.config/google/investment-sheets": + source => "investments-sheets", + owner => 'doy', + group => 'doy', + require => File["/home/doy/.config/google"]; + } + exec { "clone ynab-export": command => "/usr/bin/git clone git://github.com/doy/ynab-export", user => "doy", @@ -49,4 +87,15 @@ class tozt::metabase { File["/home/doy/coding"], ], } + + exec { "clone investments-sheet-export": + command => "/usr/bin/git clone git://github.com/doy/investments-sheet-export", + user => "doy", + cwd => "/home/doy/coding", + creates => "/home/doy/coding/investments-sheet-export", + require => [ + Class["git"], + File["/home/doy/coding"], + ], + } } -- cgit v1.2.3-54-g00ecf