1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/donhui-JENKINS_HOME_BAKCUP

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Ежедневное автоматическое резервное копирование JENKINS_HOME в систему управления версиями SVN

Jenkins — это расширяемый и открытый инструмент для непрерывной интеграции, который также является одним из самых популярных инструментов для непрерывной интеграции.

Основные функции Jenkins

  • Легкость установки
  • Легкость конфигурации
  • Поддержка наборов изменений
  • Постоянные ссылки
  • Интеграция RSS/Email/IM
  • После-фактное тегирование
  • Отчеты о тестировании JUnit/TestNG
  • Распределенные сборки
  • Печать отпечатков файлов
  • Поддержка плагинов Поддержка плагинов делает Jenkins кастомизируемым и расширяемым.

Структура директории JENKINS_HOME

Связанные файлы Jenkins хранятся в файловой системе, а JENKINS_HOME используется для хранения этих файлов, таких как файлы конфигурации системы, плагины, файлы конфигурации каждого job и т. д. Структура директории JENKINS_HOME следующая:

   +- config.xml     (корневая конфигурация Jenkins)
   +- *.xml          (другие файлы конфигурации для всего сайта)
   +- userContent    (файлы в этой директории будут доступны по адресу http://server/userContent/)
   +- fingerprints   (хранит записи отпечатков)
   +- plugins        (хранит плагины)
   +- jobs
       +- [JOBNAME]      (поддиректория для каждого job)
           +- config.xml     (файл конфигурации job)
   
+- latest (символическая ссылка на последний успешный сбор)
       +- builds
           +- [BUILD_ID]     (для каждого сбора)
               +- build.xml      (сводка результата сборки)
               +- log            (файл лога)
               +- changelog.xml  (журнал изменений)

+- workspace (рабочая директория для системы управления версиями) Обновление, миграция, резервное копирование или восстановление Jenkins требуют операций с директорией JENKINS_HOME, а резервное копирование Jenkins требует только резервного копирования JENKINS_HOME. В JENKINS_HOME есть директории, которые не требуют резервного копирования, такие как: workspace. Директория workspace является рабочей директорией системы управления версиями, и все файлы в этой директории могут быть получены из системы управления версиями.

Плагины резервного копирования Jenkins

Jenkins является расширяемым, и среди доступных плагинов есть тысячи различных плагинов, из которых для резервного копирования можно выбрать два плагина: плагин thinBackup и плагин backup. Плагин thinBackup автоматически создает резервные копии глобальных и определенных конфигурационных файлов job (не включая архивы и рабочую директорию). Плагин backup может выполнять резервное копирование JENKINS_HOME, при этом можно выбрать, какие элементы необходимо резервировать (например, workspace, история сборок, архивы Maven, отпечатки и т. д. ). Плагин thinBackup отличается от плагина backup: 1.плагин backup может запускаться только вручную, в то время как плагин thinBackup может автоматически выполнять резервное копирование по расписанию. 2. плагин backup может резервировать JENKINS_HOME и выбирать, какие элементы необходимо резервировать, в то время как плагин thinBackup резервирует только наиболее важную информацию (глобальные и специфические для задач конфигурационные файлы). Эти два плагина в целом удовлетворяют основным требованиям. Обычно серверы для непрерывной интеграции являются специализированными, и Jenkins установлен на отдельном сервере (например, виртуальной машине). Однако, если виртуальная машина выйдет из строя, восстановление займет некоторое время, и восстановление из резервной копии также будет затруднено (оба плагина выполняют резервное копирование на локальном сервере). Поэтому для предотвращения подобных ситуаций необходимо резервировать JENKINS_HOME на другом сервере. ###Резервное копирование JENKINS_HOME в систему управления версиями### Автор выбрал резервное копирование JENKINS_HOME в систему управления версиями:

  1. Системой управления версиями выбрана SVN.
  2. Резервное копирование JENKINS_HOME выполняется автоматически каждый вечер в SVN.
  3. Кроме того, через SVN можно сравнивать изменения между двумя ревизиями, просматривать изменения и легко отслеживать их. Шаги инициализации перед резервным копированием следующие: 1.В SVN-версионной базе данных создается новый каталог, например JENKINS_HOME_BAK.
  4. JENKINS_HOME_BAK выкачивается (checkout) на определенное место на сервере Jenkins, например E:/JENKINS_HOME_BAK. Конкретные шаги резервного копирования следующие:
  5. Копирование JENKINS_HOME в JENKINS_HOME_BAK.
  6. Включение в систему управления версиями файлов или каталогов, которые не были включены ранее (используется svn add).
  7. Проверка JENKINS_HOME_BAK на наличие файлов или каталогов, которые отсутствуют в JENKINS_HOME, и их удаление (используется svn delete).
  8. Заключительное выполнение команды svn ci для отправки изменений в SVN-версионную базу данных. Эти шаги, если второй шаг выполняется вручную, теоретически могут быть затруднительными, поэтому если резервное копирование выполняется вручную, шаг 4 может быть пропущен. Эти последовательные шаги, если они выполняются вручную, могут быть сложными и повторяющимися, ленивые люди обычно не хотят выполнять повторяющиеся задачи, поэтому их следует автоматизировать. Что касается автоматизированного скрипта резервного копирования, то он должен реализовать вышеупомянутые 4 шага:
  9. Для первого шага используется скрипт Ant.
  • Скрипт Ant не только используется для сборки, но и для выполнения других задач.
  • Синтаксис Ant очень гибкий, и у него есть множество задач для выбора. * Копирование выполняется с помощью задачи Ant copy, которая позволяет использовать fileset для исключения файлов или каталогов, которые не требуют копирования (например, workspace), что очень удобно.
    • Задача Ant copy может выполнять копирование с учетом изменений. Для шагов 2, 3 и 4 используйте Python + svn client commands.
    • Выбор Python обусловлен недавним изучением языка.
    • Выбор svn client commands вместо pysvn обусловлен отсутствием pysvn на Windows, поэтому используется svn client commands. В дополнение к этому, автоматизированная резервная копия может быть создана путем создания работы в Jenkins, которая будет выполнять резервное копирование JENKINS_HOME в определенные интервалы времени. Детали реализации смотрите в:
    • Jenkins 1.592
    • Python 2.7.8
    • svn client commands (на Windows требует установки TortoiseSVN с выбором установки svn client)
    • Ant 1.8.1
    • Тестирование проведено как на Windows, так и на Linux
    • Тестирование проведено на svn client версий 1.6 и выше ###Ссылки###

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Язык

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/donhui-JENKINS_HOME_BAKCUP.git
git@api.gitlife.ru:oschina-mirror/donhui-JENKINS_HOME_BAKCUP.git
oschina-mirror
donhui-JENKINS_HOME_BAKCUP
donhui-JENKINS_HOME_BAKCUP
master