Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 634699)
Контекстум
.

Jenkins 2. Приступаем к работе. Создайте свой конвейер развертывания для автоматизации следующего поколения (5000,00 руб.)

0   0
Первый авторЛастер
ИздательствоМ.: ДМК Пресс
Страниц653
ID794549
АннотацияКнига посвящена Jenkins — программной системе с открытым исходным кодом на Java, предназначенной для обеспечения процесса непрерывной интеграции программного обеспечения. Автор показывает, насколько Jenkins 2 отличается от более традиционных версий этой популярной платформы автоматизации с открытым исходным кодом, предназначенных только для интернета. Если вы знакомы с Jenkins и хотите воспользоваться новыми технологиями для преобразования устаревших конвейеров или создания новых современных автоматизированных сред непрерывной доставки, эта книга — для вас. Вы получите полное практическое руководство работы с контейнерами, изучите новый графический интерфейс Blue Ocean. Издание будет полезно всем разработчикам программного обеспечения.
ISBN978-5-97060-711-4
УДК4.42
ББК32.973
Ластер, Б. Jenkins 2. Приступаем к работе. Создайте свой конвейер развертывания для автоматизации следующего поколения / Б. Ластер .— Москва : ДМК Пресс, 2019 .— 653 с. — ISBN 978-5-97060-711-4 .— URL: https://rucont.ru/efd/794549 (дата обращения: 24.04.2024)

Предпросмотр (выдержки из произведения)

Jenkins_2._Приступаем_к_работе._Создайте_свой_конвейер_развертывания_для_автоматизации_следующего_поколения.pdf
УДК 004.42 ББК 32.973 Л26 Л26 Брент Ластер Jenkins 2. Приступаем к работе. / пер. с англ. Д. А. Беликова. – М.: ДМК Пресс, 2019. – 652 с.: ил. ISBN 978-5-97060-711-4 Книга посвящена Jenkins – программной системе с открытым исходным кодом на Java, предназначенной для обеспечения процесса непрерывной интег рации программного обеспечения. Автор показывает, насколько Jenkins 2 отличается от более традиционных версий этой популярной платформы автоматизации с открытым исходным кодом, предназначенных только для интернета. Если вы знакомы с Jenkins и хотите воспользоваться новыми технологиями для преобразования устаревших конвейеров или создания новых современных автоматизированных сред непрерывной доставки, эта книга – для вас. Вы получите полное практическое руководство работы с контейнерами, изучите новый графический интерфейс Blue Ocean. Издание будет полезно всем разработчикам программного обеспечения. УДК 004.42 ББК 32.973 Original English language edition published by O’Reilly Media, Inc. Copyright Все права защищены. Любая часть этой книги не может быть воспроиз© 2018 Brent Laster. All rights reserved. Russian-language edition copyright © 2019 by DMK Press. All rights reserved. ведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-1-491-97959-4 (англ.) Copyright © 2018 Brent Laster. All rights reserved. ISBN 978-5-97060-711-4 (рус.) © Оформление, перевод на русский язык, издание, ДМК Пресс, 2019
Стр.5
Оглавление Введение ...............................................................................................................................14 Предисловие .........................................................................................................................15 Как использовать эту книгу ..........................................................................................................15 Обозначения, используемые в этой книге .................................................................................... 17 Использование примеров кода ......................................................................................................... 17 Как с нами связаться ......................................................................................................................19 Благодарности ...................................................................................................................................19 Глава 1. Представляем Jenkins 2 .......................................................................................22 Что такое Jenkins 2? ........................................................................................................................23 Jenkinsfile .................................................................................................................................................... 24 Декларативные конвейеры ................................................................................................................. 25 Интерфейс Blue Ocean .......................................................................................................................... 27 Новые типы заданий в Jenkins 2 ....................................................................................................... 29 Причины перехода ..........................................................................................................................32 Движение DevOps ................................................................................................................................... 32 Сборка конвейеров ................................................................................................................................ 32 Возобновляемость .................................................................................................................................. 32 Конфигурируемость ................................................................................................................................ 33 Совместное использование рабочих пространств .................................................................... 33 Специализированные знания ............................................................................................................ 34 Доступ к логике ........................................................................................................................................ 34 Управление источником конвейера ................................................................................................ 34 Конкуренция .............................................................................................................................................. 34 Отвечая на вызовы ..........................................................................................................................35 Совместимость ...................................................................................................................................35 Совместимость конвейеров ................................................................................................................ 36 Совместимость плагинов ...................................................................................................................... 38 Проверка совместимости ..................................................................................................................... 43 Резюме ..................................................................................................................................................43 Глава 2. Основы ....................................................................................................................46 Синтаксис: сценарные конвейеры против декларативных ............................................47 Выбор между сценарным и декларативным синтаксисами .................................................. 48 Системы: ведущие, узлы, агенты и исполнители .................................................................50 Ведущая система ..................................................................................................................................... 50
Стр.6
6  Оглавление Узел ............................................................................................................................................................. 51 Агент ............................................................................................................................................................. 51 Исполнитель .............................................................................................................................................. 52 Создание узлов ........................................................................................................................................ 53 Структура: работа с DSL Jenkins .................................................................................................55 Узел ............................................................................................................................................................. 57 Этап ............................................................................................................................................................. 59 Шаги ............................................................................................................................................................. 59 Поддержка среды: разработка сценария конвейера .......................................................61 Начинаем проект конвейера .............................................................................................................. 62 Редактор ...................................................................................................................................................... 64 Работа с генератором сниппетов ..................................................................................................... 65 Запуск конвейера .................................................................................................................................... 69 Replay ........................................................................................................................................................... 77 Резюме ..................................................................................................................................................81 Глава 3. Поток выполнения конвейера ............................................................................82 Инициирование заданий ..............................................................................................................82 Сборка после того, как собраны другие проекты ...................................................................... 83 Собирать периодически ....................................................................................................................... 84 Триггер перехватчиков GitHub для опроса GitSCM .................................................................. 87 Опрос SCM ................................................................................................................................................. 87 Период тишины ........................................................................................................................................ 88 Триггер выполняет сборку удаленно .............................................................................................. 88 Пользовательский ввод .................................................................................................................89 input ............................................................................................................................................................. 89 Параметры ................................................................................................................................................. 93 Возвращаемые значения из нескольких входных параметров ....................................... 100 Параметры и декларативные конвейеры .................................................................................. 101 Параметры управления потоком ............................................................................................ 107 timeout ...................................................................................................................................................... 107 retry .......................................................................................................................................................... 109 sleep .......................................................................................................................................................... 109 waitUntil ................................................................................................................................................... 109 Работа с параллелизмом ............................................................................................................112 Блокировка ресурсов с помощью шага lock ............................................................................. 112 Управление параллельными сборками с помощью шага milestone .............................. 115 Ограничение параллелизма в разветвленных конвейерах ............................................... 117 Параллельный запуск задач ............................................................................................................ 117 Условное выполнение .................................................................................................................128 Постобработка ................................................................................................................................130 Постобработка сценарных конвейеров ...................................................................................... 131
Стр.7
Оглавление  7 Декларативные конвейеры и постобработка ........................................................................... 133 Резюме ...............................................................................................................................................134 Глава 4. Уведомления и отчеты .......................................................................................136 Уведомления ...................................................................................................................................136 Электронная почта ............................................................................................................................... 137 Службы совместной работы ............................................................................................................. 149 Отчеты ................................................................................................................................................162 Публикация отчетов в формате HTML ......................................................................................... 162 Резюме ...............................................................................................................................................165 Глава 5. Доступ и безопасность .......................................................................................167 Защита Jenkins ................................................................................................................................ 167 Включение защиты .............................................................................................................................. 168 Другие параметры глобальной безопасности ......................................................................... 173 Учетные данные в Jenkins.......................................................................................................... 177 Области учетных данных .................................................................................................................. 179 Домены учетных данных .................................................................................................................. 180 Поставщики учетных данных .......................................................................................................... 180 Хранилища учетных данных ........................................................................................................... 181 Администрирование учетных данных ..................................................................................181 Выбор поставщиков учетных данных .......................................................................................... 181 Выбор типов учетных данных ......................................................................................................... 182 Указание типов учетных данных по поставщику .................................................................... 183 Создание и управление учетными данными .....................................................................184 Контекстные ссылки ............................................................................................................................ 186 Добавление нового домена и учетных данных ....................................................................... 187 Использование нового домена и учетных данных ................................................................ 190 Расширенные учетные данные: доступ на основе ролей ............................................191 Основное использование ................................................................................................................. 192 Управление ролями ............................................................................................................................. 193 Назначение ролей ............................................................................................................................... 199 Макросы Role Strategy ....................................................................................................................... 203 Работа с учетными данными в конвейере..........................................................................206 Имя пользователя и пароль ............................................................................................................. 206 Учетные данные маркера ................................................................................................................. 207 Контроль безопасности сценариев .......................................................................................208 Проверка сценариев........................................................................................................................... 209 Утверждение сценариев ................................................................................................................... 210 Песочница Groovy .........................................................................................................................211 Использование учетных данных Jenkins с Vault ..............................................................214
Стр.8
8  Оглавление Подход ...................................................................................................................................................... 214 Настройка ................................................................................................................................................ 214 Создание политики .............................................................................................................................. 215 Аутентификация .................................................................................................................................... 216 Использование Vault в Jenkins ....................................................................................................... 218 Резюме ...............................................................................................................................................222 Глава 6. Расширяем ваш конвейер .................................................................................224 Доверенные и недоверенные библиотеки .........................................................................224 Внутренние и внешние библиотеки ......................................................................................225 Внутренние библиотеки .................................................................................................................... 225 Внешние библиотеки .......................................................................................................................... 228 Получение библиотеки из исходного хранилища ..........................................................230 Современная система управления исходным кодом (Modern SCM) ............................... 230 Унаследованная система управления исходным кодом (Legacy SCM) ........................... 231 Использование библиотек в вашем сценарии .................................................................232 Автоматическая загрузка библиотек из системы контроля версий ................................ 232 Загрузка библиотек в ваш сценарий ........................................................................................... 232 Библиотеки в элементах Jenkins .............................................................................................236 Структура библиотеки ................................................................................................................. 237 Образец программы библиотеки ........................................................................................... 237 Структура кода общей библиотеки ............................................................................................... 238 Использование сторонних библиотек ..................................................................................251 Загрузка кода напрямую ............................................................................................................252 Загрузка кода из внешней SCM ..............................................................................................253 Воспроизведение внешнего кода и библиотек ................................................................255 Более пристальный взгляд на доверенный и недоверенный коды ......................... 257 Резюме ...............................................................................................................................................260 Глава 7. Декларативные конвейеры ...............................................................................261 Мотивация ........................................................................................................................................262 Не интуитивно понятен ..................................................................................................................... 262 Получение Groovy ................................................................................................................................ 263 Требуется дополнительная сборка................................................................................................ 263 Структура ..........................................................................................................................................264 Блок .......................................................................................................................................................... 264 Раздел ....................................................................................................................................................... 265 Директивы ............................................................................................................................................... 266 Steps .......................................................................................................................................................... 267 Условные операторы .......................................................................................................................... 267
Стр.9
Оглавление  9 Строительные блоки..................................................................................................................... 267 pipeline ..................................................................................................................................................... 269 agent .......................................................................................................................................................... 269 environment ............................................................................................................................................ 274 tools .......................................................................................................................................................... 275 options ...................................................................................................................................................... 278 Триггеры ................................................................................................................................................... 281 parameters ............................................................................................................................................... 284 libraries ..................................................................................................................................................... 287 stages ......................................................................................................................................................... 288 post .......................................................................................................................................................... 292 Работа с недекларативным кодом .........................................................................................294 Проверьте свои плагины ................................................................................................................... 295 Создайте общую библиотеку ........................................................................................................... 295 Поместить код за пределы блока pipeline ................................................................................. 295 Оператор script ..................................................................................................................................... 295 Использование parallel в этапе ..............................................................................................296 Проверка сценариев и отчеты об ошибках ....................................................................... 297 Декларативные конвейеры и интерфейс Blue Ocean ....................................................300 Резюме ...............................................................................................................................................301 Глава 8. Понимание типов проектов ...............................................................................303 Общие параметры проекта .......................................................................................................303 Общие ....................................................................................................................................................... 303 Управление исходным кодом ......................................................................................................... 311 Триггеры сборки ................................................................................................................................... 312 Среда сборок ......................................................................................................................................... 322 Сборка ....................................................................................................................................................... 333 Действия после сборки ...................................................................................................................... 333 Типы проектов ................................................................................................................................334 Проекты Freestyle ................................................................................................................................ 334 Тип проекта Maven .............................................................................................................................. 335 Тип проекта Pipeline ........................................................................................................................... 338 Тип проекта External Job ................................................................................................................... 341 Тип проекта Multiconfiguration ....................................................................................................... 344 Проекты Ivy ............................................................................................................................................. 350 Папки ......................................................................................................................................................... 352 Проекты Multibranch Pipeline ......................................................................................................... 358 Проекты GitHub Organization .......................................................................................................... 363 Проекты Bitbucket Team/Project..................................................................................................... 368 Резюме ...............................................................................................................................................371
Стр.10
10  Оглавление Глава 9. Интерфейс Blue Ocean ........................................................................................373 Часть 1. Управление существующими конвейерами ......................................................374 Панель инструментов ......................................................................................................................... 375 Страница проекта ................................................................................................................................. 379 Страница запуска ................................................................................................................................. 391 Часть 2: Работа с редактором Blue Ocean...........................................................................402 Создание нового конвейера без существующего файла Jenkinsfile ............................... 402 Работа в редакторе .............................................................................................................................. 406 Редактирование существующего конвейера ............................................................................ 418 Импорт и редактирование существующих конвейеров ....................................................... 421 Работа с конвейерами из репозиториев non-GitHub ........................................................... 433 Резюме ...............................................................................................................................................434 Глава 10. Конвертация ......................................................................................................437 Общая подготовка ........................................................................................................................438 Логика и точность ................................................................................................................................. 438 Тип проекта ............................................................................................................................................. 438 Системы .................................................................................................................................................... 439 Доступ ....................................................................................................................................................... 439 Глобальная конфигурация ................................................................................................................ 439 Плагины .................................................................................................................................................... 440 Общие библиотеки .............................................................................................................................. 440 Конвертация конвейера Freestyle в сценарный конвейер ..........................................441 Source ........................................................................................................................................................ 445 Compile ..................................................................................................................................................... 451 Модульные тесты .................................................................................................................................. 456 Интеграционное тестирование ....................................................................................................... 461 Перемещение последующих частей конвейера ..................................................................... 465 Конвертация проекта Jenkins Pipeline в файл Jenkinsfile ............................................472 Подход ...................................................................................................................................................... 475 Заключительные шаги ........................................................................................................................ 482 Конвертация сценарного конвейера в декларативный ................................................485 Образец конвейера ............................................................................................................................. 486 Конвертация ........................................................................................................................................... 488 Завершение конвертации ................................................................................................................. 492 Общее руководство по конвертации ....................................................................................493 Резюме ...............................................................................................................................................496 Глава 11. Интеграция с ОС (оболочки, рабочие пространства, среды и файлы) .....497 Использование шагов оболочки .............................................................................................498 Шаг sh ........................................................................................................................................................ 498 Шаг bat ...................................................................................................................................................... 504
Стр.11
Оглавление  11 Шаг PowerShell ...................................................................................................................................... 506 Работа с переменными среды .................................................................................................508 Шаг withEnv ............................................................................................................................................ 509 Работа с рабочими пространствами .....................................................................................511 Создание пользовательского рабочего пространства .......................................................... 511 Очистка рабочего пространства .................................................................................................... 514 Шаги для работы с файлами и каталогами ........................................................................516 Работа с файлами ................................................................................................................................. 516 Работа с каталогами ............................................................................................................................ 518 Добиться большего, работая с файлами и каталогами ......................................................... 519 Резюме ...............................................................................................................................................521 Глава 12. Интеграция инструментов анализа ................................................................523 SonarQube Survey ..........................................................................................................................524 Работа с отдельными правилами .................................................................................................. 525 Ворота качества и профили качества .......................................................................................... 529 Сканер ....................................................................................................................................................... 531 Использование SonarQube с Jenkins .....................................................................................532 Глобальная конфигурация ................................................................................................................ 532 Использование SonarQube в проектe Freestyle ...................................................................... 533 Использование SonarQube в проекте Pipeline ........................................................................ 534 Использование результатов анализа SonarQube ................................................................... 535 Интеграция выходных данных SonarQube с Jenkins ............................................................. 540 Покрытие кода: интеграция с JaCoCo ....................................................................................540 О JaCoCo ................................................................................................................................................... 541 Интеграция JaCoCo с конвейером ................................................................................................. 542 Интеграция выходных данных JaCoCo с Jenkins ..................................................................... 544 Резюме ...............................................................................................................................................545 Глава 13. Интеграция управления артефактами ..........................................................547 Публикация и получение артефактов ................................................................................... 547 Настройка и глобальная конфигурация ...............................................................................549 Использование Artifactory в сценарном конвейере .......................................................550 Выполнение других задач .........................................................................................................555 Скачивание определенных файлов в определенные места .............................................. 555 Загрузка определенных файлов в определенные места ..................................................... 556 Настройка политик хранения сборок .......................................................................................... 556 Развертывание сборки ....................................................................................................................... 557 Интеграция с декларативным конвейером ........................................................................ 557 Интеграция Artifactory с выходными данными Jenkins .................................................558 Архивация артефактов и снятие отпечатков .....................................................................559
Стр.12
12  Оглавление Резюме ...............................................................................................................................................566 Глава 14. Интеграция контейнеров .................................................................................568 Сконфигурирован как облако ..................................................................................................568 Глобальная конфигурация ................................................................................................................ 569 Использование образов Docker в качестве агентов.............................................................. 573 Использование образов облака в конвейере .......................................................................... 578 Агент декларативного конвейера, созданный на лету ..................................................583 Глобальная переменная docker ...............................................................................................586 Глобальные переменные ................................................................................................................... 586 Методы глобальной переменной приложения Docker ......................................................... 588 Методы глобальных переменных Docker для работы с образами .................................. 595 Методы глобальных переменных Docker для работы с контейнерами ........................ 600 Запуск Docker через оболочку ................................................................................................601 Резюме ...............................................................................................................................................601 Глава 15. Другие интерфейсы ..........................................................................................604 Использование интерфейса командной строки ..............................................................605 Использование прямого интерфейса SSH ................................................................................. 605 Использование клиента командной строки ............................................................................. 608 Использование REST API ............................................................................................................612 Фильтрация результатов ................................................................................................................... 612 Инициирование сборок ..................................................................................................................... 615 Использование консоли сценариев ...................................................................................... 617 Резюме ...............................................................................................................................................620 Глава 16. Поиск и устранение неисправностей .............................................................621 Детальное изучение шагов конвейера ................................................................................621 Работа с ошибками сериализации .........................................................................................625 Cтиль передачи продолжений ........................................................................................................ 625 Сериализация конвейеров ............................................................................................................... 625 NotSerializableException ................................................................................................................... 626 Обработка несериализуемых ошибок ......................................................................................... 627 Определение строки в вашем сценарии, вызвавшей ошибку....................................630 Обработка исключений в конвейере....................................................................................632 Использование недекларативного кода в декларативном конвейере ..................632 Неутвержденный код (утверждение сценариев и методов) ....................................... 637 Неподдерживаемые операции ...............................................................................................638 Системные журналы.....................................................................................................................638 Временные метки .........................................................................................................................640
Стр.13
Оглавление  13 Настройка долговечности конвейера ...................................................................................642 Резюме ...............................................................................................................................................644 Сведения об авторе ...........................................................................................................645 Об иллюстрации на обложке ...........................................................................................646 Предметный указатель .....................................................................................................647
Стр.14

Облако ключевых слов *


* - вычисляется автоматически
.