WIP consul backup

This commit is contained in:
Quentin 2020-05-30 14:10:32 +02:00
parent c746be70a9
commit 66a496a37a
3 changed files with 47 additions and 2 deletions

11
docker/bckp/README.md Normal file
View File

@ -0,0 +1,11 @@
Install dependencies:
```
GOBIN=$GOPATH/bin go get .
```
Run:
```
go run ./kv_to_s3.go
```

34
docker/bckp/kv_to_s3.go Normal file
View File

@ -0,0 +1,34 @@
package main
import (
"github.com/hashicorp/consul/api"
/*"crypto/aes"*/
"log"
/*"github.com/aws/aws-sdk-go/service/s3"*/
)
func errIsPanic(err error, format string, a ...interface{}) {
if err != nil {
log.Panicf(format, a...)
}
}
func main() {
log.Println("starting consul kv backup...")
conf := api.DefaultConfig()
//@FIXME add later support for a different URL
//@FIXME add later support for HTTPS
options := api.QueryOptions {
// Prevent from backuping forever silently a desynchronized node
AllowStale: false,
}
consul, err := api.NewClient(conf)
errIsPanic(err, "Unable to build a new client. %v", err)
_, _, err = consul.Snapshot().Save(&options)
errIsPanic(err, "Snapshot failed. %v", err)
}

View File

@ -74,8 +74,7 @@ job "email" {
port = "imap_port"
address_mode = "host"
tags = [
"dovecot",
"(diplonat (tcp_port 993))"
"dovecot"
]
check {
type = "tcp"
@ -96,6 +95,7 @@ job "email" {
address_mode = "host"
tags = [
"dovecot",
"(diplonat (tcp_port 993))"
]
check {