Jenkins — это расширяемый открытый инструмент непрерывной интеграции, который также является одним из самых популярных инструментов этого типа.
Поддержка плагинов делает Jenkins гибким и расширяемым.
Файлы, связанные с Jenkins, хранятся в файловой системе, а JENKINS_HOME используется для хранения этих файлов, таких как файлы конфигурации системы, плагины, файлы конфигурации каждого задания и т.д.
Структура директории JENKINS_HOME выглядит следующим образом:
+- config.xml (корневая конфигурация Jenkins)
+- *.xml (другие глобальные файлы конфигурации)
+- userContent (файлы в этой директории будут доступны по адресу http://сервер/userContent/)
+- fingerprints (хранение записей отпечатков)
+- plugins (хранение плагинов)
+- jobs
+- [ИМЯ_ЗАДАНИЯ] (поддиректория для каждого задания)
+- config.xml (файл конфигурации задания)
+- latest (символическая ссылка на последний успешный сбор)
+- builds
+- [ID_СБОРА] (для каждого сбора)
+- build.xml (сводка результата сборки)
+- log (файл лога)
+- changelog.xml (лог изменения)
+- workspace (рабочий каталог для системы управления версиями)
Обновление, миграция, резервное копирование или восстановление Jenkins требуют работы с директорией JENKINS_HOME. Для резервного копирования достаточно сделать копию JENKINS_HOME.
Некоторые директории внутри JENKINS_HOME не требуются для резервного копирования, такие как workspace.
Это потому что workspace — это рабочий каталог системы управления версиями, и все файлы в нем могут быть получены из системы управления версиями.
Jenkins является расширяемым и предлагает множество плагинов, среди которых есть два плагина для резервного копирования: thinBackup и backup.
Плагин thinBackup автоматически создает резервные копии глобальной конфигурации и конфигураций заданий (не включая archive и workspace).
Плагин backup позволяет делать резервные копии JENKINS_HOME, выбирая, какие директории следует включить в резервное копирование (например, workspace, история сборок и т.д.).
Основные различия между плагинами backup и thinBackup заключаются в следующем:
Эти два плагина обычно удовлетворяют основные требования к резервному копированию.
Часто серверы непрерывной интеграции используются только для этой цели, и Jenkins установлен на специализированном сервере (например, виртуальной машине). Однако если эта машина выйдет из строя, восстановление займет некоторое время, и восстановление данных будет затруднено (оба плагина выполняют резервное копирование на локальном сервере).
Поэтому для защиты от такого сценария следует выполнять резервное копирование JENKINS_HOME на другом месте.
Автор выбрал резервное копирование JENKINS_HOME в систему управления версиями SVN:
Перед началом резервного копирования необходимо выполнить несколько начальных шагов:
Конкретные шаги резервного копирования следующие:
Если второй шаг выполняется вручную, эти шаги становятся трудными для реализации, поэтому при ручном резервном копировании можно пропустить четвертый шаг.
Эти процессные шаги являются повторяющимися и сложными для выполнения вручную, поэтому их следует автоматизировать.
Для автоматизации резервного копирования используются скрипты, которые реализуют вышеупомянутые четыре шага:
Первый шаг реализуется с помощью скриптов Apache Ant
Второй, третий и четвертый шаги реализованы с помощью Python и команд клиента SVN
Конкретные реализации скриптов представлены здесь:
Дополнительно, ниже указаны используемые инструменты и среды:
* Jenkins 1.592
* Python 2.7.8
* Команды клиента SVN (установлены вместе с TortoiseSVN)
* Apache Ant 1.8.1
* Тестировано на Windows и Linux
* Тестировано на SVN клиенте версий 1.6 и выше
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )