From b6d7ef3788207f96ea7bf4e67a294a7c59fcf634 Mon Sep 17 00:00:00 2001 From: nono Date: Mon, 19 Feb 2024 16:22:36 +0000 Subject: [PATCH] Actualiser Backup_OpenStack_Vms_And_Volumes.sh --- Backup_OpenStack_Vms_And_Volumes.sh | 69 ++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 17 deletions(-) diff --git a/Backup_OpenStack_Vms_And_Volumes.sh b/Backup_OpenStack_Vms_And_Volumes.sh index f1bba2d..4d9c2ec 100644 --- a/Backup_OpenStack_Vms_And_Volumes.sh +++ b/Backup_OpenStack_Vms_And_Volumes.sh @@ -30,11 +30,16 @@ # 01:january... 12:December #export MONTH_OF_YEARLY_BACKUP=01 -# BACKUP_REPLICATE_REGION -# "" = disable replication -#export BCK_REPLICATE_REGION="" -#export BCK_RCLONE_SRC_ALIAS="" -#export BCK_RCLONE_DST_ALIAS="" +#### Backup Replication +# ENABLE_BACKUP_REPLICATION=0 : disable replication +# ENABLE_BACKUP_REPLICATION=1 : enable replication +export ENABLE_BACKUP_REPLICATION=0 +export BCK_REPLICATION_OS_REGION_NAME=${OS_REGION_NAME} +export BCK_REPLICATION_OS_APPLICATION_CREDENTIAL_ID=${OS_APPLICATION_CREDENTIAL_ID} +export BCK_REPLICATION_OS_APPLICATION_CREDENTIAL_SECRET=${OS_APPLICATION_CREDENTIAL_SECRET} +export BCK_REPLICATION_PROJECT_ID=${PROJECT_ID} +export BCK_RCLONE_SRC_ALIAS="" +export BCK_RCLONE_DST_ALIAS="" export BCK_REPLICATE_TMP_DIR=/opt/backup/tmp # Number of backup instances to keep @@ -43,7 +48,11 @@ export MAX_KEEP_BACKUP_INSTANCES=100 #Set TimeZone #export TZ=Europe/Paris -ORIGIN_REGION=${OS_REGION_NAME} +ORIGIN_OS_REGION_NAME=${OS_REGION_NAME} +ORIGIN_OS_APPLICATION_CREDENTIAL_ID=${OS_APPLICATION_CREDENTIAL_ID} +ORIGIN_OS_APPLICATION_CREDENTIAL_SECRET=${OS_APPLICATION_CREDENTIAL_SECRET} +ORIGIN_PROJECT_ID=${PROJECT_ID} + TODAY=$(date +"%Y-%m-%d_%HH%M") DAY_OF_MONTH=$(date +"%d") MONTH_OF_YEAR=$(date +"%m") @@ -207,12 +216,18 @@ function replicate_backup(){ do BCK_INSTANCE_TODAY=${BCK_INSTANCE}_${TODAY} - export OS_REGION_NAME=${ORIGIN_REGION} + export OS_REGION_NAME=${ORIGIN_OS_REGION_NAME} + export OS_APPLICATION_CREDENTIAL_ID=${ORIGIN_OS_APPLICATION_CREDENTIAL_ID} + export OS_APPLICATION_CREDENTIAL_SECRET=${ORIGIN_OS_APPLICATION_CREDENTIAL_SECRET} + export PROJECT_ID=${ORIGIN_PROJECT_ID} _info_action " Local recording backup Instance ${BCK_INSTANCE_TODAY}" BCK_INSTANCE_ID=$(${OPENSTACK} image show ${BCK_INSTANCE_TODAY} -c id -f value) ${OPENSTACK} image save --file ${BCK_REPLICATE_TMP_DIR}/${BCK_INSTANCE_TODAY}.qcow ${BCK_INSTANCE_ID} - export OS_REGION_NAME=${BCK_REPLICATE_REGION} + export OS_REGION_NAME=${BCK_REPLICATION_OS_REGION_NAME} + export OS_APPLICATION_CREDENTIAL_ID=${BCK_REPLICATION_OS_APPLICATION_CREDENTIAL_ID} + export OS_APPLICATION_CREDENTIAL_SECRET=${BCK_REPLICATION_OS_APPLICATION_CREDENTIAL_SECRET} + export PROJECT_ID=${BCK_REPLICATION_PROJECT_ID} _info_action " Replicating backup Instance ${BCK_INSTANCE_TODAY}" ${OPENSTACK} image create --disk-format qcow2 --container-format bare --file ${BCK_REPLICATE_TMP_DIR}/${BCK_INSTANCE_TODAY}.qcow ${BCK_INSTANCE_TODAY} @@ -222,7 +237,10 @@ function replicate_backup(){ _info_action " Backup Replication of ${BCK_INSTANCE_TODAY} is OK" done - export OS_REGION_NAME=${ORIGIN_REGION} + export OS_REGION_NAME=${ORIGIN_OS_REGION_NAME} + export OS_APPLICATION_CREDENTIAL_ID=${ORIGIN_OS_APPLICATION_CREDENTIAL_ID} + export OS_APPLICATION_CREDENTIAL_SECRET=${ORIGIN_OS_APPLICATION_CREDENTIAL_SECRET} + export PROJECT_ID=${ORIGIN_PROJECT_ID} echo "" _info " => Starting Backup Volume Replication" @@ -233,19 +251,28 @@ function replicate_backup(){ do BCK_VOLUME_TODAY=${BCK_VOLUME}_${TODAY} - export OS_REGION_NAME=${ORIGIN_REGION} + export OS_REGION_NAME=${ORIGIN_OS_REGION_NAME} + export OS_APPLICATION_CREDENTIAL_ID=${ORIGIN_OS_APPLICATION_CREDENTIAL_ID} + export OS_APPLICATION_CREDENTIAL_SECRET=${ORIGIN_OS_APPLICATION_CREDENTIAL_SECRET} + export PROJECT_ID=${ORIGIN_PROJECT_ID} _info_action " Exporting Metadata for backup volume ${BCK_VOLUME_TODAY}" BCK_VOLUME_ID=$(${OPENSTACK} volume backup list --name ${BCK_VOLUME_TODAY} -c ID -f value) BCK_VOLUME_JSON_EXPORT=$(${OPENSTACK} volume backup record export -f json ${BCK_VOLUME_ID}) BCK_VOLUME_EXPORT_SVC=$(echo $BCK_VOLUME_JSON_EXPORT | ${JQ} -r '.backup_service') BCK_VOLUME_EXPORT_URL=$(echo $BCK_VOLUME_JSON_EXPORT | ${JQ} -r '.backup_url') - export OS_REGION_NAME=${BCK_REPLICATE_REGION} + export OS_REGION_NAME=${BCK_REPLICATION_OS_REGION_NAME} + export OS_APPLICATION_CREDENTIAL_ID=${BCK_REPLICATION_OS_APPLICATION_CREDENTIAL_ID} + export OS_APPLICATION_CREDENTIAL_SECRET=${BCK_REPLICATION_OS_APPLICATION_CREDENTIAL_SECRET} + export PROJECT_ID=${BCK_REPLICATION_PROJECT_ID} _info_action " Importing Metadata for backup volume ${BCK_VOLUME_TODAY}" ${OPENSTACK} volume backup record import ${BCK_VOLUME_EXPORT_SVC} ${BCK_VOLUME_EXPORT_URL} done - export OS_REGION_NAME=${ORIGIN_REGION} + export OS_REGION_NAME=${ORIGIN_OS_REGION_NAME} + export OS_APPLICATION_CREDENTIAL_ID=${ORIGIN_OS_APPLICATION_CREDENTIAL_ID} + export OS_APPLICATION_CREDENTIAL_SECRET=${ORIGIN_OS_APPLICATION_CREDENTIAL_SECRET} + export PROJECT_ID=${ORIGIN_PROJECT_ID} } function check_backup(){ @@ -484,11 +511,19 @@ function main() { backup check_backup manage_retention - if [ -n "$BCK_REPLICATE_REGION" ]; then - replicate_backup - export OS_REGION_NAME=${BCK_REPLICATE_REGION} - manage_retention - export OS_REGION_NAME=${ORIGIN_REGION} + + if [ "$ENABLE_BACKUP_REPLICATION" -eq "1" ]; then + replicate_backup + + export OS_REGION_NAME=${BCK_REPLICATION_OS_REGION_NAME} + export OS_APPLICATION_CREDENTIAL_ID=${BCK_REPLICATION_OS_APPLICATION_CREDENTIAL_ID} + export OS_APPLICATION_CREDENTIAL_SECRET=${BCK_REPLICATION_OS_APPLICATION_CREDENTIAL_SECRET} + export PROJECT_ID=${BCK_REPLICATION_PROJECT_ID} + manage_retention + export OS_REGION_NAME=${ORIGIN_OS_REGION_NAME} + export OS_APPLICATION_CREDENTIAL_ID=${ORIGIN_OS_APPLICATION_CREDENTIAL_ID} + export OS_APPLICATION_CREDENTIAL_SECRET=${ORIGIN_OS_APPLICATION_CREDENTIAL_SECRET} + export PROJECT_ID=${ORIGIN_PROJECT_ID} fi }