Глобальная цепочка ключей Windows Mercurial

#windows #mercurial #keychain #bamboo

#Windows #mercurial #цепочка ключей #бамбук

Вопрос:

Я пытаюсь заставить mercurial работать на сервере сборки Windows, и у меня возникают проблемы. Я столкнулся с проблемой настройки цепочки ключей mercurial (мне пришлось установить tortoisehg), и она работает для каждого пользователя.

Проблема в том, что я использую Bamboo для запуска сборок, и он запускается как служба NT, принадлежащая SYSTEM . Таким образом, каждый раз, когда он пытается что-либо сделать с hg, ему предлагается ввести пароль.

Очевидно, что я мог бы поместить пароль в конфигурационный файл, но я хочу избежать простого текстового пароля, который просто сидит.

Насколько я могу судить, есть два способа решения этой проблемы. Ни один из которых я не знаю, как это сделать:

  1. Сделайте цепочку ключей mercurial глобальной, а не для каждого пользователя. Возможно, это даже невозможно.
  2. Каким-то образом войдите в систему как СИСТЕМНЫЙ пользователь и выполните с ним несколько команд mercurial, чтобы его цепочка ключей была заполнена информацией о пользователе / пароле.
  3. Что-то совершенно другое …?

Заранее спасибо за любые идеи, которые у вас могут быть!

-Ben

Ответ №1:

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

Во-первых, вы можете запустить службу bamboo от имени любого пользователя, которого вы хотите. Мне нужно было, чтобы она запускалась как обычный пользователь, чтобы были доступны некоторые записи реестра, необходимые моему компилятору. Чтобы настроить пользователя для службы bamboo, вам необходимо отредактировать wrapper.conf ( C:Program FilesBambooconfwrapper.conf при обычной установке). Очевидно, что перед редактированием вам необходимо удалить существующую службу, если она установлена.

Самый простой способ настроить учетную запись для входа — добавить ее в конец файла

 wrapper.ntservice.account=domainusername
wrapper.ntservice.password=s3cr3t.p@ssw0rd
  

Очевидно, что вы можете не захотеть, чтобы ваш пароль для входа в обычный текстовый файл. Есть несколько способов обойти это, поэтому я просто укажу вам: http://wrapper.tanukisoftware.com/doc/english/props-nt.html . wrapper.ntservice.password.prompt может представлять особый интерес.

Если вы используете ssh для Mercurial, есть еще один вариант: вы можете задать свою команду ssh в файле Mercurial.ini. Для сервера сборки я установил большинство этих команд для всей системы сразу, настроив их в файле в C:Program ФайлыTortoiseHghgrc.d . У меня есть строка, которая выглядит как:

 ssh=TortoisePlink.exe -batch -i "C:/Users/autobuilder/hgPrivKey.ppk" -l autobuilder
  

Для меня autobuilder это обычный пользователь, с которым все работает. hgPrivKey.ppk — это файл закрытого ключа, созданный с помощью PuTTYgen. У меня есть открытый ключ в файле authorized_keys на сервере.

Надеюсь, эти предложения помогут кому-нибудь встать на правильный путь.

Комментарии:

1. Приятно! Мне придется вернуться к этому и попробовать, когда у меня будет немного свободного времени.

2. Также обратите внимание на эту ошибку при запуске от имени пользовательского пользователя: оболочка агента изменяет среду , так что PATH переменная не будет содержать необходимых путей, а USERNAME переменная будет лгать вам и системе отчетов. Однако все это должно быть исправлено в версии 6.10 .

Ответ №2:

В итоге мне пришлось вернуть удаленный агент bamboo из службы NT обратно в обычный старый процесс, запущенный под управлением обычного пользователя. Очевидно, что это связано с собственным набором ошибок, связанных с управлением сервером, но пока этого будет достаточно. Я отмечу это как ответ через день или около того, если кто-нибудь не придумает что-нибудь получше.