В моем предыдущем посте я описал, как я начал непрерывный стек доставки с помощью одной простой команды. Следующим шагом является подготовка стека для автоматического создания и развертывания приложения. В этом посте я опишу, как настроить стек, чтобы он был готов к обработке простого приложения Spring Boot . Хотя у меня есть компоненты, работающие как контейнеры Docker, они все еще нуждаются в конфигурации для совместной работы, особенно Jenkins .
Когда я открываю консоль для новой установки Jenkins по адресу http: // localhost: 8080, я получаю следующий экран, в котором я могу ввести сгенерированный пароль:
Пароль можно найти в контейнере Docker в файле, показанном на экране, или его можно найти в выводе консоли терминала docker-compose:
После ввода пароля я получаю возможность установить плагины по умолчанию или выбрать их самостоятельно. Для моего случая использования я могу просто выбрать один по умолчанию ( изображение Jenkins, которое я использую, уже содержит необходимый мне плагин не по умолчанию):
Установка плагинов может занять некоторое время, но после этого я создаю пользователя Admin на следующем экране:
После этого экрана я получаю панель управления Jenkins:
Прежде чем я добавлю свою первую работу, я хочу сначала кое-что исправить:
- Настройте плагин Gitlab
- Добавить установку Maven
- Настройте Nexus как зеркало Maven
- Настройте плагин Gitlab
Чтобы предоставить Jenkins доступ к серверу Git, я создал нового пользователя под названием «jenkins», который может клонировать репозитории. Для создания нового пользователя перейдите по адресу http: // localhost: 8082 с помощью браузера. Используя мой docker-compose stack, я могу войти в систему с пользователем ‘root’ и паролем ‘admin123’. Далее я нажимаю на «гаечный ключ», чтобы перейти в админку :
В этой области администратора я создаю нового пользователя с именем ‘jenkins’:
Как вы можете видеть, он говорит, что пароль будет отправлен по почте, но, поскольку я не настроил почтовый сервер в Gitlab Docker, этого не произойдет. После того, как пользователь создан, я выбираю его для редактирования. Затем я могу ввести пароль вручную. Теперь я выхожу, чтобы начать новый сеанс, и регистрируюсь как новый пользователь ‘jenkins’. В первый раз я должен сбросить пароль и войти снова. Наконец, когда я вошел в систему как пользователь «jenkins», я перехожу в «Настройки профиля» пользователя «jenkins» и открываю вкладку «Аккаунт». Здесь я вижу личный токен для этого пользователя, как показано здесь:
Я копирую это, чтобы я мог использовать его в конфигурации Jenkins.
Вернувшись в панель управления Jenkins, я перехожу к « Управление Jenkins » и добавляю новые учетные данные типа «Gitlab Api Key», например:
Затем я перехожу к « Настроить систему » и создаю GitLab-соединение вот так:
Этот ключ доступа к API используется плагином Gitlab, который будет использоваться для извлечения кода Git в задании конвейера.
- Добавить установку Maven
На панели инструментов перейдите к «Управление Jenkins» и выберите « Глобальная конфигурация инструмента ». Нажмите «Добавить Maven» и назовите установку «M3» следующим образом:
Имя этой установки Maven будет использоваться в файле Jenkinsfile, который описывает конвейерное задание .
- Настройте Nexus как зеркало Maven
Чтобы определить глобальный файл настроек Maven для установки Maven, я использую плагин Config File Provider . Чтобы добавить файл « settings.xml », перейдите в « Управление Jenkins » и выберите «Управляемые файлы» в главном меню:
Выберите « Добавить новую конфигурацию » и выберите «Global Maven settings.xml» в качестве типа файла. В части контента я добавляю установку Nexus как зеркало:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
<? xml version = "1.0" encoding = "UTF-8" ?> xsi:schemaLocation = "http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" > < mirrors > < mirror > <!--This sends everything else to /public --> < id >nexus</ id > < mirrorOf >*</ mirrorOf > </ mirror > </ mirrors > < profiles > < profile > < id >nexus</ id > <!--Enable snapshots for the built in central repo to direct --> <!--all requests to nexus via the mirror --> < repositories > < repository > < id >central</ id > < releases >< enabled >true</ enabled ></ releases > < snapshots >< enabled >true</ enabled ></ snapshots > </ repository > </ repositories > < pluginRepositories > < pluginRepository > < id >central</ id > < releases >< enabled >true</ enabled ></ releases > < snapshots >< enabled >true</ enabled ></ snapshots > </ pluginRepository > </ pluginRepositories > </ profile > </ profiles > < activeProfiles > <!--make the profile active all the time --> < activeProfile >nexus</ activeProfile > </ activeProfiles > </ settings > |
Обратите внимание на идентификатор файла конфигурации. Я ссылаюсь на это в моем коде конвейера. Поскольку этот конвейер выполняется отдельно от установки Jenkins, я использую плагин Pipeline Maven , чтобы конвейер использовал те же настройки Maven.
Это все на данный момент. Стек работает и готов к сборке моего проекта Spring Boot. Я покажу это в следующем посте.
Ссылка: | Настройте Jenkins для непрерывной доставки приложения Spring Boot от нашего партнера JCG Паскаля Альмы в блоге Pragmatic Integrator . |