tool - TeamCity olvidó la contraseña de administrador: ¿dónde buscar?
teamcity tutorial (16)
Simplemente tuve que pasar por este dolor con v5 EAP.
Logré restablecer la contraseña exitosamente ejecutando:
C:/TeamCity/webapps/ROOT/WEB-INF/lib>../../../../jre/bin/java -cp server.jar;common-api.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword admin password c:/TeamCity/.BuildServer
Aunque deberá sustituir C: / TeamCity con el lugar donde se encuentre su instalación.
Necesito recuperar / restablecer la contraseña de administrador para TeamCity de JetBrain.
Tengo acceso RDP completo al servidor, así que no hay problemas allí. Han pasado 2 meses desde que lo usamos, así que ahora olvidé mi nombre de usuario, mis habituales no funcionan.
Está configurado sin una base de datos en este momento, por lo que esperaba que los nombres de usuario estuvieran en un archivo en algún lugar, pero no hubo suerte para encontrarlo hasta el momento.
TeamCity siempre usa una base de datos: si no ha configurado explícitamente una, usa una base de datos HSQLDB para almacenar datos internamente .
Cuando se utiliza una base de datos externa, la información del usuario se almacena dentro de esa base de datos, por lo que parece bastante probable que la información del usuario en su caso se almacene dentro del sistema HSQLDB.
Es posible que pueda obtener acceso al sistema analizando la base de datos, pero le sugiero que primero haga una copia de seguridad.
Segunda sugerencia: soltar un correo electrónico a los chicos de soporte en JetBrains. Incluso antes de que mi lugar de trabajo salpicara una licencia de TeamCity Enterprise, su soporte fue excelente, rápido, preciso y útil.
Pruebe lo siguiente:
Primero pare el servicio TeamCity (también detendría el agente de compilación si estuviera instalado). Luego abra una consola, vaya a su directorio java y ejecute el siguiente comando desde allí:
java.exe -cp server.jar; hsqldb.jar ChangePassword USERNAME PASSWORD "PATH_TO_YOUR_TEAMCITY_INSTALLATION".BuildServer
Con TeamCity 5 utilizando MySQL (probablemente otras versiones y RDBM también, pero no probados), es posible actualizar la contraseña directamente a través de SQL:
mysql> update users set password = md5("mypass123") where username = "bob";
Sin embargo, me quedaría con las versiones de CLI ya mencionadas por otros si no hay una buena razón para no hacerlo.
En caso de que esto ayude a alguien más, quien instaló TeamCity en mi servidor colocó el directorio de compilación bajo el Perfil del Administrador, no en C: / TeamCity.
El primer punto es que si cierra la sesión, la pantalla de inicio de sesión tiene el nombre de usuario ''TCAdmin'' ya rellenado, cuando debería ser ''administrador''. TCAdmin es el nombre completo de (creo) el usuario administrador de la versión 5 predeterminada. Cambiando eso a administrador y luego usando la contraseña, pensé que se había resuelto mi problema.
Para restablecer ... En caso de que ayude a alguien más en Windows XP en la versión 5 de TeamCity, mi información de configuración de .BuildServer también estaba debajo de la carpeta actual de documentos y configuraciones del usuario. También me tropecé con un espacio en la lista de archivos jar en la buena respuesta de Sebastien anterior.
Así que cambié a este directorio en un símbolo del sistema:
c:/teamcity/webapps/ROOT/WEB-INF/lib
y luego esta línea de comando (para establecer la contraseña: Contraseña1) funcionó para mí:
C:/TeamCity/webapps/ROOT/WEB-INF/lib>../../../../jre/bin/java.exe -cp server.jar;commonapi.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword administrator Password1
Que dio salida:
Using TeamCity configuration directory path: C:/Documents and Settings/tamw/.BuildServer
Password changed successfuly
En caso de que ninguno de esos trabajos, vea http://sebastienlachance.com/post/Resetting-TeamCity-Password.aspx .
Abra un símbolo del sistema y vaya a la carpeta / webapps / ROOT / WEB-INF / lib. Ahora escriba lo siguiente:
../../../../jre/bin/java.exe -cp server.jar;common-api.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword username newpassword
Para TeamCity 6.5.4
Desde un símbolo del sistema en la [carpeta de instalación de TeamCity] / webapps / ROOT / WEB-INF / lib:
../../../../jre/bin/java -cp server.jar;common-api.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword admin NewPassword
Mi nombre de usuario era ''admin'' en mi caso (creo que lo configuré durante la instalación, pero no estoy seguro).
Omití la ruta al argumento TeamCity, es lo suficientemente inteligente como para usar la ruta correcta (el mío era c: / users / administrator.BuildServer)
Cuando proporcioné la ruta (incorrecta) a TeamCity como argumento, recibí este mensaje:
Using TeamCity configuration directory path: c:/TeamCity/.BuildServer
Exception in thread "main" java.sql.SQLException: Table not found in statement [UPDATE users SET PASSWORD = ? WHERE USERNAME = ? AND REALM IS NULL]
at org.hsqldb.jdbc.Util.throwError(Util.java:58)
at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(jdbcPreparedStatement.java:1833)
at org.hsqldb.jdbc.jdbcConnection.prepareStatement(jdbcConnection.java:580)
at ChangePassword.main(ChangePassword.java:14)
En caso de que esto confunde a otras personas también.
- Detener teamcity
- Debería pasar la ruta a su servidor de compilación, por ejemplo, si instaló el servidor de compilación en dir "c: /. BuildServer"
........ / jre / bin / java.exe -cp server.jar; common-api.jar; commons-codec-1.3.jar; util.jar; hsqldb.jar ChangePassword nombre_usuario newpassword c: /. BuildServer
Para cambiar la contraseña del usuario:
Servidor de cierre
Cambie al directorio / webapps / ROOT / WEB-INF / lib
Invoca el siguiente comando:
Plataforma Windows: java -cp server.jar; common-api.jar; commons-codec-1.3.jar; util.jar; hsqldb.jar ChangePassword
Plataforma de Unix: java -cp server.jar: common-api.jar: commons-codec-1.3.jar: util.jar: hsqldb.jar ChangePassword
Puede omitir la opción, si está utilizando la ruta predeterminada para los archivos de datos de TeamCity: /.BuildServer
[Ref: http://confluence.jetbrains.com/display/TCD7/Changing+user+password+with+default+authentication+scheme]
Esto es lo que funcionó para mí.
Apagar los servicios del servidor
> cd c:/TeamCity/webapps/ROOT/WEB-INF/lib>
entonces
> ../../../../jre/bin/java.exe -cp server.jar ;common-api.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword admin password1 C:/ProgramData/JetBrains/TeamCity/
Sin la ruta al final, fallaría con:
Exception in thread "main" java.sql.SQLException: Table not found in statement [
UPDATE users SET PASSWORD = ? WHERE USERNAME = ? AND REALM IS NULL]
at org.hsqldb.jdbc.Util.throwError(Util.java:58)
at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(jdbcPreparedStatement.ja
va:1833)
at org.hsqldb.jdbc.jdbcConnection.prepareStatement(jdbcConnection.java:5
80)
at ChangePassword.main(ChangePassword.java:14)
Específicamente para TeamCity corriendo en Tomcat en Windows será C: / ProgramData / JetBrains / TeamCity
El directorio especificado como el último parámetro debe ser su Directorio de Datos (find in /logs/teamcity-server.log)
Obtendrá el error "Tabla no encontrada" si no tiene esto correcto.
Obtendrá un error de ''La base de datos ya está en uso'' si ejecuta TeamCity.
También puede buscar en /logs/teamcity-server.log para ver si creó administrador, administrador u otro nombre de usuario de administrador.
Podría intentar reiniciar la instalación de TeamCity, eliminando el directorio de datos de TeamCity ( $/.BuildServer
directory por defecto)
Estamos utilizando Teamcity 7 con MS SQL Server como el RDBMS.
Para restablecer su contraseña, puede usar la siguiente consulta:
UPDATE users SET password = LOWER(SUBSTRING(sys.fn_sqlvarbasetostr(HASHBYTES(''md5'',''your_new_password'')),3,32))
where username = "your_user_name";
Para todos los que pueden llegar a este artículo años después de la respuesta original, como acabo de hacer, hay una cuenta de superusuario incorporada, y la contraseña se regenera cada vez que se inicia la ciudad del equipo, y la contraseña está en el registro. Puede usar este superusuario para iniciar sesión y restablecer las contraseñas. Es súper fácil.
Desde TeamCity 8 puede iniciar sesión como un súper usuario y cambiar la contraseña de esa manera. Solo necesita usar un nombre de usuario vacío y la última aparición del "token de autenticación de superusuario" que se encuentra en el archivo logs / teamcity-server.log como su contraseña.
Por favor, consulte lo siguiente para obtener más información:
- TeamCity 8 - http://confluence.jetbrains.com/display/TCD8/Super+User
- TeamCity 9 - http://confluence.jetbrains.com/display/TCD9/Super+User
- TeamCity 10 - https://confluence.jetbrains.com/display/TCD10/Super+User