Веб-Сервисы Amazon — Передача Файлов И Выполнение Команд Из Скриптового Конвейера Jenkins В Экземпляр Aws

  • Автор темы Kuzya79
  • Обновлено
  • 22, Oct 2024
  • #1

Я хочу передать файлы и выполнить несколько команд на удаленном экземпляре AWS из Дженкинса. Я имею в виду следующие методы, чтобы сделать то же самое.

Обратите внимание, что мой сервер Jenkins работает на локальном сервере, и у меня нет доступа по SSH к Jenkins.

withCredentials([sshUserPrivateKey(credentialsId: "bindu-test", keyFileVariable: 'keyfile')]) {

stage('transfer docker image to ec2') {

sh 'scp -i ${keyfile} test [email protected]:'

1) Использование жестко закодированного файла pem

У меня есть следующий скриптовый конвейер для передачи файлов из конвейера Jenkins в экземпляр AWS EC2.

Однако он не работает и долго ждет, не показывая журналы. https://stackoverflow.com/a/47627460/9403545)

stage('transfer docker image to ec2') {

sh 'scp -oIdentityFile=/var/lib/jenkins/.key.pem docker_image.tar [email protected]:'

2) Использование «учетных данных» Дженкинса

Я добавил файл pem в учетные данные Jenkins, а затем вызвал учетные данные следующим методом. (Ссылка на -

К сожалению, описанный выше метод также не сработал и привел к следующей ошибке.

Каталог /tmp/../Hello не существует.

Я пытался использовать публикацию через SSH, но, похоже, она не поддерживается в конвейере сценариев.

Kuzya79


Рег
15 Feb, 2006

Тем
84

Постов
211

Баллов
691
  • 25, Oct 2024
  • #2

Ниже приведен пример кода для отправки файла или выполнения команды через SSH в jenkins:

node(master)
{

stage(Deploy)

{

sshPublisher(publishers: [sshPublisherDesc(configName: 'LAB-35', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'apt-get update', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '*.war')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])

}
}



Вы можете использовать 'Плагин публикации через SSH'. С помощью этого плагина вы можете отправлять файлы и выполнять команды на удаленном сервере.

Нажмите здесь, чтобы установить плагин.

Настроить

  1. Нажмите «Управление Дженкинсом».
  2. Нажмите «Настроить систему».
  3. Перейдите в раздел «Публикация через SSH».
  4. Введите «/Users/Shared/Jenkins/.ssh/id_rsa» в поле «Путь к ключу».
  5. Нажмите «Добавить» в разделе «SSH-серверы».
  6. Введите любое логическое имя в поле «Имя».
  7. Введите IP-адрес или имя хоста сервера в поле «Имя хоста».
  8. Введите имя пользователя для входа в «Имя пользователя»
  9. Введите любой каталог в «Удаленный каталог».
  10. Нажмите «Проверить конфигурацию».
  11. Нажмите «Сохранить» внизу страницы.

Создать работу

  1. Создайте или скопируйте задание, которое сможет правильно построить WAR.
  2. Как я писал в разделе «Как указать тег Git для обработки», сделайте задание, чтобы можно было указать тег
  3. тег для обработки.
  4. Нажмите «Добавить действие после сборки».
  5. Нажмите «Отправить артефакты сборки через SSH».
  6. Введите «Исходные файлы»
  7. Введите «Удалить префикс»

Введите «Команду выполнения»

  1. https://nozaki.me/roller/kyle/entry/articles-jenkins-sshdeploy
  2. https://medium.com/@weblab_tech/how-to-publish-artifacts-in-jenkins-f021b17fde71
  3. https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plugin

Для получения дополнительной информации:

node(master)
{

stage(Deploy)

{

sshPublisher(publishers: [sshPublisherDesc(configName: 'SERVER_NAME', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'apt-get update', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '*.war')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])

}
}

вы также можете сделать то же самое в сценарии конвейера, см. изображения ниже:

 

Dcpautist


Рег
12 Jun, 2014

Тем
69

Постов
187

Баллов
542
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно