2016-12-07 2 views
3

У нас есть проекты фристайла, сконфигурированные в Jenkins, запускающие сценарии оболочки как шаги сборки. В некоторых случаях нам нужен доступ к учетным данным для сторонних служб. Мы решили эту проблему, предоставляя полномочия, как:Как сделать учетные данные доступными для сценария оболочки в jenkins

USER=theuser 
PASS=thepass 

в среде проекта (Prepare an environment for the run -> Properties Content)

Это работает хорошо, но это плохое решение, потому что:

  • учетные данные не являются сохранены надежно
  • они видны любому, кто имеет доступ к конфигурации проекта
  • они протекают в консоли Jenkins

Мы исследовали немного и нашли promising plugin, но мы не знаем, как сделать учетные данные, управляемые с помощью плагина доступны для наших сценариев, в идеале, как переменных окружения.

Как мы можем получить доступ к учетным данным, управляемым плагином Jenkins из сценария?

ответ

3
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: yourCredentialsId, usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) { 
    // user name and password will be stored in USERNAME and PASSWORD envs 
} 
+0

Как бы это сделать из сценария bash? – dangonfast

3

Мы используем этот один: https://wiki.jenkins-ci.org/display/JENKINS/Mask+Passwords+Plugin

затем вы указываете переменные окружения, которые вы хотите пароли иметь

Так что, если вы укажете что-то вроде этого: enter image description here

Вы можете использовать $ PASSWORD в своей оболочке позже.

+0

Звучит неплохо, попробуем это – dangonfast