job "Consul" { schedule = "* * * * *" config { # TODO: Backup to a meaningful location, this is just for testing repo = "/local/repo" # Read from secret file passphrase = env("BACKUP_PASSPHRASE") } # Remove when using a proper backup destination task "Create dir for repo" { pre_script { on_backup = "echo 'Backing up something'" } pre_script { on_backup = "mkdir -p /local/repo" } } task "Use consul snapshots" { pre_script { on_backup = "mkdir -p /local/consul" } pre_script { on_backup = "consul snapshot save /local/consul/backup.snap" } post_script { on_restore = "consul snapshot restore /local/consul/backup.snap" } } backup { paths = ["/local/consul"] # Because path is absolute restore_opts { Target = "/" } } forget { KeepLast = 2 Prune = true } }