From e0cfde229b219f5269009c2aa912416cc38498e1 Mon Sep 17 00:00:00 2001 From: matthias Date: Thu, 7 May 2026 10:18:56 +0200 Subject: [PATCH] Update jenkins/nextcloud_database.yml --- jenkins/nextcloud_database.yml | 71 +++++++++++++++++----------------- 1 file changed, 36 insertions(+), 35 deletions(-) diff --git a/jenkins/nextcloud_database.yml b/jenkins/nextcloud_database.yml index 8790b99..0ae3c91 100644 --- a/jenkins/nextcloud_database.yml +++ b/jenkins/nextcloud_database.yml @@ -2,18 +2,16 @@ pipeline { agent any parameters { booleanParam(name: 'backuplocally', defaultValue: params.backuplocally ?: false, description: 'If true local BORG backup will be created') - booleanParam(name: 'backuptostackstorage', defaultValue: params.backuptostackstorage ?: false, description: 'If true backup data to TransIP Stack') booleanParam(name: 'backuptodavid', defaultValue: params.backuptodavid ?: false, description: 'If true rsync the BORG repository to David') - booleanParam(name: 'backuptopi', defaultValue: params.backuptopi ?: false, description: 'If true rsync the BORG repository to our ExternalPI') + booleanParam(name: 'backuptowinschoten', defaultValue: params.backuptowinschoten ?: false, description: 'If true rsync the BORG repository to our Winschoten backup system') } stages { stage('Run Information') { steps { echo "Local BORG backup creation is ${params.backuplocally}" - echo "Backup to TransIP Stack is ${params.backuptostackstorage}" echo "Backup to David is ${params.backuptodavid}" - echo "Backup to External PI is ${params.backuptopi}" + echo "Backup to Winschoten PI is ${params.backuptowinschoten}" } } stage('Run MariaDB') { @@ -44,38 +42,41 @@ pipeline { } } } + + stage('Rsync Backup in Parallel') { + failFast false + parallel { + stage ('Run Backup to David') { + steps { + script { + if (params.backuptodavid) { + sh "yes | cp -rf matthias@home.daf2000.nl:/media/disk/nextcloudbackup/database_dump/backup_yesterday.dmp matthias@home.daf2000.nl:/media/disk/nextcloudbackup/database_dump/backup_early.dmp 2>/dev/null || :" + sh "yes | cp -rf matthias@home.daf2000.nl:/media/disk/nextcloudbackup/database_dump/backup_latest.dmp matthias@home.daf2000.nl:/media/disk/nextcloudbackup/database_dump/backup_yesterday.dmp 2>/dev/null || :" + sh "rsync -v -a -e 'ssh -p 664' --delete --bwlimit=3000 --info=progress2 --exclude='.*' /srv/dev-disk-by-uuid-27fc012e-a1fa-4c7c-9dad-82770888cd03/nextcloud_backup/database_dump/ matthias@home.daf2000.nl:/media/disk/nextcloudbackup/database_dump/" + } else { + echo "Backup to David is skipped" + } + } + } + } + stage ('Run Backup to Winschoten') { + steps { + script { + if (params.backuptowinschoten) { + withCredentials([sshUserPrivateKey(credentialsId: 'backupwinschoten', keyFileVariable: 'keyfile', passphraseVariable: 'passphrase', usernameVariable: 'user')]) { + sh "cp ${keyfile} ${WORKSPACE}/keyfile" + sh "rsync -v -a -e 'ssh -i /home/backupwinschoten/.ssh/id_rsa -p 9897' --delete --info=progress2 ${env.borglocation}/${directory} backupwinschoten@localhost:/storage/borgbackups/" + } + } else { + echo "Backup to Winschoten is skipped" + } + } + } + } + } + } + - stage('Run rclone') { - agent { - docker { - image 'rclone/rclone' - args "--volumes-from=jenkins -v /srv/dev-disk-by-uuid-27fc012e-a1fa-4c7c-9dad-82770888cd03/nextcloud_backup/database_dump/:/data/ --entrypoint=''" - reuseNode true - } - } - steps { - script { - if (params.backuptostackstorage) { - sh "mkdir -p /config/rclone" - sh "cp ${WORKSPACE}/config/rclone.conf /config/rclone/" - sh "rclone copy -v /data/ stackstorage:/julien/nextcloud/database" - } else { - echo "Backup to TransIP Stack is skipped" - } - } - } - } - stage('Run Rsync to David') { - steps { - script { - if (params.backuptodavid) { - sh "rsync -v -a -e 'ssh -p 664' --delete --bwlimit=3000 --info=progress2 --exclude='.*' /srv/dev-disk-by-uuid-27fc012e-a1fa-4c7c-9dad-82770888cd03/nextcloud_backup/database_dump/ matthias@home.daf2000.nl:/media/disk/nextcloudbackup/database_dump/" - } else { - echo "Backup to David is skipped" - } - } - } - } stage('Run Rsync to External PI') { steps { script {