Настройка инструментов и агентов с метками

Beginner

Введение

Jenkins может выполнять сборки на различных узлах. Метки (labels) описывают возможности узла, например linux-build, и задания могут требовать наличия соответствующей метки, прежде чем Jenkins поставит их в очередь на выполнение. Jenkins также хранит настройки установленных инструментов, таких как Git, чтобы задания и плагины могли ссылаться на именованный инструмент, вместо того чтобы полагаться на жестко заданные пути.

В этой лабораторной работе вы используете панель управления Jenkins для проверки встроенного узла, добавления метки узла, настройки локального инструмента Git, создания Freestyle-задания с ограничением по метке и проверки результатов сборки.

Открытие страницы встроенного узла

На этом этапе вы найдете встроенный узел Jenkins в панели управления. Узел — это среда, в которой Jenkins может выполнять сборки. В этой лабораторной работе используется встроенный узел, так как он уже запущен в контроллере LabEx Jenkins.

Откройте интерфейс рабочего стола. Firefox автоматически откроет Jenkins. Если этого не произошло, перейдите по адресу http://localhost:8080.

В панели управления Jenkins:

Нажмите Manage Jenkins в левой боковой панели, затем выберите Nodes. Откройте узел с именем Built-In Node.

На странице узла должны отображаться статус встроенного узла и параметры навигации, такие как Configure и Build History.

Страница встроенного узла Jenkins

Выполните эту команду в терминале, чтобы зафиксировать доступность страницы встроенного узла:

curl -fsS http://localhost:8080/computer/%28built-in%29/ | grep -o 'Built-In Node' | head -1 | tee /home/labex/project/built-in-node-page.txt

Вы должны увидеть:

Built-In Node

Добавление метки к встроенному узлу

На этом этапе вы добавите метку linux-build к встроенному узлу. Метка — это тег планирования. Задания, требующие linux-build, могут выполняться только на тех узлах, у которых есть эта метка.

На странице Built-In Node нажмите Configure.

Найдите поле Labels и введите:

linux-build

Нажмите Save.

После сохранения Jenkins вернется на страницу встроенного узла. На странице должна отобразиться метка linux-build.

Метка узла Jenkins

Настройка локального инструмента Git

На этом этапе вы зарегистрируете инструмент Git в Jenkins под названием Local Git. Настройка инструментов позволяет Jenkins ссылаться на именованную установку, вместо того чтобы угадывать, какой исполняемый файл использовать.

В панели управления Jenkins:

Нажмите Manage Jenkins, затем выберите Tools.

Прокрутите страницу до раздела Git installations. Если установка Git уже существует, обновите первую из них. Если в разделе нет установок, нажмите Add Git.

Заполните данные установки Git следующими значениями:

  • Name: Local Git
  • Path to Git executable: git

Нажмите Save.

Jenkins сохранит это определение инструмента в конфигурации контроллера.

Локальный инструмент Git в Jenkins

Выполните эту команду, чтобы проверить сохраненную конфигурацию инструмента Git:

docker exec jenkins sh -lc "grep -n -E '<name>Local Git</name>|<home>git</home>' /var/jenkins_home/hudson.plugins.git.GitTool.xml" | tee /home/labex/project/git-tool-lines.txt

Вывод должен содержать как имя инструмента, так и путь к исполняемому файлу:

...<name>Local Git</name>
...<home>git</home>

Создание задания с ограничением по метке

На этом этапе вы создадите Freestyle-задание с именем labeled-tool-demo. Задание будет ограничено узлами с меткой linux-build, поэтому Jenkins должен будет запланировать его выполнение на встроенном узле с этой меткой.

В панели управления Jenkins:

Нажмите New Item, введите labeled-tool-demo, выберите Freestyle project и нажмите OK.

На странице конфигурации:

Выберите Restrict where this project can be run. В поле Label Expression введите:

linux-build

Прокрутите до раздела Build Steps, нажмите Add build step и выберите Execute shell.

Введите следующий скрипт оболочки:

echo "Running on label: linux-build"
git --version
echo "Local Git is available to this build"

Нажмите Save.

После сохранения откроется страница задания.

Freestyle-задание Jenkins с меткой

Выполните эту команду, чтобы записать важные настройки сохраненного задания:

docker exec jenkins sh -lc "grep -n -E '<assignedNode>linux-build</assignedNode>|Running on label: linux-build|git --version' /var/jenkins_home/jobs/labeled-tool-demo/config.xml" | tee /home/labex/project/labeled-job-config.txt

Запуск задания с меткой

На этом этапе вы запустите задание и прочитаете вывод консоли. Это докажет, что Jenkins принял ограничение по метке и что сборка может использовать Git из настроенной среды.

На странице задания labeled-tool-demo нажмите Build Now.

Когда сборка #1 появится в истории сборок, откройте ее и нажмите Console Output. В консоли должны отобразиться сообщение о метке, строка git version и статус Finished: SUCCESS.

Вывод консоли задания Jenkins с меткой

Выполните эту команду в терминале, чтобы сохранить данные консоли для проверки:

curl -fsS http://localhost:8080/job/labeled-tool-demo/1/consoleText | grep -E 'Running on label|git version|Finished: SUCCESS' | tee /home/labex/project/labeled-job-console.txt

Вы должны увидеть следующий вывод:

Running on label: linux-build
git version ...
Finished: SUCCESS

Резюме

Вы изучили встроенный узел Jenkins, добавили метку linux-build через панель управления, настроили именованный локальный инструмент Git, создали Freestyle-задание с ограничением по метке и подтвердили успешный результат сборки.