انتقل إلى المحتوى الرئيسي

خدمات شبكة أومنيتوتش - نظام نشر أنسبل

نظرة عامة

يحتوي هذا المستودع على ملفات تشغيل أنسبل، والأدوار، والتكوين لنشر حلول الشبكة الخلوية الكاملة (4G EPC، 5G Core، IMS، SS7) من خدمات شبكة أومنيتوتش. يمكّن النظام من نشر بنية تحتية للاتصالات من الدرجة الإنتاجية بشكل آلي وقابل للتكرار.

ما الذي يتم نشره

أومنيكور (منصة نواة حزمة 4G/5G)

  • OmniHSS - خادم المشتركين المنزليين
  • OmniSGW - بوابة الخدمة (طبقة التحكم)
  • OmniPGW - بوابة الحزمة (طبقة التحكم)
  • OmniUPF - وظ��فة مستوى المستخدم
  • OmniDRA - وكيل توجيه القطر
  • OmniTWAG - بوابة الوصول WLAN الموثوقة

انظر: https://docs.omnitouch.com.au/docs/repos/OmniCore

أومنيكول (منصة الصوت والرسائل)

  • OmniCall CSCF - التحكم في جلسة المكالمات (P-CSCF، I-CSCF، S-CSCF)
  • OmniTAS - خادم تطبيق IMS (VoLTE، VoNR، VoWiFi)
  • OmniMessage - مركز الرسائل القصيرة (SMS-C)
  • OmniMessage SMPP - دعم بروتوكول SMPP
  • OmniSS7 - مكونات إشارة SS7 (STP، HLR، CAMEL)
  • VisualVoicemail - وظيفة البريد الصوتي

انظر: https://docs.omnitouch.com.au/docs/repos/OmniCall

أومنيتشارج/أومنيCRM

  • OmniCRM - إدارة علاقات العملاء، التسجيل الذاتي، الفوترة

انظر: https://docs.omnitouch.com.au/docs/repos/OmniCharge

خدمات الدعم

  • License Server - ترخيص مركزي
  • DNS - حل DNS الشبكي
  • Monitoring - بروميثيوس وغرافانا
  • APT Cache - مستودع حزم محلي (اختياري)

الوثائق

البدء

  1. مقدمة في نشر أنسبل
    • نظرة عامة على كيفية استخدام أنسبل لنشر الشبكات الخلوية
    • المفاهيم الأساسية: الجرد، الأدوار، ملفات التشغيل، المتغيرات
    • سير عمل النشر والفوائد

المفاهيم الأساسية

  1. معيار تخطيط IP

    • بنية الشبكة وتخصيص الشبكة الفرعية
    • نموذج نشر بأربعة شبكات فرعية
    • إرشادات تخصيص عنوان IP
    • التعامل مع IP العامة
    • طرق التنفيذ (بطاقات NIC منفصلة مقابل VLANs)
  2. تكوين ملف المضيفين

    • تعريف طوبولوجيا الشبكة الخاصة بك
    • تكوين وظائف الشبكة ومعلماتها
    • فهم تكوين PLMN
    • العمل مع قوالب Jinja2
  3. مرجع التكوين

    • دليل كامل لجميع متغيرات التكوين
    • إعدادات مكونات OmniCore (HSS، PGW، SGW، DRA)
    • إعدادات مكونات OmniCall (TAS، Message، CSCF)
    • شرح تكوين وقت التشغيل
    • مرجع المتغيرات مع أمثلة
  4. المتغيرات الجماعية والتكوين

    • تخصيص النشر دون تعديل الأدوار
    • أسبقية المتغيرات والدمج
    • دمج قوالب Jinja2
    • أفضل الممارسات لتجاوز التكوين

البنية التحتية

  1. نظام ذاكرة التخزين المؤقت APT

    • خيارات توزيع الحزم (ذاكرة التخزين المؤقت المحلية مقابل المستودع العام)
    • كيفية تسليم الحزم المجمعة مسبقًا
    • إعداد عمليات النشر غير المتصلة/المعزولة
    • تكوين ذاكرة التخزين المؤقت APT المحلية
  2. خادم الترخيص

    • إدارة الترخيص المركزية
    • نماذج النشر (محلي، سحابي، هجين)
    • الميزات التي يتم التحكم فيها بواسطة الترخيص
    • التوافر العالي واستكشاف الأخطاء وإصلاحها

الأدوات

  1. ملفات التشغيل المساعدة
    • فحص الصحة: إنشاء تقارير HTML عن صحة النظام، حالة الخدمة والإصدارات
    • المستخدمون الشائعون/الإعداد: تكوين النظام الأساسي والمستخدمين
    • إعادة التشغيل: إعادة تشغيل النظام بشكل لطيف
    • مولد خطة IP: توثيق طوبولوجيا الشبكة
    • نسخ احتياطي HSS: أدوات نسخ احتياطي للبيانات
    • استكشاف الأخطاء: استرجاع التقاط الحزم، تحديثات MTU

الصورة الكاملة

  1. نظرة عامة على بنية النشر
    • كيف تتناسب جميع المكونات معًا
    • تقسيم الشبكة والأمان
    • تبعيات الخدمة وترتيب النشر
    • أنماط التوسع والتوافر العالي

البدء السريع

المتطلبات المسبقة

  • عقدة تحكم Ubuntu 20.04+
  • Python 3.8+
  • وصول SSH إلى المضيفين المستهدفين
  • بيانات اعتماد مناسبة لمستودع APT
  • ترخيص أومنيتوتش صالح

التثبيت

  1. احصل على المستودع

  2. أنشئ بيئة افتراضية Python:

python3 -m venv venv
source venv/bin/activate
  1. قم بتثبيت أنسبل والاعتمادات:
pip install -r requirements.txt
  1. تحقق من التثبيت:
ansible --version

ال��كوين

  1. أنشئ ملف المضيفين الخاص بك بناءً على تصميم شبكتك:
cp services/hosts/Example/host_files/template.yml services/hosts/YourCustomer/host_files/production.yml

انظر: تكوين ملف المضيفين

  1. خصص مع group_vars (اختياري):
mkdir -p services/hosts/YourCustomer/group_vars
# أنشئ ملفات التخصيص حسب الحاجة

انظر: تكوين المتغيرات الجماعية

  1. قم بتكوين الوصول إلى مستودع APT في ملف المضيفين الخاص بك:

للنشر مع خادم ذاكرة التخزين المؤقت APT محلي (موصى به):

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

# لا حاجة لتكوين إضافي!
# use_apt_cache و apt_repo.apt_server يتم تعيينها تلقائيًا

أو للوصول المباشر إلى المستودع:

all:
vars:
apt_repo:
apt_server: "packages.omnitouch.com"
apt_repo_username: "your-username"
apt_repo_password: "your-password"
use_apt_cache: false # استخدم المستودع العام مباشرة (ليس ذاكرة التخزين المؤقت)

انظر: نظام ذاكرة التخزين المؤقت APT

  1. قم بتكوين خادم الترخيص:
all:
vars:
license_server_api_urls: ["https://licenses.omnitouch.com/api"]
license_enforced: true

انظر: خادم الترخيص

النشر

قم بنشر شبكتك الكاملة:

# نشر الشبكة بالكامل
ansible-playbook -i services/hosts/YourCustomer/host_files/production.yml services/all.yml

# أو نشر مكونات محددة:
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

هيكل المستودع

Omnicore/
├── README.md # هذا الملف
├── docs/ # الوثائق
│ ├── 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 # دليل ملفات التشغيل المساعدة
│ └── deployment-architecture.md
├── services/ # ملفات تشغيل أنسبل
│ ├── hosts/ # تكوينات خاصة بالعميل
│ │ └── Customer_Name/
│ │ ├── host_files/ # ملفات الجرد
│ │ └── group_vars/ # تجاوزات المتغيرات
│ ├── epc.yml # نشر نواة 4G
│ ├── ims.yml # نشر IMS
│ ├── omniss7.yml # نشر كومة SS7
│ ├── infra.yml # نشر خدمات الدعم
│ ├── all.yml # نشر كل شيء
│ ├── common.yml # تكوين النظام الأساسي
│ ├── setup_users.yml # إدارة المستخدمين
│ ├── reboot.yml # أداة إعادة التشغيل بشكل لطيف
│ └── ... # ملفات التشغيل الخاصة بالمكونات
├── util_playbooks/ # الأدوات التشغيلية
│ ├── health_check.yml # تقارير صحة النظام
│ ├── ip_plan_generator.yml # توثيق الشبكة
│ ├── hss_backup.yml # النسخ الاحتياطي للبيانات
│ ├── getLocalCapture.yml # استرجاع التقاط الحزم
│ └── ... # أدوات أخرى
├── roles/ # أدوار أنسبل
│ ├── common/ # التكوين الأساسي
│ ├── omnihss/ # نشر OmniHSS
│ ├── omnisgwc/ # نشر OmniSGW
│ ├── omnipgwc/ # نشر OmniPGW
│ ├── omni_tas/ # نشر OmniTAS
│ ├── omnimessage/ # نشر OmniMessage
│ ├── license_server/ # خادم الترخيص
│ ├── monitoring/ # بروميثيوس/غرافيانا
│ └── ... # أدوار مكونات أخرى
└── requirements.txt # اعتمادات Python

الميزات الرئيسية

النشر الآلي

  • شبكة خلوية كاملة يتم نشرها في ساعات
  • تكوين متسق عبر البيئات
  • عمليات نشر قابلة للتكرار للتطوير، والاختبار، والإنتاج

تكوين مرن

  • قوالب Jinja2 لإنشاء تكوين ديناميكي
  • group_vars لتخصيصات خاصة بالعميل
  • ��ا حاجة لتعديل الأدوار الأساسية

إدارة الحزم

  • حزم ثنائية مجمعة مسبقًا (.deb)
  • ذاكرة تخزين مؤقت APT محلية للنشر غير المتصل
  • مستودع عام لمواقع متصلة بالإنترنت

البنية التحتية ككود

  • جميع التكوينات في نظام التحكم في إصدار Git
  • تتبع التغييرات وتمكين التراجع
  • مراجعة التغييرات قبل النشر

ملفات التشغيل الشائعة

ملف التشغيلالغرض
services/all.ymlنشر الشبكة الكاملة
services/epc.ymlنشر مكونات 4G EPC
services/ims.ymlنشر خدمات الصوت IMS
services/omniss7.ymlنشر كومة SS7
services/infra.ymlنشر خدمات الدعم
services/monitoring.ymlنشر المراقبة فقط
services/license_server.ymlنشر خادم الترخيص فقط
services/apt.ymlإعداد ذاكرة التخزين المؤقت APT المحلية
services/proxmox.ymlإنشاء VMs على Proxmox

المنصات المدعومة

Hypervisors

  • Proxmox VE
  • VMware vSphere
  • مثيلات سحابية (Vultr / AWS / GCP)

نماذج ال��شر

  • في الموقع (مركز بيانات العميل)
  • سحابي (AWS، Azure، GCP عبر vLab)
  • هجين (خلط بين الموقع والسحابة)
  • معزول (غير متصل تمامًا)

الحصول على المساعدة

  1. تحقق من الوثائق للحصول على أدلة تفصيلية
  2. راجع ملفات المضيفين النموذجية للرجوع إليها
  3. استشر الوثائق الخاصة بالمنتج على https://docs.omnitouch.com.au/
  4. اتصل بدعم أومنيتوتش للحصول على مساعدة في النشر

الخطوات التالية

  1. اقرأ مقدمة في نشر أنسبل
  2. راجع معيار تخطيط IP لتخطيط بنية شبكتك
  3. راجع نظرة عامة على بنية النشر
  4. أنشئ ملف المضيفين الخاص بك
  5. خصص مع group_vars حسب الحاجة
  6. انشر شبكتك!