跳到主要内容

Omnitouch 网络服务 - Ansible 部署系统

概述

此代码库包含 Ansible 剧本、角色和配置,用于从 Omnitouch 网络服务部署完整的蜂窝网络解决方案(4G EPC、5G Core、IMS、SS7)。该系统支持自动化、可重复的生产级电信基础设施部署。

部署内容

OmniCore (4G/5G 数据核心平台)

  • OmniHSS - 家庭用户服务器
  • OmniSGW - 服务网关(控制平面)
  • OmniPGW - 数据网关(控制平面)
  • OmniUPF - 用户面功能
  • OmniDRA - Diameter 路由代理
  • OmniTWAG - 受信 WLAN 接入网关

参见: https://docs.omnitouch.com.au/docs/repos/OmniCore

OmniCall (语音和消息平台)

  • 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

OmniCharge/OmniCRM

  • OmniCRM - 客户关系管理、自助注册、计费

参见: https://docs.omnitouch.com.au/docs/repos/OmniCharge

支持服务

  • License Server - 集中许可管理
  • DNS - 网络 DNS 解析
  • Monitoring - Prometheus & Grafana
  • APT Cache - 本地软件包库(可选)

文档

入门

  1. Ansible 部署简介
    • Ansible 如何用于部署蜂窝网络的概述
    • 关键概念:库存、角色、剧本、变量
    • 部署工作流和好处

核心概念

  1. IP 规划标准

    • 网络架构和子网分配
    • 四子网部署模型
    • IP 地址分配指南
    • 公共 IP 处理
    • 实施方法(单独 NIC 与 VLAN)
  2. Hosts 文件配置

    • 定义您的网络拓扑
    • 配置网络功能及其参数
    • 理解 PLMN 配置
    • 使用 Jinja2 模板
  3. 配置参考

    • 所有配置变量的完整指南
    • OmniCore 组件设置(HSS、PGW、SGW、DRA)
    • OmniCall 组件设置(TAS、消息、CSCF)
    • 运行时配置说明
    • 带示例的变量参考
  4. 组变量和配置

    • 自定义部署而不修改角色
    • 变量优先级和合并
    • Jinja2 模板集成
    • 配置覆盖的最佳实践

基础设施

  1. APT 缓存系统

    • 软件包分发选项(本地缓存与公共库)
    • 预编译软件包的交付方式
    • 设置离线/隔离部署
    • 本地 APT 缓存配置
  2. License Server

    • 集中许可管理
    • 部署模型(本地、云、混合)
    • 许可控制的功能
    • 高可用性和故障排除

实用工具

  1. 实用工具剧本
    • 健康检查:生成系统健康、服务状态和版本的 HTML 报告
    • Common/Setup Users:基础系统和用户配置
    • Reboot:优雅的系统重启
    • IP 计划生成器:网络拓扑文档
    • HSS 备份:数据库备份工具
    • 故障排除:数据包捕获检索、MTU 更新

完整图景

  1. 部署架构概述
    • 所有组件如何结合在一起
    • 网络分���和安全性
    • 服务依赖关系和部署顺序
    • 扩展和高可用性模式

快速开始

先决条件

  • Ubuntu 20.04+ 控制节点
  • Python 3.8+
  • 对目标主机的 SSH 访问
  • APT 库的适当凭证
  • 有效的 Omnitouch 许可证

安装

  1. 获取代码库

  2. 创建 Python 虚拟环境:

python3 -m venv venv
source venv/bin/activate
  1. 安装 Ansible 和依赖项:
pip install -r requirements.txt
  1. 验证安装:
ansible --version

配置

  1. 根据您的网络设计创建 hosts 文件
cp services/hosts/Example/host_files/template.yml services/hosts/YourCustomer/host_files/production.yml

参见: Hosts 文件配置

  1. 使用 group_vars 自定义(可选):
mkdir -p services/hosts/YourCustomer/group_vars
# 根据需要创建自定义文件

参见: 组变量配置

  1. 在您的 hosts 文件中配置 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

参见: License Server

部署

部署您的完整网络:

# 部署整个网络
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/ # Ansible 剧本
│ ├── 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/ # Ansible 角色
│ ├── common/ # 基础配置
│ ├── omnihss/ # OmniHSS 部署
│ ├── omnisgwc/ # OmniSGW 部署
│ ├── omnipgwc/ # OmniPGW 部署
│ ├── omni_tas/ # OmniTAS 部署
│ ├── omnimessage/ # OmniMessage 部署
│ ├── license_server/ # 许可服务器
│ ├── monitoring/ # Prometheus/Grafana
│ └── ... # 其他组件角色
└── 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在 Proxmox 上创建虚拟机

支持的平台

虚拟化平台

  • Proxmox VE
  • VMware vSphere
  • 云实例(Vultr / AWS / GCP)

部署模型

  • 本地(客户数据中心)
  • 云(AWS、Azure、GCP 通过 vLab)
  • 混合(本地和云的组合)
  • 隔离(完全离线)

获取帮助

  1. 查看 文档 获取详细指南
  2. 查看 示例 hosts 文件 作为参考
  3. 查阅产品文档 https://docs.omnitouch.com.au/
  4. 联系 Omnitouch 支持以获取部署帮助

下一步

  1. 阅读 Ansible 部署简介
  2. 查看 IP 规划标准 以规划您的网络架构
  3. 查看 部署架构概述
  4. 创建您的 hosts 文件
  5. 根据需要使用 group_vars 进行自定义
  6. 部署您的网络!