MIBALTOALEX.COM

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.

#!/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

0 comentario(s)

Publicar un comentario