diff --git a/backups.yml b/backups.yml index 1376968..7b7d411 100644 --- a/backups.yml +++ b/backups.yml @@ -1,33 +1,34 @@ --- - hosts: - mason.kde.org - cano.kde.org - overwatch.kde.org - bluemchen.kde.org - fiesta.kde.org - recluse.kde.org - code.kde.org - stumptown.kde.org - mimi.kde.org - orbi.kde.org - dalca.kde.org - library.kde.org - rosetta.kde.org - letterbox.kde.org - thera.kde.org - mygalo.kde.org - komaci.kde.org - edulis.kde.org - platna.kde.org - milonia.kde.org - eresida.kde.org - nicoda.kde.org + - leptone.kde.org vars_files: - vars/backups.yml - vars/backups-vault.yml roles: - kde-backup diff --git a/production/host_vars/leptone.kde.org.yml b/production/host_vars/leptone.kde.org.yml new file mode 100644 index 0000000..e50f1c9 --- /dev/null +++ b/production/host_vars/leptone.kde.org.yml @@ -0,0 +1,4 @@ +--- +backup_directory: backups +hetzner_backup_host: storage-box-s2 +backup_apt_dependencies: [borgbackup] diff --git a/roles/kde-backup/templates/backup-leptone.sh b/roles/kde-backup/templates/backup-leptone.sh new file mode 100644 index 0000000..c1356f4 --- /dev/null +++ b/roles/kde-backup/templates/backup-leptone.sh @@ -0,0 +1,38 @@ +#!/bin/bash +LOCATION=/root/{{backup_directory}} +find $LOCATION -name '*.tar' -mtime +7 | xargs rm -f + +# Backup configuration and list of installed packages +tar -czf $LOCATION/etc.`date +%w`.tgz -C / etc/ +tar -czf $LOCATION/crontabs.`date +%w`.tgz -C / var/spool/cron/ +dpkg -l > $LOCATION/dpkg.`date +%w` + +# Transfer the backups to the backup server +lftp -f ~/bin/backup-options + +# Prepare to run Borg backups +export BORG_PASSPHRASE='{{backup_borg_passphrase}}' + +{% set backup_creds = hetzner_backup_creds[hetzner_backup_host] %} +BORG_SERVER="ssh://{{backup_creds.username}}@{{backup_creds.hostname}}:23" + +# Backup Homes +export BORG_REPO="$BORG_SERVER/./borg-backups/homes" +borg create --compression lzma,3 --exclude-caches --exclude /home/git/gitlab/tmp/ ::'{hostname}-homes-{now}' /home/ 2>&1 | grep -v "Compacting segments" +borg prune --prefix '{hostname}-' --keep-daily 14 --keep-weekly 8 --keep-monthly 6 2>&1 | grep -v "Compacting segments" + +# Backup Git Repositories +export BORG_REPO="$BORG_SERVER/./borg-backups/git-repositories" +borg create --compression none --exclude-caches ::'{hostname}-git-repositories-{now}' /srv/git/repositories/ 2>&1 | grep -v "Compacting segments" +borg prune --prefix '{hostname}-' --keep-daily 7 --keep-weekly 4 --keep-monthly 6 2>&1 | grep -v "Compacting segments" + +# Backup Gitlab Artifacts +export BORG_REPO="$BORG_SERVER/./borg-backups/gitlab-artifacts" +borg create --compression lzma,3 --exclude-caches ::'{hostname}-gitlab-artifacts-{now}' /srv/git/shared/ 2>&1 | grep -v "Compacting segments" +borg prune --prefix '{hostname}-' --keep-daily 7 --keep-weekly 4 --keep-monthly 6 2>&1 | grep -v "Compacting segments" + +# Backup Gitlab Postgres DB +export BORG_REPO="$BORG_SERVER/./borg-backups/postgres-databases" +sudo -u git -H sh -c "cd /home/git/ && pg_dump gitlab_production" | borg create --compression lzma,3 "::{hostname}-gitlab_production-{now}" - 2>&1 | grep -v "Compacting segments" +borg prune --prefix '{hostname}-' --keep-daily 7 --keep-weekly 4 --keep-monthly 6 2>&1 | grep -v "Compacting segments" + diff --git a/vars/backups-vault.yml b/vars/backups-vault.yml index 314bbff..4e5e0e3 100644 --- a/vars/backups-vault.yml +++ b/vars/backups-vault.yml @@ -1,35 +1,41 @@ $ANSIBLE_VAULT;1.1;AES256 -31343065343538336161613865343435366563306632323436313165303063333638373336616135 -6633653561356162333364306465666536663834313137340a323238646665393938316463383934 -35643463613137373534613638383034383961663437356165616336633464656362326239346134 -6466366162626437660a313964343963323939643236613132323063363861326561623261623337 -30356138643230323839623938303166323138386230666562376130646234333836653565653366 -36376336656461616635386362363334316131353761336661636663353266653364663033396436 -31323638333034353932613338353631343763656163623138386564366239316630393039623963 -33633838353838383034363230653534353233343261366261333234343936636237353961616334 -39653539643534303332326563356238386561623132313261633464643365376265373633633938 -64383966623263396439376363626337633930353862323838333732633734353962383336623935 -34376430353531646234336637316162386561333435333038343832316366323332323439353837 -61356163376135636136623635383633313630363566323239653734393761396662626437343033 -30666462316231623330313134383566383735383236336635323739363237396464366362646236 -61366532373630383636346566393031303133306662363632336233616662373638633233613534 -35623535306134656235653765373137323661333732373334313834313765396231326438306666 -36666533333734613166386663313738653461356532343933333430353664366565653733333066 -38653362353265393964643639363430383532656266663938316633393165313839636438333762 -31643134633633316332303239633836323636653838346439333466316535656337333563366234 -37613238313766356537376434303837363065636233393738386361316331343765356630353731 -38656662366339353537393235376136653561633339636533303238333163303831386139353039 -35376666316431326563363362623261363130356437373131353861666161653337616431663631 -61653235323865396439643465646234636430343963333663623638633866393530306237306432 -63343838653036633461623162616337346432393636313834333765323930306266366430303933 -66646235656335353964303837326563326136653666343462306366643530626336633564306166 -65626434393764313863376566356137363733393332353534666163656431303065303934316131 -61623464646162323035356563363663396366653732643938646464313139333466326639383733 -61396239376263316365343065313766366333353263616632623864376665663262343533623231 -62326163623063343565623463626235373635653738653737366538336365363764396461626633 -61383035623936346635333734396236353432623966383737613239313830623833653938643631 -64323065313963623037656535353933373430653764663232663561373730653838653433643537 -37393766393136343235343862316232393262303237653439386538303734383764396632303063 -65383437366331326132306531313935653365616538376266396462653566663633663361306564 -36643962376232626363323531326236336334366565376464396338383830386430353838306536 -3864373238663530396134383836653063633937303739643131 +64373039323830323062353161326136376266336561373036396164643862396464303162383864 +6539316534353065646263323139663961306466663736310a323863363938333266353331633065 +31346436396133636338373638363031616361346662646233616135646236383830643137396437 +3839326361656261330a646137643333303464616233663863303464343664626331343163306331 +62653262346432643961313666656165363431363664353137323963636365653239353366396535 +66383266373466373065383261643364393034316436356461373234386461646639306531313339 +61636636663734623061313231366636653463616261663063346135636431343938653561613137 +35613264653439343966663934393062623566613135613364633431376362333933613736376163 +63343566313164386137636262356462663462336463396362646438366438666564643066396630 +34646565623434613161306633383565653435343131393064366630623663356232363234626231 +37313331626363613434303163343534396338653062363261363238356539356364383133316261 +65306438653730363365353661383937656533316462396161393535333734303263656436663064 +33323035333136636335653466626337356437643361623030376537663230353339666430346164 +61623733353535363163383139373264353834313138643139326439626435336565656634636562 +65323766353064626661383034306433616632393834306430613138333162346165306438376330 +32313532616633383164346234613561623665343939366362656361393035626461326665343939 +32383161333234306239396534663265626161623462333735343266373236323933653766663731 +38323965393934353535343937653833666137653235333833306365623030356232653034653034 +31366664663463383531393635366336643531633062636666313865303936616166316330633234 +33623139333263613531343136636431346432663833666535653537356437643834306237353532 +61383233376264656435393638386330653362313538613533393261343533633737313234356464 +37303934636262303333666232323938393235633031623132333865326161313539373138363538 +37333836376437333735323137626438613139383135393531376332366166393962353065306239 +37613861383434353939356362633630363766373532343666386432363932663961656366353537 +62333664333137326463393566666439376661376231623432396531376132333666646434346537 +34386265373866626434343164333062383162323338363234373034303839306461623933303064 +64323763336632366437393762343761313262626331373138303535643132636130326137366565 +62383663316562343761393262323963343964656431373530326664376136363639333636626230 +33656330643663363762383164383537663861353139666265663065353966366235326264643736 +64613039376632653834653034343232643835356462323964636266396165373331623039626337 +36383233383530306563396530356565353361383862373635383139626464353636316362343632 +33633335363065666563633337653131366634343166386431333538316564393033353033356436 +39646232303037366464663539643832653461613834383936363433363162656432353635333936 +33386361656632643864336439356362303232366666323966336237616362353264653239343462 +32616462353632356466366538646665386231373537626131623239646637643566353934633735 +61353661643461373363626337326235326661376665623235386635643430313434373737383933 +63656362363630333736313261323763663838636366316332653466646361616431616132326337 +30306230663339663736316339383433663933306162303862326336616238356430333837646361 +30383839613966663334303938646331653233323463323634643338343837373562326565376131 +34383733353035656163