Introdução ao Desdobramento do Ansible na Omnitouch
Visão Geral
Os Serviços de Rede Omnitouch usam o Ansible como sua plataforma de automação de infraestrutura para implantar soluções completas de rede celular (4G/5G) de maneira consistente, repetível e automatizada. Este documento fornece uma visão geral de como aproveitamos o Ansible para orquestrar implantações complexas de telecomunicações.
O que é Ansible?
Ansible é uma ferramenta de automação de código aberto que permite:
- Configurar sistemas
- Implantar software
- Orquestrar fluxos de trabalho complexos
- Gerenciar infraestrutura como código
O Ansible usa uma abordagem declarativa - você descreve o estado desejado de seus sistemas, e o Ansible garante que eles alcancem esse estado.
Como a Omnitouch Usa o Ansible
Conceitos Chave
1. Inventário (Arquivos de Hosts)
Define quais sistemas gerenciar. Cada implantação de cliente tem um arquivo de hosts que descreve:
- Todas as máquinas virtuais na rede
- Seus endereços IP
- Configuração de rede
- Parâmetros específicos de serviço
Os arquivos de hosts são com os quais você trabalhará para definir sua rede.
Veja: Configuração do Arquivo de Hosts
2. Funções
Define como configurar cada componente. As funções são unidades reutilizáveis que contêm:
- Tarefas (etapas a serem executadas)
- Modelos (modelos de arquivos de configuração)
- Manipuladores (ações acionadas por alterações)
- Variáveis (valores de configuração padrão)
Exemplos de funções para componentes do OmniCore: omnihss, omnisgwc, omnipgwc, omnidra, etc.
Estas são definidas pela equipe ONS, enquanto você pode editá-las, geralmente há maneiras mais limpas de fazer quaisquer ajustes que você possa precisar a partir do seu arquivo de hosts.
3. Playbooks
Orquestra quando e onde as funções são aplicadas:
- name: Deploy EPC Core
hosts: mme
roles:
- common
- omnimme
Usamos esses essencialmente como grupos para as funções.
4. Variáveis de Grupo
Fornece configuração específica do cliente que substitui os padrões das funções. É aqui que a personalização do cliente acontece sem modificar as funções base.
Veja: Variáveis de Grupo e Configuração
Arquitetura de Implantação
O Processo de Implantação
1. Definir Infraestrutura
Crie um arquivo de hosts descrevendo sua topologia de rede:
Nota de Planejamento: Antes de definir a infraestrutura, revise o Padrão de Planejamento de IP para orientações sobre segmentação de rede, alocação de endereços IP e organização de sub-redes.
Usuários do Proxmox: Se implantando no Proxmox, veja Implantação de VM/LXC do Proxmox para provisionamento automatizado de VM/conteiner.
Veja: Configuração do Arquivo de Hosts e Referência de Configuração
mme:
hosts:
customer-mme01:
ansible_host: 10.10.1.15
mme_code: 1
2. Personalizar Configuração
Defina variáveis específicas do cliente em group_vars:
plmn_id:
mcc: '001'
mnc: '01'
customer_name_short: customer
#ToDo - Adicionar link aqui para referência de configuração para lista completa
3. Executar Playbooks
Implante a rede:
ansible-playbook -i hosts/customer/host_files/production.yml services/epc.yml
4. Implantação Automatizada
O Ansible irá:
- Criar/provisionar VMs (se usando integração Proxmox/VMware)
- Configurar rede
- Instalar pacotes de software do cache APT
- Implantar código de aplicativo
- Configurar serviços com configurações do cliente
- Iniciar serviços
- Validar implantação
Componentes Chave que Implantamos
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 do 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 - Função de Controle de Sessão de Chamada (P-CSCF, I-CSCF, S-CSCF)
- OmniTAS - Servidor de Aplicação IMS (serviços VoLTE/VoNR)
- 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
- Plataforma CRM - Gestão de relacionamento com o cliente, auto-inscrição, faturamento
Veja: https://docs.omnitouch.com.au/docs/repos/OmniCharge
Serviços de Suporte
- DNS - Resolução de DNS da rede
- Servidor de Licenças - Gestão de licenças
- Monitoramento - Prometheus, Grafana
Veja: Visão Geral da Arquitetura de Implantação
Gestão de Pacotes
Usamos um modelo de distribuição de pacotes híbrido:
Pacotes APT Pré-compilados
Todo o software da Omnitouch é distribuído como pacotes Debian (.deb files):
- Construído a partir do código-fonte em nosso pipeline CI/CD
- Versionado e testado
- Hospedado em repositórios de pacotes
Sistema de Cache APT
Os clientes podem escolher entre:
- Cache APT Local - Espelho dos pacotes necessários no local para implantação offline
- Repositório Público - Acesso direto ao repositório de pacotes hospedado pela Omnitouch
Veja: Sistema de Cache APT
Gestão de Licenças
Todos os componentes de software da Omnitouch requerem licenças válidas gerenciadas através de um servidor de licenças central:
- Os componentes verificam a validade da licença na inicialização
- Recursos são ativados/desativados com base na licença
- O servidor de licenças pode ser local ou hospedado na nuvem
Veja: Servidor de Licenças
Benefícios Desta Abordagem
Repetibilidade
Os mesmos playbooks do Ansible podem implantar:
- Laboratórios de desenvolvimento
- Ambientes de teste
- Redes de produção
- Sites de clientes
Consistência
Cada implantação usa as mesmas configurações testadas, reduzindo erros humanos.
Controle de Versão
A infraestrutura é definida como código no Git:
- Rastrear todas as alterações
- Revisar antes da implantação
- Reverter se necessário
Personalização Sem Complexidade
Os clientes podem personalizar sua implantação através de group_vars sem modificar funções principais.
Implantação Rápida
Implante uma rede celular completa em horas em vez de dias ou semanas.
Começando
Pré-requisitos
Antes de executar os playbooks do Ansible, você precisa configurar um ambiente virtual Python e instalar as dependências necessárias.
1. Criar um Ambiente Virtual Python
Crie um ambiente Python isolado para a implantação do Ansible:
python3 -m venv .venv
2. Ativar o Ambiente Virtual
Ative o ambiente virtual:
source .venv/bin/activate
No Windows, use:
.venv\Scripts\activate
3. Instalar Pacotes Necessários
Instale todas as dependências do arquivo requirements.txt:
pip install -r requirements.txt
Isso instalará o Ansible e todos os pacotes Python necessários para a automação de implantação da Omnitouch.
Nota: Mantenha o ambiente virtual ativado sempre que executar comandos do Ansible. Você pode desativá-lo quando terminar executando deactivate.
Etapas de Implantação
- Revise a Configuração do Arquivo de Hosts para entender como definir sua rede
- Aprenda sobre Variáveis de Grupo para personalização
- Entenda o Sistema de Cache APT para gestão de pacotes
- Revise a Arquitetura de Implantação para ver como tudo se encaixa
- Implante!
Próximos Passos
- Padrão de Planejamento de IP - Planeje sua arquitetura de rede e alocação de IP
- Configuração do Arquivo de Hosts - Aprenda como definir sua topologia de rede
- Sistema de Cache APT - Entenda a distribuição de pacotes
- Servidor de Licenças - Aprenda sobre gestão de licenças
- Visão Geral da Arquitetura de Implantação - Veja o quadro completo
- Configuração de Variáveis de Grupo - Personalize sua implantação
- Playbooks Utilitários - Ferramentas operacionais para verificações de saúde, backups e manutenção