Pular para o conteúdo principal

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:

  1. Cache APT Local - Espelho dos pacotes necessários no local para implantação offline
  2. 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

  1. Revise a Configuração do Arquivo de Hosts para entender como definir sua rede
  2. Aprenda sobre Variáveis de Grupo para personalização
  3. Entenda o Sistema de Cache APT para gestão de pacotes
  4. Revise a Arquitetura de Implantação para ver como tudo se encaixa
  5. Implante!

Próximos Passos