Внедрить пароли в сборку как переменные окружения

Я пытаюсь установить пароль в jenkins с помощью параметра в разделе «Создать среду», который можно использовать в моем тесте, чтобы получить пароль и использовать его. Это вариант, который я проверяю в «Вводить пароли в сборку как переменные среды». Проблема в том, что я теряю эти значения после запуска начального задания. Таким образом, мои добавленные значения исчезают после запуска начального задания. Кто-нибудь сталкивался с этой проблемой? Как сделать его постоянным, чтобы каждый раз, когда я мог получать эти pwd в своем тестовом коде?


person Venkat    schedule 10.06.2015    source источник


Ответы (2)


После запуска начального задания все внесенные вручную изменения в сгенерированное задание будут потеряны. Это предполагаемое поведение плагина Job DSL.

Чтобы использовать пароли в задании, сгенерированном Job DSL, используйте плагин Credentials для сохраните пароль (или любой секрет) в Jenkins. Затем используйте плагин привязки учетных данных, чтобы сопоставить пароль со средой. переменная в работе. Взгляните на вики Job DSL, чтобы найти пример.

person daspilker    schedule 10.06.2015
comment
Спасибо за ответ, daspilker. Я знаю, что у нас уже установлен плагин учетных данных. Вышеупомянутый процесс включает в себя сохранение pwd в коде? Моя единственная попытка - не держать пароль открытым в коде. - person Venkat; 11.06.2015
comment
Плагин Credentials Binding отличается от плагина Credentials, и нет необходимости хранить пароль в коде, только идентификатор учетных данных. - person Jesse Glick; 11.06.2015
comment
@JesseGlick, мы используем Job DSL 1.27, поэтому я не могу использовать встроенный вызов привязки учетных данных. Поэтому я пытаюсь написать это через блок «настроить». Я получаю исключение «нет такого свойства». groovy.lang.MissingPropertyException: нет такого свойства: usernameVariable для класса: javaposse.jobdsl.dsl.helpers.wrapper.WrapperContext в com.tgt.esv.jenkins.job.apis.test.GrailsFunctionalTestJob.create_closure1_closure8(GrailsFunctionalTestJob.groovy:115) - person Venkat; 16.06.2015
comment
Вот мой код, для которого я получаю «нет такого свойства». if (isCredentailsBinding) { configure { проект -> проект / 'buildWrappers' / 'org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordMultiBinding' { учетные данныеId = credId usernameVariable= userNameVar passwordVariable = passwordVar - person Venkat; 16.06.2015
comment
Похоже, вам нужно задать новый вопрос об использовании Job DSL. - person Jesse Glick; 16.06.2015

@daspilker , @JesseGlick, большое спасибо за ваши ответы. Это помогло мне написать мой первый блок конфигурации в Jenkins. Упоминание моих действий может помочь другим, столкнувшимся с той же проблемой.

Поскольку мы используем Job DSL 1.27, я не могу использовать учетные данные-привязку напрямую. Поэтому создал блок конфигурации и ввел необходимые переменные через мой скрипт .groovy.

Примечание. Вам необходимо взять преобразованное значение для «credentialsId» из «*****/job/config.xml», если вы получаете сообщение об ошибке «credentialsId не найден».

static def credentialsBinding = { String userNameVar, String passwordVar, String credId, wrapperContext ->
    def nodeBuilder = new NodeBuilder()
    wrapperContext.wrapperNodes << nodeBuilder.'org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper'(plugin: "[email protected]") {
        bindings {
            'org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordMultiBinding' {
                usernameVariable userNameVar
                passwordVariable passwordVar
                credentialsId credId
            }
        }
    }
}
person Venkat    schedule 19.06.2015