summaryrefslogtreecommitdiffstats
path: root/modules/tozt/manifests/metabase.pp
blob: 32e95f55c6a8a68c9d0ff97d213c72c230e65d94 (plain) (blame)
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
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 money db":
    provider => shell,
    command => "createdb -U metabase money",
    user => 'postgres',
    unless => "psql -Atc 'select datname from pg_catalog.pg_database' | grep -F money",
    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 money 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"],
    ],
  }
}