#mercurial #ssh #hudson #jenkins #bitbucket
#mercurial #ssh #хадсон #дженкинс #bitbucket
Вопрос:
Я пытаюсь настроить сервер Debian с Apache2 в качестве интерфейса для Tomcat 7 под управлением Jenkins — который работает — но я хочу, чтобы Jenkins отслеживал частный репозиторий Mercurial, размещенный в bitbucket, и я хотел бы использовать SSH. (Я пробовал использовать обычный https, но все еще безрезультатно — здесь есть ответ на вопрос SO, который рекомендует использовать ssh)
Я развернул Jenkins, используя возможность горячего развертывания Tomcat, удалив Jenkins .Файл войны в / webapps. Я могу сгенерировать пару открытых / приватных ключей на сервере и добавил свой открытый ключ к учетной записи bitbucket — но как мне заставить Дженкинса использовать мой приватный ключ для аутентификации при доступе к приватному репозиторию на bitbucket?
Я видел сообщение в блоге, в котором используется apt-get для установки Hudson в Debian, который создает пользователя Hudson (чтобы я мог добавить закрытый ключ для этого пользователя), но установка его через автоматическое развертывание tomcat не добавляет пользователя Jenkins. Если для Jenkins не настроен пользователь unix, могу ли я настроить тот, который Jenkins будет использовать при аутентификации?
Ответ №1:
Если вы можете управлять командной строкой mercurial из Jenkins, вы можете передать --ssh
команду, чтобы сообщить mercurial, какую ssh-команду вызывать. Вероятно, сработало бы что-то подобное:
hg --ssh '/usr/bin/ssh -i /path/to/private/key' ...
В качестве альтернативы вы можете выяснить, от имени какого пользователя работает Дженкинс (это должен быть какой-то пользователь), и поместить файл у этого пользователя ~/.ssh
, даже если это /root/.ssh/
Комментарии:
1. Он запускается от имени пользователя tomcat, поэтому я сгенерировал для него пару ключей ssh, и теперь он подключается. Спасибо.
2. Я пытался сделать это для Windows, но работа Hudson просто останавливается. Я полагаю, что ожидает запроса пароля, потому что, выполняя это вручную, я должен ввести пароль закрытого ключа (TortoiseHg plinlk). Есть идеи?
3. Ах, да, для этого вам понадобится закрытый ключ без пароля. В качестве альтернативы вы можете использовать pagent и поддерживать его в рабочем состоянии, но ключ без пароля для автоматического пользователя является разумным, если вы не можете использовать его для получения полной оболочки.