Использование ssh-agent с jenkins при опросе SCM
Я использую плагин Jenkins ssh-agent для того, чтобы дать ssh учетные данные моим сборкам, что прекрасно работает, однако я настроил его для опроса scm (в данном случае - bitbucket git) для проверки изменений.
И, конечно, чтобы получить доступ к репо, чтобы опросить изменения, ему также нужны эти ssh учетные данные, я не могу найти что-либо связанное с этим в вики, но должен быть способ сделать это.
Кажется, что для них так глупо не реализовывать это, в конце концов, если вам нужны ssh учетные данные для клонирования и сборки, вам также понадобятся их для опроса, верно?
4 ответа
Удаление парольной фразы из ключа SSH является недопустимым шагом.
Ожидается, что плагин jenkins ssh-agent решит эту проблему, но, насколько я могу судить, в настоящее время он не работает в том, что касается опроса:
https://issues.jenkins-ci.org/browse/JENKINS-21226
Начиная с версии Jenkins 1.545, я не нашел надежного и надежного средства для реализации взаимодействия с сервером на основе ssh, которое также охватывает опрос.
Предположим, что ваши Джобс работают на мастере Дженкинса. Чтобы иметь возможность выполнять опрос для Git-репо, для которого требуется соединение SSL:
- Сделайте резервную копию вашего закрытого ключа.
- Удалите фразу-пароль из вашего закрытого ключа, используя одно решение: как мне удалить фразу-пароль для ключа SSH без необходимости создания нового ключа?
- Добавьте секретный ключ без пароля на свой сервер Jenkins в домашнюю подпапку Jenkins home dir + .ssh fe для CEntOS, которая находится в /var/lib/jenkins/.ssh. Убедитесь, что только пользователь jenkins может получить доступ к этому ключу (используйте chmod 600 и chown jenkins:jenkins для этого).
- В диспетчере учетных данных Jenkins добавьте новый SSH-ключ с именем пользователя и укажите полное местоположение для только что настроенного личного ключа, например, /var/lib/jenkins/.ssh/id_rsa
- Настройте свое задание и укажите эти учетные данные для настроек репозитория Git и плагина агента SSH.
После этих шагов вы можете сделать опрос, чтобы вызвать Job, когда это необходимо, а также клонировать и извлечь из самого Job.
РЕДАКТИРОВАТЬ: Хотя приведенное ниже решение, очевидно, работает для комментатора по этому вопросу JIRA, это не для меня. Ваш пробег может отличаться.
На странице конфигурации вашей работы в разделе "Дополнительные действия" добавьте "Принудительный опрос с использованием рабочей области".
Кажется, был доступен с сентября 2014 года.
В самой информации о плагине git много информации о ключах SSH:
https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin
По сути, вам нужно установить ключи на пользователя CI, от имени которого вы запускаете jenkins. (Плагин учетных данных SSH не интегрирован.)