1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
class tozt::metabase {
include tozt::certbot
include tozt::persistent
include metabase
nginx::site {
"metabase-tls":
source => 'puppet:///modules/tozt/nginx/metabase-tls.conf',
require => Class['certbot'];
"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"];
"/home/doy/.config/google":
ensure => directory,
owner => 'doy',
group => 'doy',
require => Conf::User["doy"];
"/etc/cron.hourly/metabase":
mode => '0755',
source => "puppet:///modules/tozt/metabase",
require => [
Package::Cargo["ynab-export for doy"],
Exec["clone metabase-utils"],
Secret["/home/doy/.config/ynab/api-key"],
Secret["/home/doy/.config/google/investments-sheet"],
Exec["create ynab db"],
Exec["create investments db"],
];
}
secret { "/home/doy/.config/ynab/api-key":
source => "ynab",
owner => 'doy',
group => 'doy',
require => File["/home/doy/.config/ynab"];
}
secret { "/home/doy/.config/google/investments-sheet":
source => "investments-sheet",
owner => 'doy',
group => 'doy',
require => File["/home/doy/.config/google"];
}
package::cargo { "ynab-export for doy":
ensure => installed,
user => 'doy',
package => 'ynab-export';
}
exec { "clone metabase-utils":
command => "/usr/bin/git clone git://github.com/doy/metabase-utils",
user => "doy",
cwd => "/home/doy/coding",
creates => "/home/doy/coding/metabase-utils",
require => [
Class["git"],
File["/home/doy/coding"],
],
}
}
|