Sincronización y Actualización de Módulos Personalizados en Múltiples Instancias Odoo (Servidor Externo)
Este artículo documenta el proceso de sincronización de módulos personalizados entre instancias de Odoo alojadas en un servidor externo.
Problema
El cliente Jorge Porras Vargas de Logosoft solicitó la actualización y sincronización de los módulos personalizados en tres de sus instancias de Odoo (zurabellanovias, ferreutil, polita) para que coincidieran con las últimas mejoras implementadas en una instancia de referencia (Aldo Nero). El objetivo principal era asegurar la uniformidad de las funcionalidades disponibles y prevenir posibles conflictos o inconsistencias entre los módulos en las diferentes instancias. Las instancias afectadas estaban alojadas en un servidor externo, no gestionado directamente por el equipo de soporte.
Solución
Para resolver la solicitud del cliente, se llevó a cabo el siguiente procedimiento:
- Solicitud de Acceso al Servidor: Se comunicó al cliente la necesidad de acceso SSH al servidor donde se alojaban las instancias de Odoo, ya que estas no se encontraban en la infraestructura gestionada por el equipo de soporte.
-
Provisión de Credenciales de Acceso: El cliente proporcionó la dirección IP del servidor (
217.216.82.150) y las rutas específicas de los directorios de las instancias Odoo dentro de un entorno Docker (ej./opt/odoo-docker/zurabellanovias), junto con la confirmación de acceso mediante una clave pública. -
Comparación de Estructura de Módulos: El ingeniero de soporte accedió al servidor y realizó una comparación exhaustiva de la estructura de módulos personalizados (ubicados en la carpeta
logosoft/dentro de cada instancia) entre la instancia de referencia (Aldo Nero) y las tres instancias objetivo. -
Identificación de Módulos Faltantes: Se identificaron los siguientes módulos que no estaban presentes en las carpetas de módulos personalizados de las instancias objetivo, en comparación con la instancia de referencia:
account_inter_company_rules(faltaba en zurabellanovias, ferreutil, polita)pos_multi_currency(faltaba en zurabellanovias, polita; ya existía en ferreutil)sale_purchase_inter_company_rules(faltaba en zurabellanovias, ferreutil, polita)sale_purchase_stock_inter_company_rules(faltaba en zurabellanovias, ferreutil, polita)
- Copia de Módulos Faltantes: Los módulos personalizados identificados como faltantes fueron copiados desde el directorio de módulos de la instancia de referencia (Aldo Nero) a los directorios correspondientes de cada una de las tres instancias objetivo.
-
Reinicio de Contenedores Odoo: Se reiniciaron los contenedores Docker de las instancias
zurabellanovias,ferreutilypolitapara que Odoo reconociera los nuevos módulos disponibles en sus respectivas rutas. - Comunicación al Cliente: Se informó al cliente que los módulos fueron colocados en las carpetas del servidor y ahora están disponibles para ser instalados. Se aclaró que la instalación en la base de datos de Odoo debe realizarse manualmente desde la interfaz de "Aplicaciones" si el cliente lo requiere.
Causa Raíz
La causa raíz fue la falta de sincronización de los módulos personalizados entre las distintas instancias de Odoo del cliente. Al estar alojadas en un servidor externo y gestionadas de forma independiente, las actualizaciones y adiciones de módulos en una instancia (Aldo Nero) no se replicaban automáticamente en las otras, llevando a una inconsistencia en las funcionalidades disponibles.
Prevención
Para evitar futuras inconsistencias y facilitar la gestión de módulos personalizados en múltiples instancias de Odoo, se recomiendan las siguientes prácticas:
- Centralización de Módulos Personalizados: Implementar un sistema de control de versiones (ej. Git) para todos los módulos personalizados, asegurando que haya una única fuente de verdad para el código base.
- Procesos de Despliegue Automatizados: Establecer scripts o herramientas de automatización (ej. CI/CD) para desplegar módulos personalizados de forma consistente en todas las instancias de Odoo, especialmente en entornos Docker, reduciendo el riesgo de errores manuales.
- Revisión Periódica de Sincronización: Realizar auditorías periódicas de las carpetas de módulos personalizados en todas las instancias para verificar su uniformidad y detectar desviaciones a tiempo.
- Comunicación Clara en Cambios: Asegurar que cualquier cambio o adición de módulos personalizados sea comunicado y planificado para su despliegue en todas las instancias relevantes, involucrando a los equipos técnicos y de negocio.