Skip to content

dunkpi/itek_jenkins

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Основано на идее [ripreal] https://github.com/ripreal/erp_features.git Все действия будут выполняться под Windows. Необходимо установить:

  • Jenkins
  • Серверная платформа 1С с развернутой серверной базой не ниже 8.3.10

Как будет работать наш пайплайн:

  1. Блокирум запуск соединений и РЗ
  2. Выбрасываем пользователей из базы 1С
  3. Создаём бэкап конфигурации
  4. Создаём бэкап ИБ
  5. Создаем файл обновления
  6. Обновляем ИБ
  7. Разблокирум запуск соединений и РЗ

Установка

1. Установка GIT

GIT нам потребуется для того, чтобы дженкинс смог работать со скриптами нашего пайплайна, которые расположены в экспериментальном репозитории https://github.com/dunkpi/itek_jenkins.git. Для этого:

2. Установка и настройка Jenkins-а.

Jenkins – бесплатная среда для автоматического запуска всех скриптов нашего пайплайна по расписанию. Установка и первичная настройка дженкинса не принесет никаких проблем.

  1. Скачиваем дистрибутив JRE 1.8 и устанавливаем
  2. Скачиваем последний дистрибутив Jenkins (на момент статьи это 2.141) и устанавливаем как сервис. Все настройки оставляем по-умолчанию.
  3. Меняем стандартную кодировку дженкинса на UTF-8. Это важный этап, чтобы в веб-интерфейсе дженкинса все русские символы отображались корректно. Для этого добавляем параметр -Dfile.encoding=UTF8 в тег в файле Jenkins.xml, расположенном в корневом каталоге установки дженкинса. Итоговая строка должна выглядеть примерно так: <arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -Dfile.encoding=UTF8 -jar "%BASE%\jenkins.war" --httpPort=8991 --webroot="%BASE%\war"</arguments>
  4. Перезапускаем службу Jenkins в диспетчере задач Windows и проверяем, что все прошло хорошо, открыв веб-интерфейс дженкинса по адресу http://localhost:8080. Если у вас порт 8080 занят другим приложением, то необходимо будет его перенастроить, например как написано здесь

3. Настройка shared-libraries

Эта удобная функция позволяет писать и складывать скрипты в отдельные библиотеки для их переиспользования в дальнейшем.

  1. В веб-интерфейсе дженкинса переходим в меню Manage Jenkins (Настроить Jenkins) => Configure System (Конфигурация системы) => Global Pipeline Libraries 2.Нажимем Add и заполняем поля:

4. Создание и настройка пайплайна в Jenkins

  1. В Веб-интерфейсе дженкинса переходим в меню New Item (Создать Item), заполняем произвольное имя в поле Enter an item name (Введите имя Item'а), выбираем тип скрипта - pipeline и нажимаем ОК
  2. В новом окне открывается конфиг пайплайна. Переходим к группе pipeline, в котором мы введем настройки подключения к репозиторию, в котором хранятся все исходники. Заполняем поля следующим образом:
  • Definition - pipeline script from SCM
  • SCM - git
  • Repository URL - https://github.com/dunkpi/itek_jenkins.git
  • В группе Additional Behaviours нажимаем кнопку add и выбираем clean before checkout, чтобы автоматически очищать директорию сборки от предыдущих результатов.
  1. Все остальные параметры оставляем по-умолчанию и нажимаем Save

5. Первый запуск пайплайна

Часть параметров конфига хранятся в Jenkinsfile - скрипте в удаленном репозитории, который мы указали в п.4. Поэтому чтобы донастроить пайплайн необходимо выполнить пробный запуск. Для этого:

  1. В Веб-интерфейсе дженкинса на главной странице переходим в наш пайплайн
  2. В открывшемся окне нажимаем Build (Собрать сейчас) в левой командной панели и наблюдаем процесс сборки. Сборка должна будет упасть - это нормально.
  3. Обновляем браузер через f5 и видим, что теперь у нас вместо кнопки Buid появится другая кнопка Build with parameters (Собрать с параметрами) - это как раз то, что нам нужно.

6. Второй запуск пайплайна

В меню с пайплайном нажимаем кнопку Build with parameters (Собрать с параметрами), которая появилась вместо Build (Собрать) и видим список параметров со значениями NULL, которые нам нужно заполнить. Значения всех введенных параметров будут сохранены для следующих запусков пайплайна. Примечание - обязательно уберите из всех параметров значение NULL, иначе сборка при запуске будет ругаться. Если параметр не нужно заполнять, то оставьте его пустым:

  • jenkinsAgent - Нода дженкинса, на которой запускать пайплайн. По умолчанию master
  • platform1c - Версия платформы 1с, например 8.3.14.1694
  • server1c - Имя сервера 1с, по умолчанию localhost
  • port1c - Порт сервера 1с. По умолчанию 1540. Не путать с портом агента кластера (1541
  • infobases - Список баз для обновления через запятую. Например c83_ack,c83_ato
  • user1c - Имя администратора базы 1с Должен быть одинаковым для всех баз
  • pass1c - Пароль администратора базы 1C. Должен быть одинаковым для всех баз
  • backupDir - Путь для сохранения бэкапов 1c
  • repServer1c - Имя сервера 1с базы, подключенной к хранилищу, по умолчанию localhost
  • repInfobase - База подключенная к хранилищу
  • repUser1c - Имя администратора базы 1с, подключенной к хранилищу
  • repPass1c - Пароль администратора базы 1с, подключенной к хранилищу
  • repPath - Необязательный. Пути к хранилищам 1С для обновления копий баз тестирования через запятую. Число хранилищ (если указаны), должно соответствовать числу баз тестирования. Например D:/temp/storage1c/ack,D:/temp/storage1c/ato
  • repUser - Необязательный. Администратор хранилищ 1C. Должен быть одинаковым для всех хранилищ
  • repPass - Необязательный. Пароль администратора хранилищ 1c
  • permCode - Необязательный. Код блокировки ИБ при обновлениию. По умолчанию 0000 Теперь запускаем сборку и ждем ее полного выполнения. В идеале сборка должна выполниться успешно и отобразиться зеленым цветом. Если сборка упадет на каком-то из промежуточных шагов, то лезем в логи по кнопке Console Output (Вывод консоли) в левой панели, которая доступна, если провалится в саму сборку.

Настройка slave ноды дженкинса

После установки дженкинса мы получаем одну master ноду, запущенную как системный процесс. Но в приличном jenkins обществе принято использовать master ноду только в качестве менеджера slave агентов, а не ка запускалку пайплайнов. Поэтому чтобы не создавать на нее лишнюю нагрузку и не вешать ее в случае какого-либо неоптимального кода, заводятся slave ноды.

  1. Разрешаем запуск слейв агентов в качестве консольных приложений. Для этого в веб-интерфейсе дженкинса переходим в меню Manage Jenkins (Настроить Jenkins) => Configure Global Security (Глобальные настройки безопасности) => Agents и в поле TCP port for JNLP agents меняем переключатель на Fixed (Статичный) и указываем порт, например 10001.
  2. Добавляем ноду. Для этого переходим в меню Manage Jenkins (Настроить Jenkins) => Manage Nodes (Управление средами сборки) и в левой командной панели нажимаем New Node (Новый узел), вводим имя, активируем переключатель Permanent Agent и жмем ок.
  3. Вводим параметр ноды:
  • Name - имя хоста (компьютера)
  • Remote root directory (Корень удаленной ФС) - произвольный путь к каталогу, в котором дженкинс будет выполнять пайплайны, например D:\jenkins
  • Labels (Метки) - произвольное имя, по которому будем ссылаться на ноду в пайплайне. Рекомендую ставить такое же, как имя ноды.
  • Launch method (Способ запуска) - выбираем Launch agent via Java Web Start
  1. Жмем save. Теперь нужно поднять ноду:
  • В главном меню дженкинса в левой части должна появится иконка нашей новой ноды.
  • Кликаем на нее и смотрим на последнюю строчку. Это и есть командная строка запуска slave ноды.
  • Копируем командную строку и записываем ее в bat-ник, заодно скачиваем agent.jar по гиперссылке. Все это ложим в каталог, который мы выделили ранее для slave дженкинса и запускаем bat-ник. Если все сделано правильно, то через пару секунд запустится консольная слейв нода.
  1. Самое время првоерить работоспособность слейв ноды на нашем пайплайне. Для этого переходим к вводу входных параметров пайплайна, меняем параметр jenkinsAgent на label, который мы указали во время настройки ноды и запускаем пайплайн. В логах запущенной сборки можно увидеть, что пайплайн запустился на слейве

Создание расписания для пайплайна

Запуск по расписанию - отличная идея для автоматичеких ночных обновлений:

  1. В Веб-интерфейсе дженкинса на главной странице переходим в наш пайплайн
  2. В левой панели нажимаем Configure (Настройки) и ставим галочку Build periodically (Запускать периодически)
  3. Вводим расписание по формату CRON. Для того, чтобы запускать каждую ночь в 12 часов, достаточно ввести следующее выражение H 00 * * 1-7

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published