Pular para o conteúdo principal

Omnitouch Network Services - Sistema de Implantação Ansible

Visão Geral

Este repositório contém playbooks, funções e configurações do Ansible para implantar soluções completas de rede celular (4G EPC, 5G Core, IMS, SS7) da Omnitouch Network Services. O sistema permite implantações automatizadas e repetíveis de infraestrutura de telecomunicações de nível de produção.

O Que é Implantado

OmniCore (Plataforma de Core de Pacote 4G/5G)

  • OmniHSS - Servidor de Assinante Residencial
  • OmniSGW - Gateway de Serviço (plano de controle)
  • OmniPGW - Gateway de Pacote (plano de controle)
  • OmniUPF - Função de Plano de Usuário
  • OmniDRA - Agente de Roteamento Diameter
  • OmniTWAG - Gateway de Acesso WLAN Confiável

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

OmniCall (Plataforma de Voz e Mensagens)

  • OmniCall CSCF - Controle de Sessão de Chamada (P-CSCF, I-CSCF, S-CSCF)
  • OmniTAS - Servidor de Aplicação IMS (VoLTE, VoNR, VoWiFi)
  • OmniMessage - Centro de SMS (SMS-C)
  • OmniMessage SMPP - Suporte ao protocolo SMPP
  • OmniSS7 - Componentes de sinalização SS7 (STP, HLR, CAMEL)
  • VisualVoicemail - Funcionalidade de correio de voz

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

OmniCharge/OmniCRM

  • OmniCRM - Gestão de relacionamento com o cliente, autoinscrição, faturamento

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

Serviços de Suporte

  • License Server - Licenciamento centralizado
  • DNS - Resolução de DNS da rede
  • Monitoring - Prometheus & Grafana
  • APT Cache - Repositório de pacotes local (opcional)

Documentação

Começando

  1. Introdução à Implantação Ansible
    • Visão geral de como o Ansible é usado para implantar redes celulares
    • Conceitos principais: inventário, funções, playbooks, variáveis
    • Fluxo de trabalho de implantação e benefícios

Conceitos Principais

  1. Padrão de Planejamento de IP

    • Arquitetura de rede e alocação de sub-rede
    • Modelo de implantação de quatro sub-redes
    • Diretrizes de atribuição de endereços IP
    • Manipulação de IPs públicos
    • Métodos de implementação (NICs separadas vs VLANs)
  2. Configuração do Arquivo Hosts

    • Definindo sua topologia de rede
    • Configurando funções de rede e seus parâmetros
    • Compreendendo a configuração PLMN
    • Trabalhando com templates Jinja2
  3. Referência de Configuração

    • Guia completo para todas as variáveis de configuração
    • Configurações de componentes OmniCore (HSS, PGW, SGW, DRA)
    • Configurações de componentes OmniCall (TAS, Message, CSCF)
    • Configuração em tempo de execução explicada
    • Referência de variáveis com exemplos
  4. Variáveis de Grupo e Configuração

    • Personalizando implantações sem modificar funções
    • Precedência de variáveis e mesclagem
    • Integração de templates Jinja2
    • Melhores práticas para substituições de configuração

Infraestrutura

  1. Sistema de Cache APT

    • Opções de distribuição de pacotes (cache local vs. repositório público)
    • Como pacotes pré-compilados são entregues
    • Configurando implantações offline/isoladas
    • Configuração do cache APT local
  2. License Server

    • Gestão centralizada de licenças
    • Modelos de implantação (local, nuvem, híbrido)
    • Recursos controlados por licença
    • Alta disponibilidade e solução de problemas

Utilitários

  1. Playbooks de Utilidade
    • Health Check: Gere relatórios HTML de saúde do sistema, status de serviço e versões
    • Common/Setup Users: Configuração base do sistema e do usuário
    • Reboot: Reinicializações suaves do sistema
    • IP Plan Generator: Documentação da topologia da rede
    • HSS Backup: Utilitários de backup de banco de dados
    • Troubleshooting: Recuperação de captura de pacotes, atualizações de MTU

Visão Completa

  1. Visão Geral da Arquitetura de Implantação
    • Como todos os componentes se encaixam
    • Segmentação de rede e segurança
    • Dependências de serviço e ordem de implantação
    • Padrões de escalabilidade e alta disponibilidade

Início Rápido

Pré-requisitos

  • Nó de controle Ubuntu 20.04+
  • Python 3.8+
  • Acesso SSH aos hosts de destino
  • Credenciais apropriadas para o repositório APT
  • Licença válida da Omnitouch

Instalação

  1. Obtenha o Repositório

  2. Crie um ambiente virtual Python:

python3 -m venv venv
source venv/bin/activate
  1. Instale o Ansible e as dependências:
pip install -r requirements.txt
  1. Verifique a instalação:
ansible --version

Configuração

  1. Crie seu arquivo hosts com base no seu design de rede:
cp services/hosts/Example/host_files/template.yml services/hosts/YourCustomer/host_files/production.yml

Veja: Configuração do Arquivo Hosts

  1. Personalize com group_vars (opcional):
mkdir -p services/hosts/YourCustomer/group_vars
# Crie arquivos de personalização conforme necessário

Veja: Configuração de Variáveis de Grupo

  1. Configure o acesso ao repositório APT em seu arquivo hosts:

Para implantações com um servidor de cache APT local (recomendado):

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

# Nenhuma configuração adicional necessária!
# use_apt_cache e apt_repo.apt_server são definidos automaticamente

Ou para acesso direto ao repositório:

all:
vars:
apt_repo:
apt_server: "packages.omnitouch.com"
apt_repo_username: "your-username"
apt_repo_password: "your-password"
use_apt_cache: false # Use repositório público diretamente (não cache)

Veja: Sistema de Cache APT

  1. Configure o servidor de licença:
all:
vars:
license_server_api_urls: ["https://licenses.omnitouch.com/api"]
license_enforced: true

Veja: License Server

Implantação

Implante sua rede completa:

# Implante toda a rede
ansible-playbook -i services/hosts/YourCustomer/host_files/production.yml services/all.yml

# Ou implante 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

Estrutura do Repositório

Omnicore/
├── README.md # Este arquivo
├── docs/ # Documentação
│ ├── 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 # Guia de playbooks de utilidade
│ └── deployment-architecture.md
├── services/ # Playbooks do Ansible
│ ├── hosts/ # Configurações específicas do cliente
│ │ └── Customer_Name/
│ │ ├── host_files/ # Arquivos de inventário
│ │ └── group_vars/ # Substituições de variáveis
│ ├── epc.yml # Implantar core 4G
│ ├── ims.yml # Implantar IMS
│ ├── omniss7.yml # Implantar pilha SS7
│ ├── infra.yml # Implantar serviços de suporte
│ ├── all.yml # Implantar tudo
│ ├── common.yml # Configuração base do sistema
│ ├── setup_users.yml # Gestão de usuários
│ ├── reboot.yml # Utilitário de reinicialização suave
│ └── ... # Playbooks específicos de componentes
├── util_playbooks/ # Utilitários operacionais
│ ├── health_check.yml # Relatório de saúde do sistema
│ ├── ip_plan_generator.yml # Documentação da rede
│ ├── hss_backup.yml # Backups de banco de dados
│ ├─��� getLocalCapture.yml # Recuperação de captura de pacotes
│ └── ... # Outros utilitários
├── roles/ # Funções do Ansible
│ ├── common/ # Configuração base
│ ├── omnihss/ # Implantação do OmniHSS
│ ├── omnisgwc/ # Implantação do OmniSGW
│ ├── omnipgwc/ # Implantação do OmniPGW
│ ├── omni_tas/ # Implantação do OmniTAS
│ ├── omnimessage/ # Implantação do OmniMessage
│ ├── license_server/ # Servidor de licença
│ ├── monitoring/ # Prometheus/Grafana
│ └── ... # Outras funções de componentes
└── requirements.txt # Dependências do Python

Principais Recursos

Implantação Automatizada

  • Rede celular completa implantada em horas
  • Configuração consistente entre ambientes
  • Implantações repetíveis para desenvolvimento, teste e produção

Configuração Flexível

  • Templates Jinja2 para geração dinâmica de configuração
  • group_vars para personalização específica do cliente
  • Sem necessidade de modificar funções principais

Gerenciamento de Pacotes

  • Pacotes binários pré-compilados (.deb)
  • Cache APT local para implantações offline
  • Repositório público para sites conectados à internet

Infraestrutura como Código

  • Toda configuração sob controle de versão Git
  • Rastrear alterações e permitir rollback
  • Revisar alterações antes da implantação

Playbooks Comuns

PlaybookPropósito
services/all.ymlImplantar rede completa
services/epc.ymlImplantar componentes 4G EPC
services/ims.ymlImplantar serviços de voz IMS
services/omniss7.ymlImplantar pilha SS7
services/infra.ymlImplantar serviços de suporte
services/monitoring.ymlImplantar apenas monitoramento
services/license_server.ymlImplantar apenas servidor de licença
services/apt.ymlConfigurar cache APT local
services/proxmox.ymlCriar VMs no Proxmox

Plataformas Suportadas

Hipervisores

  • Proxmox VE
  • VMware vSphere
  • Instâncias em nuvem (Vultr / AWS / GCP)

Modelos de Implantação

  • No local (data center do cliente)
  • Nuvem (AWS, Azure, GCP via vLab)
  • Híbrido (mistura de local e nuvem)
  • Isolado (completamente offline)

Obtendo Ajuda

  1. Verifique a documentação para guias detalhados
  2. Revise exemplos de arquivos hosts para referência
  3. Consulte a documentação do produto em https://docs.omnitouch.com.au/
  4. Entre em contato com o suporte da Omnitouch para assistência na implantação

Próximos Passos

  1. Leia a Introdução à Implantação Ansible
  2. Revise o Padrão de Planejamento de IP para planejar sua arquitetura de rede
  3. Revise a Visão Geral da Arquitetura de Implantação
  4. Crie seu arquivo hosts
  5. Personalize com group_vars conforme necessário
  6. Implante sua rede!