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
- 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
-
- 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)
-
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
-
- 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
-
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
-
- 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
-
- 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
- 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
- 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
-
Obtenez le Dépôt
-
Créez un environnement virtuel Python :
python3 -m venv venv
source venv/bin/activate
- Installez Ansible et les dépendances :
pip install -r requirements.txt
- Vérifiez l'installation :
ansible --version
Configuration
- 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
- 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
- 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
- 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
| Playbook | But |
|---|---|
services/all.yml | Déployer le réseau complet |
services/epc.yml | Déployer les composants EPC 4G |
services/ims.yml | Déployer les services vocaux IMS |
services/omniss7.yml | Déployer la pile SS7 |
services/infra.yml | Déployer les services de support |
services/monitoring.yml | Déployer uniquement le monitoring |
services/license_server.yml | Déployer uniquement le serveur de licences |
services/apt.yml | Configurer le cache APT local |
services/proxmox.yml | Cré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
- Consultez la documentation pour des guides détaillés
- Examinez les fichiers hosts d'exemple pour référence
- Consultez la documentation produit sur https://docs.omnitouch.com.au/
- Contactez le support Omnitouch pour assistance au déploiement
Prochaines Étapes
- Lisez l'Introduction au Déploiement Ansible
- Consultez la Norme de Planification IP pour planifier votre architecture réseau
- Consultez l'Aperçu de l'Architecture de Déploiement
- Créez votre fichier hosts
- Personnalisez avec group_vars selon les besoins
- Déployez votre réseau !