summaryrefslogtreecommitdiffstats
path: root/modules/borgmatic/manifests
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2021-03-25 21:01:23 -0400
committerJesse Luehrs <doy@tozt.net>2021-03-25 21:01:23 -0400
commit6c81e1b01e0850be93419b68d4c61529de519d2a (patch)
tree0dfdd5574b16cbb03dd819f8c3186572c86ab846 /modules/borgmatic/manifests
parentd8f2b5669bb53f4a60979601ddd966f8c5ae12af (diff)
downloadpuppet-tozt-6c81e1b01e0850be93419b68d4c61529de519d2a.tar.gz
puppet-tozt-6c81e1b01e0850be93419b68d4c61529de519d2a.zip
refactor
Diffstat (limited to 'modules/borgmatic/manifests')
-rw-r--r--modules/borgmatic/manifests/init.pp41
1 files changed, 41 insertions, 0 deletions
diff --git a/modules/borgmatic/manifests/init.pp b/modules/borgmatic/manifests/init.pp
new file mode 100644
index 0000000..9ea1181
--- /dev/null
+++ b/modules/borgmatic/manifests/init.pp
@@ -0,0 +1,41 @@
+class borgmatic($host = 'partofme.algo') {
+ package { 'borgmatic':
+ ensure => installed;
+ }
+
+ $current_hostname = "${facts['networking']['hostname']}"
+ $borgmatic_passphrase = secret::value('borgmatic_passphrase')
+ file {
+ "/etc/borgmatic":
+ ensure => directory;
+ "/etc/borgmatic/config.yaml":
+ content => template('borgmatic/config.yaml'),
+ require => File["/etc/borgmatic"];
+ }
+
+ secret { "/etc/borgmatic/borg_ssh_key":
+ source => 'borg_ssh_key',
+ require => File["/etc/borgmatic"];
+ }
+
+ exec { '/usr/bin/borgmatic init --encryption repokey':
+ environment => [
+ "BORG_PASSPHRASE=${borgmatic_passphrase}",
+ ],
+ unless => '/usr/bin/borgmatic info > /dev/null',
+ require => [
+ Package['borgmatic'],
+ File['/etc/borgmatic/config.yaml'],
+ ]
+ }
+
+ service { 'borgmatic.timer':
+ ensure => running,
+ enable => true,
+ require => [
+ Package['borgmatic'],
+ File['/etc/borgmatic/config.yaml'],
+ Exec['/usr/bin/borgmatic init --encryption repokey'],
+ ];
+ }
+}