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 - 本地软件包库(可选)
文档
入门
- Ansible 部署简介
- Ansible 如何用于部署蜂窝网络的概述
- 关键概念:库存、角色、剧本、变量
- 部署工作流和好处
核心概念
-
- 网络架构和子网分配
- 四子网部署模型
- IP 地址分配指南
- 公共 IP 处理
- 实施方法(单独 NIC 与 VLAN)
-
- 定义您的网络拓扑
- 配置网络功能及其参数
- 理解 PLMN 配置
- 使用 Jinja2 模板
-
- 所有配置变量的完整指南
- OmniCore 组件设置(HSS、PGW、SGW、DRA)
- OmniCall 组件设置(TAS、消息、CSCF)
- 运行时配置说明
- 带示例的变量参考
-
- 自定义部署而不修改角色
- 变量优先级和合并
- Jinja2 模板集成
- 配置覆盖的最佳实践
基础设施
-
- 软件包分发选项(本地缓存与公共库)
- 预编译软件包的交付方式
- 设置离线/隔离部署
- 本地 APT 缓存配置
-
- 集中许可管理
- 部署模型(本地、云、混合)
- 许可控制的功能
- 高可用性和故障排除
实用工具
- 实用工具剧本
- 健康检查:生成系统健康、服务状态和版本的 HTML 报告
- Common/Setup Users:基础系统和用户配置
- Reboot:优雅的系统重启
- IP 计划生成器:网络拓扑文档
- HSS 备份:数据库备份工具
- 故障排除:数据包捕获检索、MTU 更新
完整图景
- 部署架构概述
- 所有组件如何结合在一起
- 网络分���和安全性
- 服务依赖关系和部署顺序
- 扩展和高可用性模式
快速开始
先决条件
- Ubuntu 20.04+ 控制节点
- Python 3.8+
- 对目标主机的 SSH 访问
- APT 库的适当凭证
- 有效的 Omnitouch 许可证
安装
-
获取代码库
-
创建 Python 虚拟环境:
python3 -m venv venv
source venv/bin/activate
- 安装 Ansible 和依赖项:
pip install -r requirements.txt
- 验证安装:
ansible --version
配置
- 根据您的网络设计创建 hosts 文件:
cp services/hosts/Example/host_files/template.yml services/hosts/YourCustomer/host_files/production.yml
参见: Hosts 文件配置
- 使用 group_vars 自定义(可选):
mkdir -p services/hosts/YourCustomer/group_vars
# 根据需要创建自定义文件
参见: 组变量配置
- 在您的 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 缓存系统
- 配置许可服务器:
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)
- 混合(本地和云的组合)
- 隔离(完全离线)
获取帮助
- 查看 文档 获取详细指南
- 查看 示例 hosts 文件 作为参考
- 查阅产品文档 https://docs.omnitouch.com.au/
- 联系 Omnitouch 支持以获取部署帮助
下一步
- 阅读 Ansible 部署简介
- 查看 IP 规划标准 以规划您的网络架构
- 查看 部署架构概述
- 创建您的 hosts 文件
- 根据需要使用 group_vars 进行自定义
- 部署您的网络!