Агенты в 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
РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе
Конец рекламы. Если там пусто считайте это рекламой моей телеги
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 Freestyle project | |
| Jenkins Pipeline | |
| Credentials | |
| Задания по расписанию | |
| Плагины | |
| Разбор ошибок | |
| DevOps | |
| Docker | |
| Make |