Плагины — основное средство расширения функциональности Jenkins. Существует более тысячи плагинов, которые помогают интегрировать Jenkins с инструментами, представленными в цепочке DevOps-инструментов. С одной стороны, плагины позволяют создавать персонализированные интерфейсы, отвечающие нуждам и потребностям команд. Но с другой — могут становиться узким местом, замедлять и усложнять работу.
В этой статье разберём, что такое плагины, зачем они нужны и как их установить. А также обсудим ключевые недостатки, которые стоит учитывать при выстраивании процессов на проекте.
Что такое плагины
Плагины — основные компоненты, которые позволяют настраивать среду Jenkins так, чтобы она соответствовала требованиям компании или отдельного пользователя. Всего можно установить более 1800 плагинов для интеграции различных инструментов сборки, аналитических инструментов и облачных провайдеров. Плагины охватывают всё: от управления исходным кодом до администрирования приложений. Скажем, чтобы интегрировать Jenkins с инструментами контроля версий, вам понадобится соответствующий плагин.
Плагины Jenkins представляют собой пакеты формата java-архива, которые придерживаются определённой структуры в процессе разработки. Каждый плагин содержит всю необходимую информацию (файлы, изображения, код и др.), вот почему его называют «автономным». Все плагины Jenkins имеют расширение .hpi.
Как установить плагин
Шаг 1: перейдите на панель управления и нажмите на «Manage Jenkins.
Шаг 2: на открывшейся странице выберите «Manage Plugins» в разделе «System Configuration».
Шаг 3: предположим, вы хотите установить плагин «GitHub Authentication» в Jenkins. Для этого нужно нажать на кнопку «Available». Затем найти плагин, который вы хотите установить, в поле поиска и установить напротив флажок. А после нажать «Download now and install after restart».
Если список доступных плагинов пуст, контроллер либо неправильно настроен, либо ещё не загрузил метаданные плагина. Нажмите кнопку «Check now», чтобы Jenkins попытаться связался с Центром обновлений.
Шаг 4: как только указанные шаги будут выполнены, вы перейдёте на страницу установки плагина. И по завершению загрузки получите сообщение об этом. Любой зависимый плагин автоматически начнёт установку вместе с требуемым плагином.
Шаг 5: перезапустите Jenkins. После успешного перезапуска убедитесь, что если установка плагина прошла успешно. Он должен отображаться на вкладке «Installed».
Как установить плагин Jenkins вручную
Иногда нам нужна какая-то конкретная версия плагина в Jenkins. В этом случае мы не можем установить плагин с помощью шагов, упомянутых в предыдущем разделе. Требуется установка вручную.
Шаг 1: предположим, вы хотите установить плагин «HTML Publisher» вручную. Перейдите на страницу плагинов Jenkins и найдите его.
Шаг 2: нажмите на нужный плагин.
Шаг 3: вы окажетесь на странице плагина. Здесь нужно нажать на вкладку «release», чтобы увидеть версии плагина.
Шаг 4: в нашем примере последняя версия — 1.25, но предположим, что вы хотите установить версию 1.24. Нужно прокрутить страницу вниз, перейти к этой версии и нажать на ссылку. После нажатия начнётся загрузка файла hpi.
Шаг 5: теперь в Jenkins перейдите в диспетчер плагинов и нажмите на вкладку «Advanced».
Шаг 6: прокрутите страницу вниз и в разделе плагина для загрузки выберите файл, который загрузили на предыдущем шаге. После этого нажмите на кнопку загрузки.
Шаг 7: как только нажмёте кнопку загрузки, вы перейдёте на страницу установки плагина. По завершению установки вы увидите сообщение об успешном завершении.
Шаг 8: для проверки перейдите в менеджер плагинов. На вкладке «installed» должен быть плагин HTML-публикатора нужной версии.
Что может пойти не так при установке плагинов Jenkins
Во время установки плагинов Jenkins вы можете столкнуться с определённым проблемами. Разберём наиболее распространённые из них.
Плагин Jenkins показывает проблему при инициализации. Есть два возможных объяснения. Первое — плагин несовместим со версией Jenkins. Второе — дело в проблемах с брандмауэром или сетью. В обоих случаях нужно загрузить самые последние версии Jenkins и прокси-источника плагина.
Не удается найти плагин. Причины здесь те же, что и в предыдущем пункте. Если получите такое сообщение об ошибке при поиске плагина, можете загрузить его с официального сайта https://plugins.jenkins.io/.
Почему использование плагинов Jenkins может быть плохим решением
Существует множество повторяющихся проблем, связанных с экосистемой плагинов Jenkins.
Бесконечный цикл обновлений и зависимостей. Для простого проекта может потребоваться более двадцати пяти различных плагинов, поскольку каждый установленный плагин требует установки других. Нередко возникает ситуация, когда вы устанавливаете два плагина, для каждого из которых требуется один и тот же третий, но в разных версиях.
Уязвимости в системе безопасности. Предположим, устанавливаемый плагин небезопасен или содержит ошибки. В этом случае вы идёте на GitHub и ждете, когда всё исправят. Но что, если исправление так и не появится? Есть два варианта развития событий. Вы можете смириться с уязвимостью в системе безопасности, найти замену плагину и модифицировать все свои пайплайны. Либо можете исправить текущий плагин и стать его новым сопровождающим. Но всё это выглядит как большой объём работы, которую придётся выполнять на регулярной основе.
Плохая поддержка. Даже популярные плагины плохо поддерживаются или полностью забрасываются первоначальным сопровождающим. Часто плагины создаются для решения конкретной проблемы, и их создатели не планируют становиться профессиональными сопровождающими.
Отсутствие прозрачности. Без тщательного изучения кода вы не сможете узнать область применения подключаемого плагина, и ваши возможности будут ограничены.
Использовать или не использовать плагины — у этой дилеммы нет простого решения. Всё определяется уровнем вашей команды и особенностями проекта. Ведь, несмотря на перечисленные особенности, плагины всё равно остаются хорошим инструментом для расширения функциональности Jenkins.
Подведём итоги
Итак, мы разобрали, что такое плагины и зачем они нужны. Рассмотрели основные способы установки. А также обсудили проблемы, которые могут возникать при работе с плагинами. Надеемся, эта информация поможет сформировать общее представление и начать более уверенно использовать Jenkins.
А для тех, кто хочет глубоко погрузиться в настройки плагинов и пройти путь от создания простого пайплайна до Jenkins as code, есть наша подписка.
Что даёт подписка
Подписка — это концентрированное обучение с курсами, которые выбираете именно вы. Если хочется одновременно обучиться на Jenkins и DevOps Tools — подписка станет вашим лучшим другом.
Подписка действует 3 месяца и позволяет пройти неограниченное количество курсов из этого списка.