Working backup and restore
This commit is contained in:
parent
a5fd1942de
commit
b9ef67b925
@ -43,7 +43,7 @@ job "backup%{ if batch_node != null }-oneoff-${batch_node}%{ endif }" {
|
|||||||
|
|
||||||
volume "all-volumes" {
|
volume "all-volumes" {
|
||||||
type = "host"
|
type = "host"
|
||||||
read_only = true
|
read_only = false
|
||||||
source = "all-volumes"
|
source = "all-volumes"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ job "backup%{ if batch_node != null }-oneoff-${batch_node}%{ endif }" {
|
|||||||
volume_mount {
|
volume_mount {
|
||||||
volume = "all-volumes"
|
volume = "all-volumes"
|
||||||
destination = "/data"
|
destination = "/data"
|
||||||
read_only = true
|
read_only = false
|
||||||
}
|
}
|
||||||
|
|
||||||
config {
|
config {
|
||||||
@ -123,14 +123,19 @@ job "backup%{ if batch_node != null }-oneoff-${batch_node}%{ endif }" {
|
|||||||
template {
|
template {
|
||||||
# Probably want to use database credentials that have access to dump all tables
|
# Probably want to use database credentials that have access to dump all tables
|
||||||
data = <<EOF
|
data = <<EOF
|
||||||
{{ with secret "kv/data/nextcloud" }}
|
{{ with secret "kv/data/nextcloud" -}}
|
||||||
MYSQL_DATABASE={{ .Data.data.db_name }}
|
MYSQL_DATABASE={{ .Data.data.db_name }}
|
||||||
MYSQL_USER={{ .Data.data.db_user }}
|
MYSQL_USER={{ .Data.data.db_user }}
|
||||||
MYSQL_PASSWORD={{ .Data.data.db_pass }}
|
MYSQL_PASSWORD={{ .Data.data.db_pass }}
|
||||||
{{ end }}
|
{{ end -}}
|
||||||
{{ with secret "kv/data/backups" }}
|
{{ with secret "kv/data/backups" -}}
|
||||||
BACKUP_PASSPHRASE={{ .Data.data.backup_passphrase }}
|
BACKUP_PASSPHRASE={{ .Data.data.backup_passphrase }}
|
||||||
{{ end }}
|
RCLONE_FTP_HOST={{ .Data.data.nas_ftp_host }}
|
||||||
|
RCLONE_FTP_USER={{ .Data.data.nas_ftp_user }}
|
||||||
|
RCLONE_FTP_PASS={{ .Data.data.nas_ftp_pass | toJSON }}
|
||||||
|
RCLONE_FTP_EXPLICIT_TLS=true
|
||||||
|
RCLONE_FTP_NO_CHECK_CERTIFICATE=true
|
||||||
|
{{ end -}}
|
||||||
EOF
|
EOF
|
||||||
destination = "secrets/db.env"
|
destination = "secrets/db.env"
|
||||||
env = true
|
env = true
|
||||||
|
@ -1,23 +1,11 @@
|
|||||||
job "Consul" {
|
job "Consul" {
|
||||||
schedule = "* * * * *"
|
schedule = "0 * * * *"
|
||||||
|
|
||||||
config {
|
config {
|
||||||
# TODO: Backup to a meaningful location, this is just for testing
|
repo = "rclone::ftp,env_auth:/nomad/consul"
|
||||||
repo = "/local/repo"
|
|
||||||
# Read from secret file
|
|
||||||
passphrase = env("BACKUP_PASSPHRASE")
|
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" {
|
task "Use consul snapshots" {
|
||||||
pre_script {
|
pre_script {
|
||||||
on_backup = "mkdir -p /local/consul"
|
on_backup = "mkdir -p /local/consul"
|
||||||
|
@ -1,23 +1,11 @@
|
|||||||
job "lldap" {
|
job "lldap" {
|
||||||
schedule = "* * * * *"
|
schedule = "0 * * * *"
|
||||||
|
|
||||||
config {
|
config {
|
||||||
# TODO: Backup to a meaningful location, this is just for testing
|
repo = "rclone::ftp,env_auth:/nomad/lldap"
|
||||||
repo = "/local/repo"
|
|
||||||
# Read from secret file
|
|
||||||
passphrase = env("BACKUP_PASSPHRASE")
|
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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# sqlite "Backup database" {
|
# sqlite "Backup database" {
|
||||||
# path = "/data/lldap/users.db"
|
# path = "/data/lldap/users.db"
|
||||||
# # sqlite3 /data/lldap/users.db .backup /data/lldap/users.db.bak
|
# # sqlite3 /data/lldap/users.db .backup /data/lldap/users.db.bak
|
||||||
|
@ -1,23 +1,11 @@
|
|||||||
job "Nextcloud" {
|
job "Nextcloud" {
|
||||||
schedule = "* * * * *"
|
schedule = "0 * * * *"
|
||||||
|
|
||||||
config {
|
config {
|
||||||
# TODO: Backup to a meaningful location, this is just for testing
|
repo = "rclone::ftp,env_auth:/nomad/nextcloud"
|
||||||
repo = "/local/repo"
|
|
||||||
# Read from secret file
|
|
||||||
passphrase = env("BACKUP_PASSPHRASE")
|
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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
mysql "Backup database" {
|
mysql "Backup database" {
|
||||||
hostname = env("MYSQL_HOST")
|
hostname = env("MYSQL_HOST")
|
||||||
port = env("MYSQL_PORT")
|
port = env("MYSQL_PORT")
|
||||||
|
Loading…
Reference in New Issue
Block a user