Backup LND SCB to S3 on change

closes #359
This commit is contained in:
2021-12-23 13:06:32 +01:00
parent 56f58f3a1b
commit 31f4a547a9
3 changed files with 60 additions and 3 deletions

View File

@@ -0,0 +1,47 @@
#
# Cookbook:: kosmos-bitcoin
# Recipe:: lnd-scb-s3
#
# Static Channel Backup for LND channel states
#
include_recipe "kosmos-bitcoin::aws-client"
package "inotify-tools"
backup_script_path = "/opt/lnd-channel-backup-s3.sh"
template backup_script_path do
source "lnd-channel-backup-s3.sh.erb"
mode '0740'
variables lnd_dir: node['lnd']['lnd_dir'],
bitcoin_network: node['bitcoin']['network'],
s3_bucket: node['backup']['s3']['bucket'],
s3_scb_dir: "#{node['name']}/lnd/#{node['bitcoin']['network']}"
notifies :restart, "systemd_unit[lnd-channel-backup.service]", :delayed
end
systemd_unit 'lnd-channel-backup.service' do
content({
Unit: {
Description: 'LND Static Channel Backup',
Documentation: ['https://gist.github.com/alexbosworth/2c5e185aedbdac45a03655b709e255a3'],
Requires: 'lnd.service',
After: 'lnd.service'
},
Service: {
User: 'root',
Group: 'root',
Type: 'simple',
ExecStart: backup_script_path,
Restart: 'always',
RestartSec: 1
},
Install: {
WantedBy: 'multi-user.target'
}
})
verify false
triggers_reload true
action [:create, :enable, :start]
end

View File

@@ -0,0 +1,7 @@
#!/bin/bash
set -xe -o pipefail
while true; do
inotifywait <%= @lnd_dir %>/data/chain/bitcoin/<%= @bitcoin_network %>/channel.backup
aws s3 cp <%= @lnd_dir %>/data/chain/bitcoin/<%= @bitcoin_network %>/channel.backup "s3://<%= @s3_bucket %>/<%= @s3_scb_dir %>/channel.backup"
done