Доступ по SSH к виртуальной машине с использованием Jenkins: несколько методов и примеры кода

В сегодняшней записи блога мы рассмотрим различные методы установки SSH-соединения с пользователем root на виртуальной машине (ВМ) с помощью Jenkins. SSH (Secure Shell) — широко используемый протокол для безопасного удаленного доступа к серверам и виртуальным машинам. Интегрировав популярный сервер автоматизации Jenkins, мы можем упростить процесс управления виртуальными машинами и удаленного выполнения задач. В этой статье мы обсудим несколько подходов с примерами кода для реализации этой функциональности.

Метод 1: плагин агента SSH

Плагин SSH Agent в Jenkins позволяет безопасно хранить и использовать учетные данные SSH. Вот как вы можете использовать этот плагин для установки SSH-соединения с пользователем root к виртуальной машине:

Шаг 1. Установите плагин SSH-агента

  1. Перейдите на панель управления Jenkins и выберите «Управление Jenkins» >«Управление плагинами».
  2. На вкладке «Доступно» найдите «Агент SSH» и установите флажок рядом с плагином «Агент SSH».
  3. Нажмите кнопку «Установить без перезагрузки».

Шаг 2. Настройте учетные данные Jenkins

  1. На панели управления Jenkins выберите «Учетные данные» >«Система» >«Глобальные учетные данные» >«Добавить учетные данные».
  2. Выберите «Имя пользователя SSH с закрытым ключом» в качестве типа учетных данных.
  3. Введите закрытый ключ SSH вашего root-пользователя, укажите уникальный идентификатор и сохраните учетные данные.

Шаг 3. Настройте конвейер Jenkins

  1. Создайте или откройте существующий сценарий конвейера Jenkins.
  2. Добавьте следующий фрагмент кода в сценарий конвейера:
node {
    // Load SSH credentials
    withCredentials([sshUserPrivateKey(credentialsId: 'YOUR_CREDENTIAL_ID', keyFileVariable: 'SSH_KEY')]) {
        // SSH connection details
        def remoteHost = 'YOUR_VM_IP_ADDRESS'
        def remoteUser = 'root'
        // SSH command
        sh """
            ssh -i $SSH_KEY $remoteUser@$remoteHost <YOUR_COMMAND>
        """
    }
}

Обязательно замените YOUR_CREDENTIAL_ID, YOUR_VM_IP_ADDRESS и YOUR_COMMAND соответствующими значениями.

Метод 2: плагин SSH Pipeline Steps

Другой способ установить SSH-соединение с пользователем root к виртуальной машине — использовать плагин SSH Pipeline Steps. Этот плагин предоставляет набор команд, специально разработанных для SSH-соединений. Вот пример:

Шаг 1. Установите плагин SSH Pipeline Steps

  1. Перейдите на панель управления Jenkins и выберите «Управление Jenkins» >«Управление плагинами».
  2. На вкладке «Доступно» найдите «Шаги конвейера SSH» и установите флажок рядом с плагином «Шаги конвейера SSH».
  3. Нажмите кнопку «Установить без перезагрузки».

Шаг 2. Настройка конвейера Jenkins

  1. Создайте или откройте существующий сценарий конвейера Jenkins.
  2. Добавьте следующий фрагмент кода в сценарий конвейера:
node {
    // SSH connection details
    def remoteHost = 'YOUR_VM_IP_ADDRESS'
    def remoteUser = 'root'
    // SSH command
    sshCommand remote: remoteHost, user: remoteUser, command: 'YOUR_COMMAND'
}

Опять же, обязательно замените «YOUR_VM_IP_ADDRESS» и «YOUR_COMMAND» соответствующими значениями.

В этой статье мы рассмотрели два разных метода установки SSH-соединения с пользователем root к виртуальной машине с помощью Jenkins. Используя плагин SSH Agent или плагин SSH Pipeline Steps, вы можете автоматизировать и оптимизировать процессы DevOps. Jenkins предоставляет гибкую и мощную платформу для управления виртуальными машинами и удаленного выполнения команд. Следуя предоставленным примерам кода, вы сможете легко интегрировать функциональность SSH в свои конвейеры Jenkins.

Не забывайте безопасно управлять своими учетными данными SSH и следуйте рекомендациям по управлению доступом к вашим виртуальным машинам. Удачной автоматизации!