fix: version 2.16.2 -- el instalador del agente verifica el token y fuerza la configuracion
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,13 @@
|
|||||||
# Changelog - project.linkedcorp.net
|
# Changelog - project.linkedcorp.net
|
||||||
|
|
||||||
|
## [2.16.2] - 2026-10-20
|
||||||
|
### Fixed
|
||||||
|
- Instalador del agente (Equipos → Agentes): ahora **verifica el token contra el servidor antes de
|
||||||
|
instalar** (token inválido o sin conexión → se detiene con un mensaje claro y no instala), y tras
|
||||||
|
instalar **escribe servidor/usuario/clave/etiqueta en el registro y reinicia el servicio**, así
|
||||||
|
funciona también en equipos que ya tenían el agente instalado (msiexec no reescribe su
|
||||||
|
configuración en ese caso).
|
||||||
|
|
||||||
## [2.16.1] - 2026-10-20
|
## [2.16.1] - 2026-10-20
|
||||||
### Changed
|
### Changed
|
||||||
- Barra superior (topbar) a la mitad de alto (84 px → 42 px).
|
- Barra superior (topbar) a la mitad de alto (84 px → 42 px).
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "project-linkedcorp-backend",
|
"name": "project-linkedcorp-backend",
|
||||||
"version": "2.16.1",
|
"version": "2.16.2",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "src/server.js",
|
"main": "src/server.js",
|
||||||
|
|||||||
@@ -69,6 +69,10 @@ auto-eleva, descarga `GLPI-Agent-<ver>-x64.msi` de GitHub (versión fijada en
|
|||||||
`frontend/src/pages/Equipos/agentInstaller.js#GLPI_AGENT_VERSION`; o usa el .msi que esté junto al
|
`frontend/src/pages/Equipos/agentInstaller.js#GLPI_AGENT_VERSION`; o usa el .msi que esté junto al
|
||||||
.bat), instala con `msiexec /qn` y `RUNNOW=1`, y verifica que el servicio `glpi-agent` corra. El
|
.bat), instala con `msiexec /qn` y `RUNNOW=1`, y verifica que el servicio `glpi-agent` corra. El
|
||||||
token solo se conoce al crearlo, por eso el .bat se genera en la pantalla y no en el servidor.
|
token solo se conoce al crearlo, por eso el .bat se genera en la pantalla y no en el servidor.
|
||||||
|
Antes de instalar, el .bat verifica el token (`POST` de prueba: `400` válido, `401` inválido, `000` sin
|
||||||
|
conexión) y se detiene si no es válido; después fuerza la configuración en el registro (cubre equipos que
|
||||||
|
ya tenían el agente). Proceso por cliente: generar UN token en su Project → descargar el .bat desde ahí →
|
||||||
|
ejecutarlo en cada PC.
|
||||||
Linux: usar el instalador oficial `glpi-agent-<ver>-linux-installer.pl --server=… --user=… --password=…`.
|
Linux: usar el instalador oficial `glpi-agent-<ver>-linux-installer.pl --server=… --user=… --password=…`.
|
||||||
|
|
||||||
## Pendientes / por verificar con un agente real
|
## Pendientes / por verificar con un agente real
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "project-linkedcorp-frontend",
|
"name": "project-linkedcorp-frontend",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "2.16.1",
|
"version": "2.16.2",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -17,6 +17,22 @@ export function buildInstallerBat({ serverUrl, token, tag }) {
|
|||||||
` powershell -NoProfile -Command "Start-Process -FilePath '%~f0' -Verb RunAs"`,
|
` powershell -NoProfile -Command "Start-Process -FilePath '%~f0' -Verb RunAs"`,
|
||||||
' exit /b',
|
' exit /b',
|
||||||
')',
|
')',
|
||||||
|
// Verifica el token ANTES de instalar: 400 = valido (llego al servidor y fallo solo el cuerpo de prueba),
|
||||||
|
// 401 = token invalido, 000 = sin conexion. Asi un token malo nunca deja el agente mal configurado.
|
||||||
|
'echo Verificando el token con el servidor...',
|
||||||
|
'set "CODE="',
|
||||||
|
`for /f %%C in ('curl.exe -s -o nul -w "%%{http_code}" -u project:${token} -X POST "${serverUrl}" -d x 2^>nul') do set "CODE=%%C"`,
|
||||||
|
'if "%CODE%"=="401" (',
|
||||||
|
' echo ERROR: el token no es valido en este servidor. Genere uno en Equipos - Agentes y descargue el instalador de nuevo.',
|
||||||
|
' pause',
|
||||||
|
' exit /b 2',
|
||||||
|
')',
|
||||||
|
'if "%CODE%"=="000" (',
|
||||||
|
` echo ERROR: no hay conexion con ${serverUrl}. Revise la red o internet del equipo.`,
|
||||||
|
' pause',
|
||||||
|
' exit /b 3',
|
||||||
|
')',
|
||||||
|
'if not defined CODE echo Aviso: no se pudo verificar el token ^(curl no disponible^). Se continua con la instalacion.',
|
||||||
`set "MSI=%~dp0${msiName}"`,
|
`set "MSI=%~dp0${msiName}"`,
|
||||||
'if exist "%MSI%" goto instalar',
|
'if exist "%MSI%" goto instalar',
|
||||||
`set "MSI=%TEMP%\\${msiName}"`,
|
`set "MSI=%TEMP%\\${msiName}"`,
|
||||||
@@ -37,6 +53,9 @@ export function buildInstallerBat({ serverUrl, token, tag }) {
|
|||||||
' pause',
|
' pause',
|
||||||
' exit /b %RC%',
|
' exit /b %RC%',
|
||||||
')',
|
')',
|
||||||
|
// Si el agente ya estaba instalado, msiexec no reescribe su configuracion: se fuerza en el registro.
|
||||||
|
'echo Aplicando configuracion...',
|
||||||
|
`powershell -NoProfile -ExecutionPolicy Bypass -Command "$k='HKLM:\\SOFTWARE\\GLPI-Agent'; Set-ItemProperty -Path $k -Name server -Value '${serverUrl}'; Set-ItemProperty -Path $k -Name user -Value 'project'; Set-ItemProperty -Path $k -Name password -Value '${token}';${safeTag ? ` Set-ItemProperty -Path $k -Name tag -Value '${safeTag}';` : ''} Restart-Service glpi-agent"`,
|
||||||
'echo.',
|
'echo.',
|
||||||
'sc query glpi-agent | find "RUNNING" >nul && (echo Listo: el agente esta instalado y en ejecucion. El equipo aparecera en Project en unos minutos.) || (echo Instalado, pero el servicio no esta en ejecucion. Revise services.msc.)',
|
'sc query glpi-agent | find "RUNNING" >nul && (echo Listo: el agente esta instalado y en ejecucion. El equipo aparecera en Project en unos minutos.) || (echo Instalado, pero el servicio no esta en ejecucion. Revise services.msc.)',
|
||||||
'pause',
|
'pause',
|
||||||
|
|||||||
Reference in New Issue
Block a user