Агенты в Jenkins

Содержание
Введение
Запуск агента через SSH
Jenkins агент в Docker окружении
Статьи про Jenkins

Введение

Агенты создаются в следующем разделе

Dashboard → Manage Jenkins → Nodes and Clouds → New Node

SSH

Нужно установить плагин SSH Build Agents plugin

После этого добавится новый Launch method в настройках агента

Нужно добавить Credentials

Scope: Global (Jenkins, nodes, items all child items, etc) ID: mkdocsBuilderCredentials Description: access to mkdocs.andrei.com with private key Username: jenkins Private Key: Enter directly

После этого добавятся jenkins (access to mkdocs.andrei.com with ssh private key) credentials

При создании агента задаём настройки

Name: mkdocs_builder Number of executors: 1 Remote root directory: /home/jenkins Labels: mkdocs mkdocs_builder Launch method: Launch agents via SSH Host: mkdocs.andrei.com Credentials: jenkins (access to mkdocs.andrei.com with ssh private key) Host Key Verification Strategy: Known hosts file Verification Strategy

РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе

Конец рекламы. Если там пусто считайте это рекламой моей телеги

Просмотр переменных окружения BUILD_ID и BUIL_URL Jenkins изображение с сайта www.eth1.ru
Console Output
www.eth1.ru

Jenkins агент в Docker окружении

Если вы запускаете и Jenkins и агента в Docker контейнерах, например через docker compose нужно приготовить пару ключей, например, сгенерировав их с помощью ssh-keygen или Putty

# Jenkins Dockerfile RUN apt-get install -y ssh RUN mkdir -p /home/jenkins/.ssh RUN chown jenkins:jenkins -R /home/jenkins/.ssh RUN echo "jenkins:jenkins" | chpasswd COPY jenkins/.ssh/id_rsa /home/jenkins/.ssh/id_rsa COPY jenkins/.ssh/id_rsa.pub /home/jenkins/.ssh/id_rsa.pub COPY jenkins/.ssh/jenkins_rsa /home/jenkins/.ssh/jenkins_rsa COPY jenkins/.ssh/jenkins_rsa.pub /home/jenkins/.ssh/jenkins_rsa.pub COPY jenkins/.ssh/config /home/jenkins/.ssh/config RUN chown jenkins:jenkins -R /home/jenkins/.ssh/config COPY jenkins/.ssh/id_rsa /var/jenkins_home/.ssh/id_rsa COPY jenkins/.ssh/id_rsa.pub /var/jenkins_home/.ssh/id_rsa.pub COPY jenkins/.ssh/jenkins_rsa /var/jenkins_home/.ssh/jenkins_rsa COPY jenkins/.ssh/jenkins_rsa.pub /var/jenkins_home/.ssh/jenkins_rsa.pub COPY jenkins/.ssh/config /var/jenkins_home/.ssh/config RUN chmod 700 /var/jenkins_home/.ssh RUN chmod 600 /var/jenkins_home/.ssh* RUN chown jenkins:jenkins -R /var/jenkins_home/.ssh RUN chown jenkins:jenkins /var/jenkins_home/.ssh/config

Допустим, агент - это контейнер с RobotFramework

Взаимодействие Jenkins с агентом будем настраивать через SSH , следовательно на агенте нужно установить и запустить ssh.

Установку делаем командой RUN apt-get install -y ssh

Для запуска воспользуемя скриптом entrypoint.sh , который укажем в ENTRYPOINT

Обычно докерфайлы я храню в директории dockerfiles а entrypoint скрипты в поддиректориях к ней.

dockerfiles/ |-- Dockerfile.jenkins |-- Dockerfile.ubuntu.robot |-- jenkins |-- requirements.ubuntu.robot.txt `-- robot `-- entrypoint.sh

Если вы работаете в Windows то скрипт перед копированием в контейнер нужно перекодировать в Unix формат

dos2unix dockerfiles/robot/entrypoint.sh

# Agent's Dockerfile RUN apt-get install -y ssh RUN useradd -rm -d /home/jenkins -s /bin/bash jenkins COPY jenkins/.ssh/jenkins_rsa.pub /home/jenkins/.ssh/authorized_keys RUN chown -R jenkins:jenkins /home/jenkins/.ssh/authorized_keys COPY robot/entrypoint.sh /home/jenkins/entrypoint.sh USER root WORKDIR /home/jenkins RUN chmod +x entrypoint.sh ENTRYPOINT ["/home/jenkins/entrypoint.sh"]

#!/bin/bash # entrypoint.sh service ssh start tail -f /dev/null

Автор статьи: Андрей Олегович

Статьи про Jenkins
Jenkins
Установка Jenkins
Основы Jenkins
Агенты
Jenkins Freestyle project
Jenkins Pipeline
Credentials
Задания по расписанию
Плагины
Разбор ошибок
DevOps
Docker
Make

РЕКЛАМА хостинга Beget, которым я пользуюсь более десяти лет

Изображение баннера

Конец рекламы хостинга Beget, который я всем рекомендую.

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: