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
- 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
-
- 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)
-
- Definindo sua topologia de rede
- Configurando funções de rede e seus parâmetros
- Compreendendo a configuração PLMN
- Trabalhando com templates Jinja2
-
- 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
-
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
-
- 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
-
- 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
- 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
- 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
-
Obtenha o Repositório
-
Crie um ambiente virtual Python:
python3 -m venv venv
source venv/bin/activate
- Instale o Ansible e as dependências:
pip install -r requirements.txt
- Verifique a instalação:
ansible --version
Configuração
- 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
- 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
- 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
- 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
| Playbook | Propósito |
|---|---|
services/all.yml | Implantar rede completa |
services/epc.yml | Implantar componentes 4G EPC |
services/ims.yml | Implantar serviços de voz IMS |
services/omniss7.yml | Implantar pilha SS7 |
services/infra.yml | Implantar serviços de suporte |
services/monitoring.yml | Implantar apenas monitoramento |
services/license_server.yml | Implantar apenas servidor de licença |
services/apt.yml | Configurar cache APT local |
services/proxmox.yml | Criar 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
- Verifique a documentação para guias detalhados
- Revise exemplos de arquivos hosts para referência
- Consulte a documentação do produto em https://docs.omnitouch.com.au/
- Entre em contato com o suporte da Omnitouch para assistência na implantação
Próximos Passos
- Leia a Introdução à Implantação Ansible
- Revise o Padrão de Planejamento de IP para planejar sua arquitetura de rede
- Revise a Visão Geral da Arquitetura de Implantação
- Crie seu arquivo hosts
- Personalize com group_vars conforme necessário
- Implante sua rede!