Страница конфигурации Jenkins Pipeline не может достичь GIT, если у пользователя Windows нет учетной записи Devops. - PullRequest
0 голосов
/ 30 марта 2020

Я использую Jenkins Pipeline для выполнения одной сложной миграции пространственных данных. Jenkins работает как служба на сервере windows. Все наши скрипты, включая основной Groovy, находятся в GIT. Проблема, с которой я сталкиваюсь, заключается в том, что на странице конфигурации конвейера возникает проблема с доступом к репозиторию GIT, если только пользователь, запускающий службу Jenkins, не имеет учетной записи в Azure Devops.

Если служба Jenkins запускается с пользователем, который не ' У него нет учетной записи в Devops, на странице конфигурации задания отображается следующее сообщение об ошибке:

Не удалось подключиться к хранилищу: Команда "git .exe ls-remote -h - https://xxxxxxx.visualstudio.com/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/_git/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx HEAD "вернул код состояния 128: stdout: stderr: Ошибка входа в систему, используйте ctrl + c, чтобы отменить запрос учетных данных basi c. Неустранимый: аутентификация не удалась для 'https://xxxxxxx.visualstudio.com/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/_git/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

Экран сообщения об ошибке

Учетная запись, которая упоминается в раскрывающемся списке Учетные данные, как-то игнорируется , Я на самом деле ожидаю, что Дженкинс попытается сразу же получить доступ к GIT, используя эту учетную запись.

Если я запускаю службу Windows с той же учетной записью, которая указана выше в раскрывающемся списке Учетные данные, Дженкинс не отображает здесь сообщение об ошибке и Джобс может быть запущен должным образом.

Может быть, у кого-то есть какое-то решение, кроме запуска службы Jenkins Windows с учетной записью Devops?

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Похоже, что плагин GitSCM полностью игнорирует предоставленные учетные данные. Возможная причина в том, что Jenkins не может использовать встроенную защиту для аутентификации на Azure DevOps. Одно из найденных объяснений состоит в том, что мы не сможем пройти аутентификацию с помощью Microsoft ID, поскольку Дженкинс не может получить зашифрованный токен.

Самый простой способ преодолеть эту проблему - создать личный доступ. Токен, который будет использоваться процессом Jenkins Pipeline для доступа к хранилищу кода. Персональный токен доступа можно создать на странице токенов.

Сгенерированный токен будет использоваться в качестве пароля для специальных учетных данных, которые будут иметь доступ к хранилищу GIT Azure DevOps. Этот пользователь будет сохранен в учетных данных Jenkins:

  • Имя пользователя: «token»
  • Пароль: значение токена, полученное на странице токенов личного доступа
0 голосов
/ 31 марта 2020

Используйте s sh url для клонирования или переключения аутентификации tfs на basi c. Дженкинс не может использовать встроенную безопасность для аутентификации

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