Skip to main content

Ssh агент

SSH Agent plugin нахер в данном случае не нужен. Он необходим только для подключения внутри stage с существующего агента к другому серверу.

Сервер, на котором будем выполнять команды:

Добавить пользователя jenkins и добавить нового пользователя в группу sudo, docker (в случае моей задачи) 

sudo adduser jenkins
sudo usermod -aG sudo jenkins
sudo usermod -aG docker jenkins

Авторизоваться на сервере под пользователем jenkins

Установить java

sudo apt update
sudo apt install fontconfig openjdk-17-jre

Создать приватный и публичный ключи для доступа к серверу по ssh пользователя jenkins. 

  mkdir ~/.ssh && cd ~/.ssh
  ssh-keygen -t rsa -C "Access key for Jenkins slaves"
cat id_rsa.pub >> ~/.ssh/authorized_keys

Ключ из файла id_rsa потребуется для настройки доступа Jenkins

Jenkins web интерфейс:

Настройки Jenkins -> Credentials -> System -> Global credentials -> Add credential jenkins_ssh_1.JPG

В раздел ключ вставить текст из файла id_rsa целиком (включая -----BEGIN... ------END...)

Перейти в Настроить Jenkins -> Nodes и создать узел

 jenkins_ssh_2.JPG

Параметры агента:

Параметр Значение
Удаленная корневая директория /home/jenkins/jenkins-agent
Метки docker-agent-01
Host key verification strategy Manually trusted key verification

jenkins_ssh_3.JPG

После настройки в узлах агент должен быть активен.

Тестовый pipeline 

node('docker-agent-01') {
        stage ('second'){
            sh 'hostname'
    }
}

должен вывести хост агента.

В Jenkins текущая рабочая директория -

/home/jenkins/jenkins-agent/workspace/<имя pipeline>