1/5 - (1 голос)

Atlassian ифслгзНа фоне всякого рода сбоев и вирусов, многие начинают вспоминать о резервных копиях и все те, кто не поскупился на резервное хранилище достаточных объемов, чувствуют себя спокойно. Ну а кто «скряга» – тому и не возможно объяснить поговорку: «Скупой платит дважды».nnСегодня поговорим о продуктах Atlassian, а конкретнее о Jira и Confluence и ручном бекапеn

Что надо бекапить

Первое что нужно понять – что и зачем бекапить. У приведенных выше продуктов можно делать полный и частичный бэкапы.n

Частичный бекап

    n

  1. Jiran
      n

    1. Папку export
    2. Папку data

    n

  2. Confluencen
      n

    1. Папку backups
    2. Папку attachments

    n

nЭто позволит сэкономить место и время. Конечно, для восстановления потребуется рабочие Jira и/или Confluence.nnУточнение:n

  • указанные папки желательно синхронизировать с удаленных хранилищем, так как файлы в них могут добавляться, удалятся или изменятся.
  • Файлы в папках export и/или backups – это резервная копия, которая делается при помощи приложения Jira и Confluence соответственно. В них находятся метаданные и пользовательские данные из БД, в формате ПО Atlassian.
  • Файлы в папках data и/или attachments – это прикрепленные файлы(изображения, документы и т.п.) в Jira и/или Confluence

Полный бекап

Полный бэкап – это расширенная версия частичного. В нем делается бекап папки установки и папки с данными. Если по поводу папки установки более-менее понятно, то вот папка с данными может вызвать вопрос.nnЧто бы найти путь к папке с данными, следует посмотреть:n

  • Jiran
    • Файл sh/setenv.bat и найти в нем переменную JIRA_HOME
    • Файл jira-application.properties и в нем посмотреть на переменную jira.home
  • Confluencen
    • Файл confluence-init.properties и найти в нем переменную home

Теперь, когда мы знаем пути, то следует:n

    n

  1. Остановить Jira и/или Confluence
  2. Сделать дамп БД
  3. Заархивировать все (папку инсталляции, папку данных и дамп БД)
  4. Положить в надежное место

nПосле этого, любой сбой и потеря данных в ПО не проблема.n

Как мы делаем

Если очень коротко, то мы комбинируем первый и второй варианты. Раз в месяц мы делаем полный бэкап. А каждую ночь частичный. Конечно же, перед всякого рода бекапом, мы удаляем старые файлы export и/или backups, а файлы в data и/или attachments – во время частичного бекапа, синхронизируем с удаленным хранилищем.nnНиже будет будет небольшой скрипт, который делает резервную копию. В нем не сложно разобраться. Строки 3,4,5 задают путь к папкам бекапа инсталляции, данных и БД.nnДалее идет функция остановки ПО, создания нужных папок для бекапа и синхронизация при помощи rsync.nnНу и в самом конце перед началом бекапа идет проверка, не запущен ли бекап уже. Плюс в этом скрипте – подробный лог-действий.nn[sociallocker]n

#!/bin/bashnTIMESTAMP=`date '+%d%m%y_%H%M%S'`nINSTALL_BACKUP="/srv/backup/atlassian_install_backup_$TIMESTAMP"nHOME_BACKUP="/srv/backup/atlassian_home_backup_$TIMESTAMP"nDATABASE_BACKUP="/srv/backup/atlassian_db_backup_$TIMESTAMP"nBACKUP_LOG_FILE="atlassian_backup_${TIMESTAMP}.log"nPID_FILE="/var/run/atlassian-backup.pid"nn# Print messages to log filen_log() {n    echo "$(date '+%b %d %T') $1: $2" >> $LOG_FILEn}nn# Creating backupsn_create_backup() {n    systemctl stop jira; JIRA_STOP_STATUS=$?n    sleep 10n    systemctl stop confluence; CONFL_STOP_STATUS=$?n    sleep 10n    if [ $JIRA_STOP_STATUS -eq 0 ] && [ $CONFL_STOP_STATUS -eq 0 ]; thenn	MSG="Atlassian services stopped successfully"n	_log INFO $MSGnn	mkdir -p $INSTALL_BACKUPn	if [ -d $INSTALL_BACKUP ]; thenn	    MSG="Creating installation directory backups"n	    _log INFO $MSGn	    rsync -avhP /opt/atlassian/ $INSTALL_BACKUP; INSTALL_BACKUP_STATUS=$?n	    if [ $INSTALL_BACKUP_STATUS -eq 0 ]; thenn		MSG="... Created"n		_log INFO $MSGn	    elsen		MSG="... Failed"n		_log ERROR $MSGn		exit 1n	    fin	elsen	    MSG="Installation backup directory doesn't exist"n	    _log ERROR $MSGn	    exit 1n	fin        mkdir -p $HOME_BACKUPn        if [ -d $HOME_BACKUP ]; thenn            MSG="Creating home directory backups"n            _log INFO $MSGn	    rsync -avhP /var/atlassian/application-data/ $HOME_BACKUP; HOME_BACKUP_STATUS=$?n            if [ $HOME_BACKUP_STATUS -eq 0 ]; thenn                MSG="... Created"n                _log INFO $MSGn            elsen                MSG="... Failed"n                _log ERROR $MSGn                exit 1n            fin        elsen            MSG="Home backup directory doesn't exist"n            _log ERROR $MSGn            exit 1n	fin        mkdir -p $DATABASE_BACKUPn        if [ -d $DATABASE_BACKUP ]; thenn            MSG="Creating database backups"n            _log INFO $MSGn            pg_dump -U postgres jiradb > $DATABASE_BACKUP/jiradb.sql && pg_dump -U postgres confldb > $DATABASE_BACKUP/confldb.sql; DB_BACKUP_STATUS=$?n            if [ $DB_BACKUP_STATUS -eq 0 ]; thenn                MSG="... Created"n                _log INFO $MSGn            elsen                MSG="... Failed"n                _log ERROR $MSGn                exit 1n            fin        elsen            MSG="Database backup directory doesn't exist"n            _log ERROR "$MSG"n            exit 1n	fin    elsen        MSG="Failed to stop atlassian services"n        _log ERROR $MSGn	exit 1n    finn    systemctl start jira; JIRA_START_STATUS=$?n    sleep 30n    systemctl start confluence; CONFL_START_STATUS=$?n    sleep 30n    if [ $JIRA_START_STATUS -eq 0 ] && [ $CONFL_START_STATUS -eq 0 ]; thenn        MSG="Atlassian services started successfully"n        _log INFO $MSGn    elsen        MSG="Failed to start atlassian services"n        _log ERROR $MSGn	exit 1n    fin}nif [ ! -f $PID_FILE ]; thenn    echo $$ > $PID_FILEn    _create_backupnelsen    $MSG="Script is already started"n    echo "$MSG"n    _log ERROR $MSGn    exit 1nfi

[/sociallocker]nnСледует отметить, что:n

  • Используется БД postgres
  • Пароль от БД указан непосредственно в сроке выгрузки дамп
  • Нет проверки на остановку ПО Atlassian(из практики, последнии версии 7.3.х страдают долгим выключением и тем, что оставляют за собой мусор.)

Вам нужна установка, настройка, миграция, бэкап продуктов Atlassian, обращайтесь [email protected]