#!/bin/bash
# Variables
FECHA_HOY=$(date '+%Y%m%d')
PATH_GITLAB_BACKUPS=/backups
PATH_BACKUP=$PATH_GITLAB_BACKUPS/$FECHA_HOY
FILE_LOG=$PATH_BACKUP/dump_gitlab.log
DOCKER_CONTAINER="git-test"
# Se elimina la copia que existia
if [ -f $FILE_LOG ]
then
rm -rf $PATH_BACKUP
else
mkdir $PATH_BACKUP
fi
cd $PATH_BACKUP
# Realiza la copia de seguridad y guarda un registro
echo "Realizando copia de seguridad en ${PATH_BACKUP} ..."
echo "[1] Creando backup del sistema..."
docker exec -it $DOCKER_CONTAINER gitlab-rake gitlab:backup:create > $FILE_LOG
# Extrae la copia del contenedor y los ficheros de configuracion
if [ -f $FILE_LOG ]
then
FILE_TAR_ARCHIVE=$(grep "gitlab_backup.tar" $FILE_LOG | awk '{print $4}')
docker cp ${DOCKER_CONTAINER}:/var/opt/gitlab/backups/$FILE_TAR_ARCHIVE $PATH_BACKUP/$FILE_TAR_ARCHIVE
echo "Se ha creado la copia del sistema en ${PATH_BACKUP}/${FILE_TAR_ARCHIVE}"
echo "[2] Realizando copia de la configuracion y secretos"
docker cp ${DOCKER_CONTAINER}:/etc/gitlab/gitlab.rb $PATH_BACKUP/gitlab.rb
docker cp ${DOCKER_CONTAINER}:/etc/gitlab/gitlab-secrets.json $PATH_BACKUP/gitlab-secrets.json
echo "Copia realizada con exito!"
else
echo 'No se ha podido realizar la copia de seguridad'
fi
jueves, septiembre 26, 2019
Script backup de GitLab en un contenedor Docker
Aquí comparto un pequeño shell script que hice para realizar una copia de seguridad y ficheros de configuración de la aplicación de GitLab en un contenedor Docker.
0 comentario(s)
Publicar un comentario