Aller au contenu principal

Omnitouch Network Services - Système de Déploiement Ansible

Aperçu

Ce dépôt contient des playbooks Ansible, des rôles et une configuration pour déployer des solutions complètes de réseau cellulaire (4G EPC, 5G Core, IMS, SS7) d'Omnitouch Network Services. Le système permet des déploiements automatisés et répétables d'infrastructures télécom de qualité production.

Ce qui est Déployé

OmniCore (Plateforme de Noyau de Paquet 4G/5G)

  • OmniHSS - Serveur d'Abonnés à Domicile
  • OmniSGW - Passerelle de Service (plan de contrôle)
  • OmniPGW - Passerelle de Paquet (plan de contrôle)
  • OmniUPF - Fonction de Plan Utilisateur
  • OmniDRA - Agent de Routage Diameter
  • OmniTWAG - Passerelle d'Accès WLAN de Confiance

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

OmniCall (Plateforme de Voix et de Messagerie)

  • OmniCall CSCF - Contrôle de Session d'Appel (P-CSCF, I-CSCF, S-CSCF)
  • OmniTAS - Serveur d'Applications IMS (VoLTE, VoNR, VoWiFi)
  • OmniMessage - Centre SMS (SMS-C)
  • OmniMessage SMPP - Support du protocole SMPP
  • OmniSS7 - Composants de signalisation SS7 (STP, HLR, CAMEL)
  • VisualVoicemail - Fonctionnalité de messagerie vocale

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

OmniCharge/OmniCRM

  • OmniCRM - Gestion de la relation client, auto-inscription, facturation

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

Services de Support

  • License Server - Licences centralisées
  • DNS - Résolution DNS du réseau
  • Monitoring - Prometheus & Grafana
  • APT Cache - Dépôt de paquets local (optionnel)

Documentation

Prise en Main

  1. Introduction au Déploiement Ansible
    • Aperçu de l'utilisation d'Ansible pour déployer des réseaux cellulaires
    • Concepts clés : inventaire, rôles, playbooks, variables
    • Flux de travail de déploiement et avantages

Concepts de Base

  1. Norme de Planification IP

    • Architecture réseau et allocation de sous-réseaux
    • Modèle de déploiement �� quatre sous-réseaux
    • Directives d'attribution d'adresses IP
    • Gestion des IP publiques
    • Méthodes de mise en œuvre (NIC séparés vs VLANs)
  2. Configuration du Fichier Hosts

    • Définir votre topologie réseau
    • Configurer les fonctions réseau et leurs paramètres
    • Comprendre la configuration PLMN
    • Travailler avec des modèles Jinja2
  3. Référence de Configuration

    • Guide complet de toutes les variables de configuration
    • Paramètres des composants OmniCore (HSS, PGW, SGW, DRA)
    • Paramètres des composants OmniCall (TAS, Message, CSCF)
    • Configuration d'exécution expliquée
    • Référence des variables avec exemples
  4. Variables de Groupe et Configuration

    • Personnaliser les déploiements sans modifier les rôles
    • Précédence des variables et fusion
    • Intégration de modèles Jinja2
    • Meilleures pratiques pour les remplacements de configuration

Infrastructure

  1. Système de Cache APT

    • Options de distribution de paquets (cache local vs dépôt public)
    • Comment les paquets précompilés sont livrés
    • Configuration des déploiements hors ligne/isolés
    • Configuration du cache APT local
  2. Serveur de Licences

    • Gestion centralisée des licences
    • Modèles de déploiement (local, cloud, hybride)
    • Fonctionnalités contrôlées par licence
    • Haute disponibilité et dépannage

Utilitaires

  1. Playbooks Utilitaires
    • Vérification de Santé : Générer des rapports HTML sur la santé du système, l'état des services et les versions
    • Utilisateurs Communs/Configuration : Configuration de base du système et des utilisateurs
    • Redémarrer : Redémarrages gracieux du système
    • Générateur de Plan IP : Documentation de la topologie réseau
    • Sauvegarde HSS : Utilitaires de sauvegarde de base de données
    • Dépannage : Récupération de captures de paquets, mises à jour MTU

Vue d'Ensemble

  1. Aperçu de l'Architecture de Déploiement
    • Comment tous les composants s'intègrent
    • Segmentation du réseau et sécurité
    • Dépendances de service et ordre de déploiement
    • Modèles de mise à l'échelle et de haute disponibilité

Démarrage Rapide

Prérequis

  • Nœud de contrôle Ubuntu 20.04+
  • Python 3.8+
  • Accès SSH aux hôtes cibles
  • Identifiants appropriés pour le dépôt APT
  • Licence Omnitouch valide

Installation

  1. Obtenez le Dépôt

  2. Créez un environnement virtuel Python :

python3 -m venv venv
source venv/bin/activate
  1. Installez Ansible et les dépendances :
pip install -r requirements.txt
  1. Vérifiez l'installation :
ansible --version

Configuration

  1. Créez votre fichier hosts basé sur votre conception réseau :
cp services/hosts/Example/host_files/template.yml services/hosts/YourCustomer/host_files/production.yml

Voir : Configuration du Fichier Hosts

  1. Personnalisez avec group_vars (optionnel) :
mkdir -p services/hosts/YourCustomer/group_vars
# Créez des fichiers de personnalisation selon les besoins

Voir : Configuration des Variables de Groupe

  1. Configurez l'accès au dépôt APT dans votre fichier hosts :

Pour les déploiements avec un serveur de cache APT local (recommandé) :

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

# Aucune configuration supplémentaire nécessaire !
# use_apt_cache et apt_repo.apt_server sont automatiquement définis

Ou pour un accès direct au dépôt :

all:
vars:
apt_repo:
apt_server: "packages.omnitouch.com"
apt_repo_username: "your-username"
apt_repo_password: "your-password"
use_apt_cache: false # Utiliser le dépôt public directement (pas de cache)

Voir : Système de Cache APT

  1. Configurez le serveur de licences :
all:
vars:
license_server_api_urls: ["https://licenses.omnitouch.com/api"]
license_enforced: true

Voir : Serveur de Licences

Déploiement

Déployez votre réseau complet :

# Déployer tout le réseau
ansible-playbook -i services/hosts/YourCustomer/host_files/production.yml services/all.yml

# Ou déployer des composants spécifiques :
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

Structure du Dépôt

Omnicore/
├── README.md # Ce fichier
├── docs/ # Documentation
│ ├── 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 # Guide des playbooks utilitaires
│ └── deployment-architecture.md
├── services/ # Playbooks Ansible
│ ├── hosts/ # Configurations spécifiques aux clients
│ │ └── Customer_Name/
│ │ ├── host_files/ # Fichiers d'inventaire
│ │ └── group_vars/ # Remplacements de variables
│ ├── epc.yml # Déployer le cœur 4G
│ ├── ims.yml # Déployer IMS
│ ├── omniss7.yml # Déployer la pile SS7
│ ├── infra.yml # Déployer les services de support
│ ├── all.yml # Tout déployer
│ ├── common.yml # Configuration de base du système
│ ├── setup_users.yml # Gestion des utilisateurs
│ ├── reboot.yml # Utilitaire de redémarrage gracieux
│ └── ... # Playbooks spécifiques aux composants
├── util_playbooks/ # Utilitaires opérationnels
│ ├── health_check.yml # Rapport sur la santé du système
│ ├── ip_plan_generator.yml # Documentation réseau
│ ├── hss_backup.yml # Sauvegardes de base de données
│ ├── getLocalCapture.yml # Récupération de captures de paquets
│ └── ... # Autres utilitaires
├── roles/ # Rôles Ansible
│ ├── common/ # Configuration de base
│ ├── omnihss/ # Déploiement d'OmniHSS
│ ├── omnisgwc/ # Déploiement d'OmniSGW
│ ├── omnipgwc/ # Déploiement d'OmniPGW
│ ├── omni_tas/ # Déploiement d'OmniTAS
│ ├── omnimessage/ # Déploiement d'OmniMessage
│ ├── license_server/ # Serveur de licences
│ ├── monitoring/ # Prometheus/Grafana
│ └── ... # Autres rôles de composants
└── requirements.txt # Dépendances Python

Caractéristiques Clés

Déploiement Automatisé

  • Réseau cellulaire complet déployé en quelques heures
  • Configuration cohérente à travers les environnements
  • Déploiements répétables pour le développement, les tests et la production

Configuration Flexible

  • Modèles Jinja2 pour la génération dynamique de configuration
  • group_vars pour la personnalisation spécifique au client
  • Pas besoin de modifier les rôles de base

Gestion des Paquets

  • Paquets binaires précompilés (.deb)
  • Cache APT local pour les déploiements hors ligne
  • Dépôt public pour les sites connectés à Internet

Infrastructure en tant que Code

  • Toute la configuration dans le contrôle de version Git
  • Suivre les changements et permettre les retours en arrière
  • Examiner les changements avant le déploiement

Playbooks Courants

PlaybookBut
services/all.ymlDéployer le réseau complet
services/epc.ymlDéployer les composants EPC 4G
services/ims.ymlDéployer les services vocaux IMS
services/omniss7.ymlDéployer la pile SS7
services/infra.ymlDéployer les services de support
services/monitoring.ymlDéployer uniquement le monitoring
services/license_server.ymlDéployer uniquement le serveur de licences
services/apt.ymlConfigurer le cache APT local
services/proxmox.ymlCréer des VM sur Proxmox

Plateformes Supportées

Hyperviseurs

  • Proxmox VE
  • VMware vSphere
  • Instances cloud (Vultr / AWS / GCP)

Modèles de Déploiement

  • Sur site (centre de données du client)
  • Cloud (AWS, Azure, GCP via vLab)
  • Hybride (mélange de sur site et de cloud)
  • Isolé (complètement hors ligne)

Obtenir de l'Aide

  1. Consultez la documentation pour des guides détaillés
  2. Examinez les fichiers hosts d'exemple pour référence
  3. Consultez la documentation produit sur https://docs.omnitouch.com.au/
  4. Contactez le support Omnitouch pour assistance au déploiement

Prochaines Étapes

  1. Lisez l'Introduction au Déploiement Ansible
  2. Consultez la Norme de Planification IP pour planifier votre architecture réseau
  3. Consultez l'Aperçu de l'Architecture de Déploiement
  4. Créez votre fichier hosts
  5. Personnalisez avec group_vars selon les besoins
  6. Déployez votre réseau !