Передача переменной учетных данных PASSWORD из Jenkins в sshpass в скрипте - PullRequest
0 голосов
/ 01 июля 2018

Я установил некоторые глобальные учетные данные в jenkins, тип пароля пользователя.

Теперь я должен отправить файл на целевой сервер внутри моего конвейера.

В качестве аргумента, допустим, моя переменная пароля - secretpassword.

Кто-нибудь знает, как заставить пароль правильно работать с sshpass?

Вот суть того, что я пытаюсь сделать

sh '''
sshpass -p'${PASSWORD}' scp  ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/
'''

Что бы я ни пытался, я не могу получить правильный синтаксис для передачи пароля в sshpass

Если я сделаю следующее, все будет нормально

sh '''
sshpass -p 'secretpassword' scp ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/
'''

Так что я, очевидно, просто напутал, как заставить переменную PASSWORD env правильно выводиться в одинарные кавычки.

Кажется, я уже пробовал несколько тысяч вариантов, у кого-нибудь есть какие-нибудь яркие идеи?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Используйте ''' только если у вас есть несколько команд sh для запуска, если это всего лишь одна команда, тогда делайте это так, и она должна нормально работать

 sh "sshpass -p ${PASSWORD} scp  ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/ "

если вам нужно использовать '''

затем используйте его без одинарных кавычек

sh '''
sshpass -p ${PASSWORD} scp  ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/
'''
0 голосов
/ 02 июля 2018

Попробуйте без одинарных кавычек.

sshpass -p ${PASSWORD} scp ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/

Есть ли какая-то конкретная причина держать его в одинарных кавычках? потому что одинарная кавычка не будет интерполировать переменную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...