Установка Jenkins-агента в Ubuntu 20.04.5

Оцените статью

Итак, погнали ставить агента на self-hosted решение. Я за докер в любых решениях, но давайте попробуем и другой взгляд на мир. Сделаем свой сборщик и подключим к мастер-узлу и обязательно отключаем функционал воркера на основном узле.

Установка Jenkins Worker (Аналогично мастеру)

# apt install default-jdk -y
# curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee   /usr/share/keyrings/jenkins-keyring.asc > /dev/null
# echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]   https://pkg.jenkins.io/debian-stable binary/ | sudo tee   /etc/apt/sources.list.d/jenkins.list > /dev/null
# apt update -y

Инструкция по запуску агента

Переделываем агента в сервис

На мастер-узле устанавливаем число задач выполняемых его воркером в 0

Обычно инструкция по запуску агента на узле выглядит примерно так.

# echo 879fe284TOKEN > secret-file
# curl -sO https://jenkins.interlan.xyz/jnlpJars/agent.jar
# java -jar agent.jar -jnlpUrl https://jenkins.interlan.xyz/manage/computer/srv%2Dprod%2Djenkins%2Dbuilder/jenkins-agent.jnlp -secret @secret-file -workDir «/var/jenkins»

Это инструкция для одноразового запуска и нам надо переделать это в сервис. Последовательность действий аналогичная для запуска любого jar в качестве сервиса, мы создаем пользователя, home будет в /opt/jenkins-builder и workDir положим там же в хомачке.

За основу возьмем заметку Простой «SystemD-сервис для запуска Java-приложений» и погнали банальную подготовку окружения сборщика.

# useradd jenkins-builder —base-dir /opt
# mkdir /opt/jenkins-builder
# chown -R jenkins-builder:jenkins-builder /opt/jenkins-builder
# su — jenkins-builder

Выглядит норм, но shell поменяем ему на bash или по вкусу.

SystemD-сервис для запуска агента:

[Unit]
Description=Jenkins Agent
After=syslog.target

[Service]
WorkingDirectory=/opt/jenkins-builder
User=jenkins-builder

ExecStart=/usr/lib/jvm/java-11-openjdk-amd64/bin/java -jar agent.jar -jnlpUrl https://jenkins.interlan.xyz/manage/computer/srv%%2Dprod%%2Djenkins%%2Dbuilder/jenkins-agent.jnlp -secret 879TOKEN -workDir «/opt/jenkins-builder/»

[Install]
WantedBy=multi-user.target

Важные моменты:

  • Если URL содержит %, то его надо экранировать как %%
  • В чистом виде токен лучше не прописывать, а использовать хранилище в виде файла и передавать как @secret-file

Активируем агента:

# systemctl daemon-reload
# systemctl enable jenkins-agent
# systemctl start jenkins-agent

Похожие записи

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

GlusterFS — это масштабируемая, распределённая файловая система с открытым исходным кодом, которая объединяет хранилища нескольких серверов в единое пространство имён. Она идеально подходит для создания отказоустойчивых и высокопроизводительных хранилищ, особенно…

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Запихать Mysql в Kubernetes оказалось не очень хорошей идеей и я решил основательно пересмотреть инфраструктуру своего pet-проекта и за основу будет принят кластер из трех серверов. На каждом узле кластера…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Как проверить работу камеры в Ubuntu Linux: диагностика USB и встроенных веб-камер

Как проверить работу камеры в Ubuntu Linux: диагностика USB и встроенных веб-камер

Полное руководство по установке Docker, Docker Compose, kubectl, Helm и k9s в Linux

Полное руководство по установке Docker, Docker Compose, kubectl, Helm и k9s в Linux

Настройка маршрутизации через VipNet: пошаговое руководство для RedOS

Настройка маршрутизации через VipNet: пошаговое руководство для RedOS