diff options
author | Jesse Luehrs <doy@tozt.net> | 2021-03-25 21:01:23 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2021-03-25 21:01:23 -0400 |
commit | 6c81e1b01e0850be93419b68d4c61529de519d2a (patch) | |
tree | 0dfdd5574b16cbb03dd819f8c3186572c86ab846 /modules/borgmatic/manifests | |
parent | d8f2b5669bb53f4a60979601ddd966f8c5ae12af (diff) | |
download | puppet-tozt-6c81e1b01e0850be93419b68d4c61529de519d2a.tar.gz puppet-tozt-6c81e1b01e0850be93419b68d4c61529de519d2a.zip |
refactor
Diffstat (limited to 'modules/borgmatic/manifests')
-rw-r--r-- | modules/borgmatic/manifests/init.pp | 41 |
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'], + ]; + } +} |