В плагине jenkins ssh-agent не удается найти учетные данные, указанные в качестве параметра - PullRequest
0 голосов
/ 02 ноября 2018

Я создал параметр учетных данных TEST_CREDENTIALS, и когда я пытаюсь внедрить его как агент плагина ssh, параметризованный как $ {TEST_CREDENTIALS}, я вижу ошибку ниже

java.io.IOException: [ssh-agent] Не удалось найти указанные учетные данные

1 Ответ

0 голосов
/ 02 ноября 2018

Создание учетных данных в Jenkins не означает, что переменная среды создается автоматически.

Это то, что вы делаете в конвейерном задании, чтобы «получить» данные об учетных данных, а именно имя пользователя и пароль.

.
.
.
environment {
    ARTIFACTORY_CID = 'CREDENTIAL_NAME'
}

withCredentials([usernamePassword(credentialsId: "${env.ARTIFACTORY_CID}", passwordVariable: 'p_password', usernameVariable: 'p_username')]) {
    server.username = "${p_username}"
    server.password = "${p_password}"
}

CREDENTIAL_NAME должно быть удобочитаемым описательным именем для ваших учетных данных (мне нравится называть вещи в зависимости от выполняемой ими функции).

withCredentials([...]) - это конвейерное предложение, которое помещает компоненты учетных данных (в данном случае имя пользователя и пароль) в переменные среды для вас.

Учитывая, что в этом примере мой тип учетных данных "Имя пользователя с паролем", я должен использовать usernamePassword(...). Если бы мой тип учетных данных был «Имя пользователя SSH с закрытым ключом», я бы использовал sshUserPrivateKey(...).

usernameVariable устанавливает имя новой переменной среды для имени пользователя. passwordVariable устанавливает имя новой переменной среды для пароля.

Затем вы можете получить доступ и использовать значения имени пользователя и пароля из учетных данных, используя переменные среды ${p_username} и ${p_password}.

...