Portabilidad de la VM
La máquina virtual original ha podido ser convertida, desplegada y ejecutada sobre infraestructura KVM en un VPS Cloud.
Documento técnico de trabajo para Albert y Francesc de SETAP365. Recoge el proceso de conversión, despliegue, conectividad, seguridad y validación funcional realizado sobre la máquina virtual PisterAdmin.
El objetivo ha sido demostrar que una VM PisterAdmin entregada en formato de máquina virtual puede transformarse en una instancia cloud accesible, securizada y preparada para futuras implantaciones.
La máquina virtual original ha podido ser convertida, desplegada y ejecutada sobre infraestructura KVM en un VPS Cloud.
La aplicación Java/Spring Boot, PostgreSQL 16, SSH y Cockpit han sido verificados como servicios funcionales.
El firewall perimetral de Contabo se ha configurado para limitar el acceso únicamente a la IP corporativa de 2GROW.
El trabajo confirma la viabilidad técnica de un modelo de despliegue PisterAdmin Cloud: partir de una VM base limpia entregada por Enzo, convertirla, subirla a VPS, configurar red, endurecer seguridad y habilitar acceso remoto por SSH y navegador.
Mapa rápido de las áreas documentadas.
Escenario recibido y limitaciones iniciales.
| Elemento | Situación inicial | Resultado tras intervención |
|---|---|---|
| Formato VM | VMware / VMDK entregado como base técnica. | Convertido y desplegado como imagen QCOW2 sobre VPS KVM. |
| Sistema operativo | CentOS Stream 10. | Arranque validado sobre Contabo KVM. |
| Aplicación | PisterAdmin Java/Spring Boot empaquetado como pisteradmin-app.jar. | Aplicación activa en puerto 8080 con contexto /290/. |
| Base de datos | PostgreSQL incluido en la VM. | PostgreSQL 16 activo, enabled y con BD pisteradmin_test1. |
| Red | Configuración dependiente del entorno original VMware. | Red reconstruida manualmente para Contabo: IP pública, máscara, gateway y DNS. |
| Seguridad | Reglas abiertas para pruebas iniciales. | Firewall restringido a IP 2GROW para administración y PisterAdmin. |
Secuencia técnica resumida de las acciones realizadas.
Se parte de una VM VMware entregada para validar su portabilidad hacia infraestructura cloud.
Se realizan conversiones a VDI y pruebas de arranque local para estudiar el comportamiento del sistema.
Se recupera la capacidad de administración del sistema Linux para poder validar servicios y configuración.
Se detecta que el entorno VirtualBox no expone correctamente el conjunto de instrucciones requerido por CentOS Stream 10 / x86-64-v3.
Se prepara la imagen en formato cloud-compatible para importación en Contabo.
Se sube la imagen como Custom Image y se arranca sobre infraestructura KVM.
Se configura manualmente NetworkManager con IP, máscara /20, gateway y DNS.
Se valida SSH, Cockpit, Java, PostgreSQL, Tomcat y acceso web a PisterAdmin.
Se limita el acceso perimetral desde Contabo a la IP corporativa de 2GROW.
Modelo actual desplegado tras la migración.
/pisteradmin/test1/pisteradmin-app.jar
http://IP:8080/290/
pisteradmin_test1
La parte crítica de la migración fue adaptar la configuración de red de VMware al entorno KVM/Contabo.
| Parámetro | Valor aplicado | Estado |
|---|---|---|
| Interfaz | ens18 | OK |
| IP pública | 217.76.54.166/20 | OK |
| Gateway | 217.76.48.1 | OK |
| DNS | 8.8.8.8 · 1.1.1.1 | OK |
| Firewall Contabo | Acceso restringido a IP corporativa 2GROW. | Securizado |
22, 9090 y 8080 accesibles únicamente desde IP 2GROW. PostgreSQL 5432 y AJP 8091 no deben exponerse públicamente.
Reducir superficie de ataque y mantener PisterAdmin accesible solo para tareas de administración o validación interna.
Comprobaciones técnicas ejecutadas sobre la VM ya desplegada en cloud.
| Servicio | Comprobación | Resultado |
|---|---|---|
| SSH | Acceso remoto a Linux por puerto 22. | Operativo |
| Cockpit | Panel Linux en puerto 9090. | Operativo |
| PostgreSQL 16 | systemctl status postgresql-16 | Active / enabled |
| Java | Proceso java -jar pisteradmin-app.jar. | Activo |
| Tomcat | Puerto 8080 con contexto /290/. | Responde |
| AJP | Puerto 8091 identificado como interno. | No publicar |
| Login PisterAdmin | Panel visible en navegador. | Validado |
Selección de comandos representativos utilizados para validar servicios.
systemctl --failed
systemctl status postgresql-16
ps -ef | grep java
ss -ltnp
ip a
ip route
curl ifconfig.mecd /pisteradmin/test1
ls -lah
curl -I http://127.0.0.1:8080/290/
grep -R "server.port\|tomcat.ajp\|datasource" application.propertiesEl informe no incluye contraseñas, hashes ni credenciales operativas. La gestión de acceso a la aplicación PisterAdmin queda documentada como procedimiento pendiente, sin modificar las credenciales actuales.
Aspectos técnicos descubiertos durante la intervención.
CentOS Stream 10 requiere compatibilidad moderna de CPU. En VirtualBox se detectó incompatibilidad con x86-64-v3, lo que impedía el arranque correcto del sistema.
Al desplegar la imagen en Contabo sobre KVM, el sistema arrancó correctamente y los servicios pudieron ser validados.
El contexto real de PisterAdmin es /290/. Por eso / devolvía 404 aunque la app estuviera funcionando.
El puerto 8091 corresponde a AJP interno de Tomcat. No debe publicarse como HTTP ni abrirse al exterior.
Convertir esta validación en un procedimiento repetible para futuras estaciones o entornos SETAP365.
Enzo entrega una imagen sin datos de ninguna estación, con sistema y aplicación base preparados.
2GROW define el proceso estándar de conversión, importación, configuración de red, firewall y validación.
El VPS queda accesible para Enzo por SSH y navegador, con seguridad perimetral y documentación.
Acciones recomendadas para cerrar la migración con garantías.
| Acción | Prioridad | Comentario |
|---|---|---|
| Snapshot Contabo | Alta | Crear punto de restauración ahora que la VM está operativa. |
| Servicio systemd para PisterAdmin | Alta | Formalizar arranque/parada/reinicio de la app con systemctl. |
| Backups PostgreSQL | Alta | Definir estrategia de copia automática de base de datos. |
| Revisión PostgreSQL listen_addresses | Media | Valorar limitar escucha a localhost, además del firewall perimetral. |
| Acceso PisterAdmin | Media | Documentar procedimiento de recuperación o reset controlado de credenciales de aplicación si SETAP365 lo solicita. |
| Monitorización | Media | Uptime, uso de disco, RAM, CPU y servicios críticos. |
Después de recuperar la VM, ponerla en funcionamiento sobre VPS Cloud, asegurar el acceso y validar los servicios principales, llega el momento de revisar conjuntamente el estado actual del proyecto y decidir cómo continuar.
La reunión debe servir para confirmar alcance, prioridades, seguridad, accesos, documentación pendiente y el modelo futuro: una VM limpia entregada por Enzo, preparada para ser desplegada por 2GROW en Contabo con acceso SSH y navegador.