Назад | Перейти на главную страницу

Дженкинс выполняет оболочку scp

У меня есть сборка Jenkins, в которой я пытаюсь скопировать военный файл с одной виртуальной машины на другую. Я хочу сделать это с помощью scp. Я пробовал запустить это в оболочке за пределами Jenkins, и все работает нормально. Пытаться автоматизировать это немного сложно. Мне нужно ввести пароль, чтобы использовать sudo а также необходимо ввести пароль для виртуальной машины, на которую я копирую.

В журналах сборки Jenkins я вижу, что сборка завершается ошибкой после выполнения пользовательского сценария оболочки.

Команда, которую я использую в сборке Jenkins, -

echo 'password' | sudo -S scp -P 5555 application.war user@15.15.15.15:/JBoss/standalone/deployments

На выходе

[sudo] password for jenkins: Sorry, try again.
[sudo] password for jenkins: 
sudo: 1 incorrect password attempt

У меня нет настроек пользователей для Jenkins, поэтому я не понимаю [sudo] password for jenkins ошибка.

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

echo 'password' | sudo -S scp ...

нет, это плохая идея, и это не работает, как много раз обсуждалось в SE. SSH сбрасывает ввод перед чтением пароля. Вам следует настроить ssh-ключи.

Если ключи не подходят, есть также инструмент под названием sshpass, который вы можете использовать для ввода пароля ssh/scp. Последняя возможность expect скрипт, который может взаимодействовать с интерактивными подсказками.