Service Playbooks
Service playbooks deploy and configure OmniCore infrastructure. Located in the services/ directory.
Playbook Hierarchy
Playbooks are structured hierarchically to enable fast, targeted deployments:
all.yml
├── setup_users.yml
├── apt_cache.yml # only when apt_cache_servers group is defined
├── dns.yml
├── common.yml
├── license_server.yml
├── monitoring.yml
│ └── grafana.yml
├── device_tester.yml
├── epc.yml
│ ├── common.yml
│ ├── omnimme.yml
│ ├── omnisgwc.yml
│ ├── omnipgwc.yml
│ ├── upf.yml
│ ├── omnihss.yml
│ └── omnidra.yml
├── ims.yml
│ ├── pcscf.yml
│ ├── icscf.yml
│ ├── scscf.yml
│ ├── as.yml
│ ├── omnimessage.yml
│ └── omnisep.yml
├── omniepdg.yml
├── omnitwag.yml
├── omniss7.yml
├── ocs.yml
├── crm.yml
├── ran_monitor.yml
├── 5gc.yml
└── ../util_playbooks/health_check.yml
Run only what you need. Deploying a single component (e.g., omnimme.yml) takes seconds. Running all.yml across 50 hosts takes longer but handles everything. Use --limit to narrow scope further.
Quick Reference
Top-Level Playbooks
| Playbook | Scope | Description |
|---|---|---|
all.yml | Full network | Complete deployment: users, DNS, monitoring, device tester, EPC, IMS, ePDG, TWAG, SS7, OCS, CRM, RAN monitor, 5G Core, and a final health check (from util_playbooks/) |
epc.yml | Packet Core | MME, SGW-C, PGW-C, UPF, HSS, DRA |
ims.yml | Voice/IMS | P/I/S-CSCF, Application Server, Messaging, OmniSEP (XCAP/Entitlements/BSF) |
ocs.yml | Charging | CGrateS, KeyDB cluster, OCS sync |
monitoring.yml | Observability | Prometheus, Grafana, exporters, HOMER |
Infrastructure Playbooks
| Playbook | Description |
|---|---|
common.yml | Base OS config, packages, NTP, logging agents |
setup_users.yml | Local user accounts and SSH keys |
dns.yml | DNS server deployment |
license_server.yml | OmniCore license server |
does_netplan_exist.yml | Check whether netplan is installed on each host |
update_mtu.yml | Set and apply interface MTU via netplan |
firewall.yml | iptables/nftables rules |
apt_cache.yml | Local APT mirror (if enabled) |
EPC Components
| Playbook | Component | Description |
|---|---|---|
omnimme.yml | OmniMME | Mobility Management Entity (4G) |
omnisgwc.yml | OmniSGW-C | Serving Gateway Control Plane |
omnipgwc.yml | OmniPGW-C | PDN Gateway Control Plane |
upf.yml / omniupf.yml | OmniUPF | User Plane Function (combined SGW-U/PGW-U) |
omnihss.yml / hss.yml | OmniHSS | Home Subscriber Server |
omnidra.yml | OmniDRA | Diameter Routing Agent |
omnitwag.yml | OmniTWAG | Trusted Wireless Access Gateway |
omniepdg.yml | OmniEPDG | Evolved Packet Data Gateway (WiFi Calling) |
gtp_proxy.yml | GTP Proxy | GTP traffic proxy |
IMS Components
| Playbook | Component | Description |
|---|---|---|
pcscf.yml | P-CSCF | Proxy Call Session Control Function |
icscf.yml | I-CSCF | Interrogating CSCF |
scscf.yml | S-CSCF | Serving CSCF |
as.yml | OmniTAS | Telephony Application Server |
omnisep.yml | OmniSEP | XCAP, Entitlement Server, BSF, Visual Voicemail |
xcap.yml | OmniSEP | Legacy alias of omnisep.yml (deploys the same omnisep role) |
omnimessage.yml | OmniMessage / IMS SMSC | SMS-over-IP controller, SMPP, and the IMS SMSC (deployed via the cscf role with cscf_type: smsc_ims) |
5G Core
Deployed via 5gc.yml. Each network function is installed by the shared 5gc_nf role with a per-NF nf_package.
| Playbook | Component | Description |
|---|---|---|
5gc.yml | 5G Core | Deploys all 5G Standalone network functions |
| OmniNRF | Network Repository Function | |
| OmniAMF | Access and Mobility Management Function | |
| OmniAUSF | Authentication Server Function | |
| OmniBSF | Binding Support Function | |
| OmniCHF | Charging Function | |
| OmniNSSF | Network Slice Selection Function | |
| OmniPCF | Policy Control Function | |
| OmniSCP | Service Communication Proxy | |
| OmniSMF | Session Management Function | |
| OmniUDM | Unified Data Management | |
| OmniUDR | Unified Data Repository |
Circuit-Switched
Deployed via cs.yml (roles under circuit_switched/).
| Playbook | Component | Description |
|---|---|---|
cs.yml | Circuit-Switched | Deploys the legacy CS domain |
| BSC | Base Station Controller (circuit_switched/bsc) | |
| OmniMSC | Mobile Switching Centre (circuit_switched/omnimsc) | |
| SS7 | SS7/SIGTRAN stack (omniss7 role) |
Supporting Services
| Playbook | Description |
|---|---|
ocs.yml | Online Charging System (CGrateS + KeyDB) |
crm.yml | Customer management portal (OmniCRM; configuration now lives in group_vars/) |
omniss7.yml | SS7/SIGTRAN gateway |
homer.yml | SIP/Diameter packet capture |
grafana.yml | Grafana dashboards and alerting |
promtail.yml | Log shipping to Loki |
ran_monitor.yml | RAN monitoring integration |
omniroam.yml | OmniRoam roaming suite (TAP3/RAP UI, Elixir API, generator) |
omnilcs.yml | OmniLCS Location Services and Cell Broadcast |
device_tester.yml | OmniWeb phone agent test bench (Test Devices) |
VM Provisioning
| Playbook | Description |
|---|---|
proxmox.yml | Create VMs on Proxmox VE |
proxmox_lxc.yml | Create LXC containers (lab/test) |
proxmox_delete.yml | Delete Proxmox VMs/LXCs |
Operations
| Playbook | Description |
|---|---|
backup.yml | Backup databases and configs |
reboot.yml | Controlled reboot of hosts |
shutdown.yml | Graceful shutdown |
apt_update.yml | Update packages |
apt_refresh_metadata.yml | Refresh APT cache metadata |
speedtest.yml | Network throughput testing |
Restore Playbooks
| Playbook | Description |
|---|---|
restore_applicationserver.yml | Restore OmniTAS from backup |
restore_omnimessage_controller.yml | Restore OmniMessage from backup |
restore_smsc.yml | Restore SMSC from backup |
Note:
health_check.yml,restore_hss.yml, andrestore_ocs.ymlare not inservices/— they live inutil_playbooks/. See Utility Playbooks.all.ymlruns the health check as../util_playbooks/health_check.yml.
Usage
Deploy Everything
ansible-playbook -i hosts/customer/host_files/production.yml services/all.yml
Deploy Specific Subsystem
# Just the packet core
ansible-playbook -i hosts/customer/host_files/production.yml services/epc.yml
# Just IMS/voice
ansible-playbook -i hosts/customer/host_files/production.yml services/ims.yml
Deploy Single Component
# Update only the MME
ansible-playbook -i hosts/customer/host_files/production.yml services/omnimme.yml
# Update only monitoring
ansible-playbook -i hosts/customer/host_files/production.yml services/monitoring.yml
Limit to Specific Hosts
# Run all.yml but only on one host
ansible-playbook -i hosts/customer/host_files/production.yml services/all.yml --limit mme01
# Run on multiple specific hosts
ansible-playbook -i hosts/customer/host_files/production.yml services/all.yml --limit "mme01,hss01"
# Run on a group
ansible-playbook -i hosts/customer/host_files/production.yml services/all.yml --limit mme
Related Documentation
- Deployment Architecture - Overall deployment workflow
- Hosts File Configuration - Defining infrastructure
- Group Variables Configuration - Customization
- Utility Playbooks - Operational tools (health check, restore, etc.)
- Monitoring & Observability - Grafana, Prometheus, alerting