Ene 26 2009

Hudson (en Windows y como servicio) y CVS

Categoría: Integración ContinuaJuan @ 12:51 pm

Cómo es el sistema, lo primero: un Windows con CVSNT para acceder al repositorio y Hudson en Tomcat configurado como un servicio.

El problema viene cuando Hudson intenta acceder al repositorio por primera vez y la huella del repositorio no está en la caché. Como Hudson lo ejecuta no interactivamente no podemos escribir “yes” y darle al intro al ver el siguiente mensaje:

The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is. The server's key fingerprint is:
ssh-dss 1024 4f:8...
If you trust this host, hit Yes to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, hit No.
If you do not trust this host, hit Cancel to abandon the
connection.SCM check out aborted

Bueno, no hay problema, podemos hacerlo desde la consola y añadir la huella a la cache manualmente… Pues no, ahora el problema es que Hudson es un servicio y ejecuta bajo la cuanta de usuario Local Service Account y yo, personalmente, no sé como puedo entrar al sistema con ese usuario (lo siento, no tengo tanta experiencia con Windows) Supongo (quizá erróneamente) que esta cuenta no se puede usar para entrar al sistema ya que es una cuenta especial y hacerlo con otro usuario no arreglaría nada ya que la caché es dependiente del usuario.

El siguiente paso es añadir la huella manualmente a la caché (un fichero) ya que sé que se puede hacer en Linux. Mal otra vez, Windows no tiene esta caché como un fichero sino que utiliza el registro. Buscando en el registro encontré una entrada para mi usuario (ya que previamente había accedido al repositorio y añadido la huella a la caché) donde estaba la huella guardada y la copié a HKEY_USERS para que cualquier usuario pueda acceder a ella. La entrada es algo así:

Key Name: HKEY_USERS\.DEFAULT\Software\SimonTatham\PuTTY\SshHostKeys
Class Name: NO CLASS
Last Write Time: 23.01.2009 - 18:35
Value 0
Name: dss@22:bla_bla.com
Type: REG_SZ
Data: 0xb477b...

Desde la línea de comandos, se puede añadir la huella fácilmente como sigue:

reg add HKEY_USERS\.DEFAULT\Software\SimonTatham\PuTTY\SshHostKeys /v dss@22:bla_bla.com /d 0xb477b...

Ahora Hudson, ejecutado como un servicio, accede felizmente y sin problemas al repositorio donde está el código.

Etiquetas: , ,