Установка 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

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

Интеграция DevOps (Gitea+Concourse) стека с FreeIPA

По старой схеме продолжаем проект по миграции на отечественное ПО, а именно на RedOS и сегодня настроим интеграцию Gitea и Concourse c доменом FreeIPA. Настройки Gitea для авторизации при помощи…

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

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

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

Интеграция DevOps (Gitea+Concourse) стека с FreeIPA

Интеграция DevOps (Gitea+Concourse) стека с FreeIPA

Шпаргалка по основным командам консоли Ubuntu Linux

Шпаргалка по основным командам консоли Ubuntu Linux

Интеграция Grafana и FreeIPA (авторизация при помощи учетных данных IPA-домена)

Интеграция Grafana и FreeIPA (авторизация при помощи учетных данных IPA-домена)

Linux синхронизация времени (Установка настройка и диагностика chrony)

Linux синхронизация времени (Установка настройка и диагностика chrony)

Интеграция Zabbix и FreeIPA (авторизация пользователей домена)

Интеграция Zabbix и FreeIPA (авторизация пользователей домена)

Собираем корпоративный AI-чат: от выбора модели до работающего прототипа

Собираем корпоративный AI-чат: от выбора модели до работающего прототипа