← Todas las utilidades

NSDeploy

Versión 26.1 (build 401) Prueba 30 días
NSDeploy
Índice

Qué es NSDeploy

nsdeploy es la plataforma web de Nacarsoft para el despliegue automatizado de objetos Natural entre entornos ADABAS (vía SYSOBJH). Automatiza el pipeline completo —compilar, transferir y desplegar— con trazabilidad total, control de acceso por roles (RBAC) y soporte multi-entorno. Se opera desde el terminal (init/start/stop/status) y se usa desde el navegador en http://localhost:8080.

Los nombres de servidores, rutas y credenciales de los ejemplos son ficticios: adáptelos a su entorno real.

Casos de uso

1. Pipeline DEV → TST → PRD sin intervención manual

Promocionar la misma versión compilada por los tres entornos, con el mismo procedimiento siempre:

./build/nsdeploy init /tmp/miproyecto   # 1. Inicializar el proyecto
./build/nsdeploy start /tmp/miproyecto  # 2. Arrancar el servicio web
# 3. En http://localhost:8080: crear el paquete, desplegar a DEV,
#    validar, y promocionar el mismo paquete a TST y después a PRD.
./build/nsdeploy status /tmp/miproyecto # 4. Comprobar el servicio

Cada despliegue deja log completo y resultado en el dashboard, así que una promoción a PRD es repetible y auditable.

2. Gestión de paquetes con dependencias y versionado

Agrupar objetos Natural relacionados en un paquete con nombre, descripción y dependencias entre objetos:

./build/nsdeploy start /tmp/miproyecto
# En el dashboard: Paquetes → Nuevo paquete → añadir objetos →
# resolver dependencias → desplegar.

El gestor resuelve las dependencias automáticamente y el histórico de paquetes permite volver a desplegar una versión anterior conocida.

3. Control de acceso granular (RBAC) por equipos

Separar quién puede desplegar a cada entorno mediante la cadena usuarios → grupos → roles → permisos:

./build/nsdeploy start /tmp/miproyecto
# Entrar como admin (admin / admin123, cambiarla de inmediato) e ir al
# panel de administración: crear grupos (p. ej. "desarrollo", "release"),
# asignar roles y conceder solo "desplegar a DEV" al equipo de desarrollo
# y "desplegar a PRD" al equipo de release.

4. Auditoría de cada despliegue

Responder a “¿quién desplegó qué, cuándo y con qué resultado?” desde el histórico inmutable del dashboard: usuario, paquete, entorno, fecha, resultado y log completo de cada ejecución. Útil para revisiones internas y ventanas de cambio de producción.

Interfaz

Paquetes

Despliegues

Referencia

Comandos CLI

Sintaxis: nsdeploy <comando> [dir] [flags][dir] es el directorio del proyecto (config.yaml + db/ + packages/ + logs/ + sysobjh/ + .nsdeploy.pid); por defecto .. --config <dir> es alias oculto de [dir].

ComandoDescripción
init [dir]Crea la estructura del proyecto y el config.yaml inicial
start [dir]Arranca el servidor en segundo plano
stop [dir]Detiene el servidor
status [dir]Muestra el estado del servidor
licenseMuestra el estado de la licencia y el fingerprint de la máquina
upgradeComprueba e instala la última versión desde el servidor de actualizaciones (requiere licencia válida)
--license-fingerprintImprime el fingerprint de la máquina y sale
--versionMuestra la versión

Flags globales: --config <dir> (directorio del proyecto), --port <n> (sobrescribe el puerto), --debug (modo depuración).

Opciones principales de config.yaml

ParámetroDescripción
server.host / server.portInterfaz y puerto web (por defecto 0.0.0.0:8080)
database.pathFichero SQLite con usuarios, grupos, roles y permisos
auth.jwtSecret / auth.jwtExpiryMin / auth.cookieName / auth.resetTokenExpiryMinSecreto y caducidad de sesiones JWT
correo.* / smtp.*Notificaciones por correo (host, port, username, from)
logging.*Directorio y rotación de logs (dir, maxSizeMB, maxAgeDays)
packages.rootDir / packages.sysobjhDir / packages.retentionDays / packages.maxPackagesAlmacén y retención de paquetes
environments.<NOMBRE>.*Por entorno: fuser, naturalBin, pools de buffers, deployTarget, planificación schedule
updates.urlServidor de actualizaciones para upgrade

Áreas de la interfaz web

  • Dashboard: estado en tiempo real de los despliegues, creación de paquetes y log completo de cada ejecución.
  • Paquetes: alta de paquetes (nombre, descripción, objetos), dependencias y versionado.
  • RBAC (administración): usuarios → grupos → roles → permisos; cada permiso autoriza una acción concreta (desplegar a DEV/PRD, gestionar paquetes, ver auditoría…).
  • Auditoría: histórico consultable e inmodificable (usuario, paquete, entorno, fecha, resultado, log).

Ejemplos comentados

# 1. Proyecto nuevo y arranque
./build/nsdeploy init /tmp/miproyecto
./build/nsdeploy start /tmp/miproyecto
./build/nsdeploy status /tmp/miproyecto
# → nsdeploy is running (PID 12345) — listening on 0.0.0.0:8080

# 2. Varios entornos con el mismo binario
./build/nsdeploy init /tmp/prod && ./build/nsdeploy start /tmp/prod
./build/nsdeploy init /tmp/dev  && ./build/nsdeploy start /tmp/dev

# 3. Sobrescribir el puerto sin editar config.yaml
./build/nsdeploy start /tmp/miproyecto --port 8090

# 4. Licencia: estado y fingerprint
./build/nsdeploy license
./build/nsdeploy --license-fingerprint

# 5. Parar el servicio
./build/nsdeploy stop /tmp/miproyecto

Preguntas frecuentes

¿No arranca el servicio? Puerto ocupado: cambie server.port en config.yaml o use --port. Compruebe logs/nsdeploy.log.

¿Falla el despliegue a PRD? Verifique la conexión del entorno PRD en config.yaml (host, usuario, rutas FUSER, binario Natural) y que el origen SSH tenga acceso.

¿Licencia caducada? El trial dura 30 días: solicite una licencia firmada a Nacarsoft y colóquela en /opt/ns/licenses/nsdeploy.key.

¿No se ve el dashboard? Abra el puerto 8080 en el firewall y verifique http://localhost:8080/api/health.

¿Olvidó la contraseña de admin? Use el flujo de restablecimiento configurando correo.* / baseUrl en config.yaml (expiración: auth.resetTokenExpiryMin).

También disponible en: en