Page:
Backing up stuff in Google Cloud Storage
7
Backing up stuff in Google Cloud Storage
Guillem Borrell Nogueras edited this page 2022-08-07 11:20:22 +02:00
HOWTO
Once you have a subscription, these are the steps:
- Create a bucket in Google Cloud Storage. It's better if it's not a public bucket
- Create a service account in IAM & Admin of the subscription
- When creating the account, there's an option to add a role. This role has to be "Storage object Admin". If that has ever to be edited, it has to be edited in the initial IAM page, together with the other principals.
- Create a json file for the key of that service account, in the specific menu for service accounts, where the account was created.
- Install the google cloud SDK
- Authenticate the google cloud command with the service principal (
gcloud auth activate-service-account --key-file=[KEY_FILE]
) - Use the gcloud command to copy the local file to the bucket (
gcloud alpha storage cp /var/backups/cluster.sql gs://lab-backup-gbn/
). You may do it for the users root and postgres, so that they can also back up files. - Copy the following files in the folder
/etc/systemd/system
- Run
systemctl daemon-reload
, enable, and start the timers in systemd
Files
database-daily-backup.service
[Unit]
Description=Daily PG Backup
Documentation=man:pg_dumpall(8)
ConditionACPower=true
After=postgresql.service network.target network-online.target systemd-networkd.service NetworkManager.service connman.service
[Service]
Type=oneshot
User=postgres
Group=postgres
ExecStart=/usr/bin/pg_dumpall -c -f /var/backups/cluster.sql
ExecStartPost=/usr/bin/gcloud alpha storage cp /var/backups/cluster.sql gs://lab-backup-gbn/
KillMode=process
TimeoutStopSec=900
database-daily-backup.timer
[Unit]
Description=Daily PG Backup
After=database-daily-backup.timer
[Timer]
OnCalendar=*-*-* 02:00
RandomizedDelaySec=10m
Persistent=true
[Install]
WantedBy=timers.target
lab-daily-backup.service
[Unit]
Description=Daily Lab backpu
Documentation=man:tar(8)
ConditionACPower=true
After=network.target network-online.target systemd-networkd.service NetworkManager.service connman.service
[Service]
Type=oneshot
ExecStart=tar --exclude '/home/guillem/lab/storage' -zcpvf /var/backups/lab.tgz /home/guillem/lab
ExecStartPost=/usr/bin/gcloud alpha storage cp /var/backups/lab.tgz gs://lab-backup-gbn/
KillMode=process
TimeoutStopSec=900
lab-daily-backup.timer
[Unit]
Description=Daily Lab Backup
After=lab-daily-backup.timer
[Timer]
OnCalendar=*-*-* 02:00
RandomizedDelaySec=10m
Persistent=true
[Install]
WantedBy=timers.target
Index
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International