MIBALTOALEX.COM
Mostrando entradas con la etiqueta GitLab. Mostrar todas las entradas
Mostrando entradas con la etiqueta GitLab. Mostrar todas las entradas

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