В сегодняшней записи блога мы рассмотрим различные методы установки SSH-соединения с пользователем root на виртуальной машине (ВМ) с помощью Jenkins. SSH (Secure Shell) — широко используемый протокол для безопасного удаленного доступа к серверам и виртуальным машинам. Интегрировав популярный сервер автоматизации Jenkins, мы можем упростить процесс управления виртуальными машинами и удаленного выполнения задач. В этой статье мы обсудим несколько подходов с примерами кода для реализации этой функциональности.
Метод 1: плагин агента SSH
Плагин SSH Agent в Jenkins позволяет безопасно хранить и использовать учетные данные SSH. Вот как вы можете использовать этот плагин для установки SSH-соединения с пользователем root к виртуальной машине:
Шаг 1. Установите плагин SSH-агента
- Перейдите на панель управления Jenkins и выберите «Управление Jenkins» >«Управление плагинами».
- На вкладке «Доступно» найдите «Агент SSH» и установите флажок рядом с плагином «Агент SSH».
- Нажмите кнопку «Установить без перезагрузки».
Шаг 2. Настройте учетные данные Jenkins
- На панели управления Jenkins выберите «Учетные данные» >«Система» >«Глобальные учетные данные» >«Добавить учетные данные».
- Выберите «Имя пользователя SSH с закрытым ключом» в качестве типа учетных данных.
- Введите закрытый ключ SSH вашего root-пользователя, укажите уникальный идентификатор и сохраните учетные данные.
Шаг 3. Настройте конвейер Jenkins
- Создайте или откройте существующий сценарий конвейера Jenkins.
- Добавьте следующий фрагмент кода в сценарий конвейера:
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
- Перейдите на панель управления Jenkins и выберите «Управление Jenkins» >«Управление плагинами».
- На вкладке «Доступно» найдите «Шаги конвейера SSH» и установите флажок рядом с плагином «Шаги конвейера SSH».
- Нажмите кнопку «Установить без перезагрузки».
Шаг 2. Настройка конвейера Jenkins
- Создайте или откройте существующий сценарий конвейера Jenkins.
- Добавьте следующий фрагмент кода в сценарий конвейера:
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 и следуйте рекомендациям по управлению доступом к вашим виртуальным машинам. Удачной автоматизации!