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

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

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