Saltar al contenido principal

Omnitouch Network Services - Sistema de Despliegue Ansible

Descripción general

Este repositorio contiene playbooks de Ansible, roles y configuración para desplegar soluciones completas de red celular (4G EPC, 5G Core, IMS, SS7) de Omnitouch Network Services. El sistema permite despliegues automatizados y repetibles de infraestructura de telecomunicaciones de calidad de producción.

Qué se despliega

OmniCore (Plataforma de Núcleo de Paquetes 4G/5G)

  • OmniHSS - Servidor de Suscriptores en el Hogar
  • OmniSGW - Puerta de Enlace de Servicio (plano de control)
  • OmniPGW - Puerta de Enlace de Paquetes (plano de control)
  • OmniUPF - Función de Plano de Usuario
  • OmniDRA - Agente de Enrutamiento Diameter
  • OmniTWAG - Puerta de Enlace de Acceso WLAN Confiable

Ver: https://docs.omnitouch.com.au/docs/repos/OmniCore

OmniCall (Plataforma de Voz y Mensajería)

  • OmniCall CSCF - Control de Sesiones de Llamadas (P-CSCF, I-CSCF, S-CSCF)
  • OmniTAS - Servidor de Aplicaciones IMS (VoLTE, VoNR, VoWiFi)
  • OmniMessage - Centro de SMS (SMS-C)
  • OmniMessage SMPP - Soporte para el protocolo SMPP
  • OmniSS7 - Componentes de señalización SS7 (STP, HLR, CAMEL)
  • VisualVoicemail - Funcionalidad de correo de voz

Ver: https://docs.omnitouch.com.au/docs/repos/OmniCall

OmniCharge/OmniCRM

  • OmniCRM - Gestión de relaciones con clientes, auto-registro, facturación

Ver: https://docs.omnitouch.com.au/docs/repos/OmniCharge

Servicios de Soporte

  • License Server - Licenciamiento centralizado
  • DNS - Resolución de DNS de red
  • Monitoring - Prometheus & Grafana
  • APT Cache - Repositorio de paquetes local (opcional)

Documentación

Comenzando

  1. Introducción al Despliegue de Ansible
    • Descripción general de cómo se utiliza Ansible para desplegar redes celulares
    • Conceptos clave: inventario, roles, playbooks, variables
    • Flujo de trabajo de despliegue y beneficios

Conceptos Clave

  1. Estándar de Planificación de IP

    • Arquitectura de red y asignación de subredes
    • Modelo de despliegue de cuatro subredes
    • Directrices para la asignación de direcciones IP
    • Manejo de IP públicas
    • Métodos de implementación (NICs separadas vs VLANs)
  2. Configuración del Archivo de Hosts

    • Definiendo tu topología de red
    • Configurando funciones de red y sus parámetros
    • Entendiendo la configuración de PLMN
    • Trabajando con plantillas Jinja2
  3. Referencia de Configuración

    • Guía completa de todas las variables de configuración
    • Configuraciones de componentes de OmniCore (HSS, PGW, SGW, DRA)
    • Configuraciones de componentes de OmniCall (TAS, Message, CSCF)
    • Configuración en tiempo de ejecución explicada
    • Referencia de variables con ejemplos
  4. Variables de Grupo y Configuración

    • Personalizando despliegues sin modificar roles
    • Precedencia de variables y fusión
    • Integración de plantillas Jinja2
    • Mejores prácticas para sobrescrituras de configuración

Infraestructura

  1. Sistema de Caché APT

    • Opciones de distribución de paquetes (caché local vs. repositorio público)
    • Cómo se entregan los paquetes precompilados
    • Configuración de despliegues offline/aislados
    • Configuración de caché APT local
  2. Servidor de Licencias

    • Gestión de licencias centralizada
    • Modelos de despliegue (local, en la nube, híbrido)
    • Características controladas por licencia
    • Alta disponibilidad y solución de problemas

Utilidades

  1. Playbooks de Utilidad
    • Health Check: Generar informes HTML de salud del sistema, estado de servicios y versiones
    • Common/Setup Users: Configuración base del sistema y de usuarios
    • Reboot: Reinicios del sistema de forma controlada
    • IP Plan Generator: Documentación de la topología de red
    • HSS Backup: Utilidades de respaldo de base de datos
    • Troubleshooting: Recuperación de captura de paquetes, actualizaciones de MTU

Imagen Completa

  1. Descripción General de la Arquitectura de Despliegue
    • Cómo se integran todos los componentes
    • Segmentación de red y seguridad
    • Dependencias de servicios y orden de despliegue
    • Patrones de escalado y alta disponibilidad

Inicio Rápido

Requisitos Previos

  • Nodo de control Ubuntu 20.04+
  • Python 3.8+
  • Acceso SSH a los hosts de destino
  • Credenciales apropiadas para el repositorio APT
  • Licencia válida de Omnitouch

Instalación

  1. Obtén el Repositorio

  2. Crea un entorno virtual de Python:

python3 -m venv venv
source venv/bin/activate
  1. Instala Ansible y dependencias:
pip install -r requirements.txt
  1. Verifica la instalación:
ansible --version

Configuración

  1. Crea tu archivo de hosts basado en tu diseño de red:
cp services/hosts/Example/host_files/template.yml services/hosts/YourCustomer/host_files/production.yml

Ver: Configuración del Archivo de Hosts

  1. Personaliza con group_vars (opcional):
mkdir -p services/hosts/YourCustomer/group_vars
# Crea archivos de personalización según sea necesario

Ver: Configuración de Variables de Grupo

  1. Configura el acceso al repositorio APT en tu archivo de hosts:

Para despliegues con un servidor de caché APT local (recomendado):

apt_cache_servers:
hosts:
your-apt-cache:
ansible_host: 192.168.1.100
gateway: 192.168.1.1

# ¡No se necesita configuración adicional!
# use_apt_cache y apt_repo.apt_server se configuran automáticamente

O para acceso directo al repositorio:

all:
vars:
apt_repo:
apt_server: "packages.omnitouch.com"
apt_repo_username: "your-username"
apt_repo_password: "your-password"
use_apt_cache: false # Usar repositorio público directamente (no caché)

Ver: Sistema de Caché APT

  1. Configura el servidor de licencias:
all:
vars:
license_server_api_urls: ["https://licenses.omnitouch.com/api"]
license_enforced: true

Ver: Servidor de Licencias

Despliegue

Despliega tu red completa:

# Desplegar toda la red
ansible-playbook -i services/hosts/YourCustomer/host_files/production.yml services/all.yml

# O despliega componentes específicos:
ansible-playbook -i services/hosts/YourCustomer/host_files/production.yml services/epc.yml
ansible-playbook -i services/hosts/YourCustomer/host_files/production.yml services/ims.yml
ansible-playbook -i services/hosts/YourCustomer/host_files/production.yml services/infra.yml

Estructura del Repositorio

Omnicore/
├── README.md # Este archivo
├── docs/ # Documentación
│ ├── ansible-introduction.md
│ ├── IP_Planning_Standard.md
│ ├── hosts-file-configuration.md
│ ├── group-vars-configuration.md
│ ├── apt-cache-system.md
│ ├── license-server.md
│ ├── health-check-utility.md # Guía de playbooks de utilidad
│ └── deployment-architecture.md
├── services/ # Playbooks de Ansible
│ ├── hosts/ # Configuraciones específicas del cliente
│ │ └── Customer_Name/
│ │ ├── host_files/ # Archivos de inventario
│ │ └── group_vars/ # Sobrescrituras de variables
│ ├── epc.yml # Desplegar núcleo 4G
│ ├── ims.yml # Desplegar IMS
│ ├── omniss7.yml # Desplegar pila SS7
│ ├── infra.yml # Desplegar servicios de soporte
│ ├── all.yml # Desplegar todo
│ ├── common.yml # Configuración base del sistema
│ ├── setup_users.yml # Gestión de usuarios
│ ├── reboot.yml # Utilidad de reinicio controlado
│ └── ... # Playbooks específicos de componentes
├── util_playbooks/ # Utilidades operativas
│ ├── health_check.yml # Informes de salud del sistema
│ ├── ip_plan_generator.yml # Documentación de red
│ ├── hss_backup.yml # Respaldos de base de datos
│ ├── getLocalCapture.yml # Recuperación de captura de paquetes
│ └── ... # Otras utilidades
├── roles/ # Roles de Ansible
│ ├── common/ # Configuración base
│ ├── omnihss/ # Despliegue de OmniHSS
│ ├── omnisgwc/ # Despliegue de OmniSGW
│ ├── omnipgwc/ # Despliegue de OmniPGW
│ ├── omni_tas/ # Despliegue de OmniTAS
│ ├── omnimessage/ # Despliegue de OmniMessage
│ ├── license_server/ # Servidor de licencias
│ ├── monitoring/ # Prometheus/Grafana
│ └── ... # Otros roles de componentes
└── requirements.txt # Dependencias de Python

Características Clave

Despliegue Automatizado

  • Red celular completa desplegada en horas
  • Configuración consistente en todos los entornos
  • Despliegues repetibles para desarrollo, pruebas y producción

Configuración Flexible

  • Plantillas Jinja2 para generación dinámica de configuraciones
  • group_vars para personalización específica del cliente
  • No es necesario modificar roles centrales

Gestión de Paquetes

  • Paquetes binarios precompilados (.deb)
  • Caché APT local para despliegues offline
  • Repositorio público para sitios conectados a Internet

Infraestructura como Código

  • Toda la configuración en control de versiones Git
  • Seguimiento de cambios y habilitación de retrocesos
  • Revisión de cambios antes del despliegue

Playbooks Comunes

PlaybookPropósito
services/all.ymlDesplegar red completa
services/epc.ymlDesplegar componentes EPC 4G
services/ims.ymlDesplegar servicios de voz IMS
services/omniss7.ymlDesplegar pila SS7
services/infra.ymlDesplegar servicios de soporte
services/monitoring.ymlDesplegar solo monitoreo
services/license_server.ymlDesplegar solo servidor de licencias
services/apt.ymlConfigurar caché APT local
services/proxmox.ymlCrear VMs en Proxmox

Plataformas Soportadas

Hipervisor

  • Proxmox VE
  • VMware vSphere
  • Instancias en la nube (Vultr / AWS / GCP)

Modelos de Despliegue

  • En las instalaciones (centro de datos del cliente)
  • Nube (AWS, Azure, GCP a través de vLab)
  • Híbrido (mezcla de en las instalaciones y nube)
  • Aislado (completamente offline)

Obtener Ayuda

  1. Consulta la documentación para guías detalladas
  2. Revisa ejemplos de archivos de hosts para referencia
  3. Consulta la documentación del producto en https://docs.omnitouch.com.au/
  4. Contacta al soporte de Omnitouch para asistencia en el despliegue

Próximos Pasos

  1. Lee la Introducción al Despliegue de Ansible
  2. Revisa el Estándar de Planificación de IP para planificar tu arquitectura de red
  3. Revisa la Descripción General de la Arquitectura de Despliegue
  4. Crea tu archivo de hosts
  5. Personaliza con group_vars según sea necesario
  6. ¡Despliega tu red!