Skip to main content

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

PlaybookScopeDescription
all.ymlFull networkComplete 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.ymlPacket CoreMME, SGW-C, PGW-C, UPF, HSS, DRA
ims.ymlVoice/IMSP/I/S-CSCF, Application Server, Messaging, OmniSEP (XCAP/Entitlements/BSF)
ocs.ymlChargingCGrateS, KeyDB cluster, OCS sync
monitoring.ymlObservabilityPrometheus, Grafana, exporters, HOMER

Infrastructure Playbooks

PlaybookDescription
common.ymlBase OS config, packages, NTP, logging agents
setup_users.ymlLocal user accounts and SSH keys
dns.ymlDNS server deployment
license_server.ymlOmniCore license server
does_netplan_exist.ymlCheck whether netplan is installed on each host
update_mtu.ymlSet and apply interface MTU via netplan
firewall.ymliptables/nftables rules
apt_cache.ymlLocal APT mirror (if enabled)

EPC Components

PlaybookComponentDescription
omnimme.ymlOmniMMEMobility Management Entity (4G)
omnisgwc.ymlOmniSGW-CServing Gateway Control Plane
omnipgwc.ymlOmniPGW-CPDN Gateway Control Plane
upf.yml / omniupf.ymlOmniUPFUser Plane Function (combined SGW-U/PGW-U)
omnihss.yml / hss.ymlOmniHSSHome Subscriber Server
omnidra.ymlOmniDRADiameter Routing Agent
omnitwag.ymlOmniTWAGTrusted Wireless Access Gateway
omniepdg.ymlOmniEPDGEvolved Packet Data Gateway (WiFi Calling)
gtp_proxy.ymlGTP ProxyGTP traffic proxy

IMS Components

PlaybookComponentDescription
pcscf.ymlP-CSCFProxy Call Session Control Function
icscf.ymlI-CSCFInterrogating CSCF
scscf.ymlS-CSCFServing CSCF
as.ymlOmniTASTelephony Application Server
omnisep.ymlOmniSEPXCAP, Entitlement Server, BSF, Visual Voicemail
xcap.ymlOmniSEPLegacy alias of omnisep.yml (deploys the same omnisep role)
omnimessage.ymlOmniMessage / IMS SMSCSMS-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.

PlaybookComponentDescription
5gc.yml5G CoreDeploys all 5G Standalone network functions
OmniNRFNetwork Repository Function
OmniAMFAccess and Mobility Management Function
OmniAUSFAuthentication Server Function
OmniBSFBinding Support Function
OmniCHFCharging Function
OmniNSSFNetwork Slice Selection Function
OmniPCFPolicy Control Function
OmniSCPService Communication Proxy
OmniSMFSession Management Function
OmniUDMUnified Data Management
OmniUDRUnified Data Repository

Circuit-Switched

Deployed via cs.yml (roles under circuit_switched/).

PlaybookComponentDescription
cs.ymlCircuit-SwitchedDeploys the legacy CS domain
BSCBase Station Controller (circuit_switched/bsc)
OmniMSCMobile Switching Centre (circuit_switched/omnimsc)
SS7SS7/SIGTRAN stack (omniss7 role)

Supporting Services

PlaybookDescription
ocs.ymlOnline Charging System (CGrateS + KeyDB)
crm.ymlCustomer management portal (OmniCRM; configuration now lives in group_vars/)
omniss7.ymlSS7/SIGTRAN gateway
homer.ymlSIP/Diameter packet capture
grafana.ymlGrafana dashboards and alerting
promtail.ymlLog shipping to Loki
ran_monitor.ymlRAN monitoring integration
omniroam.ymlOmniRoam roaming suite (TAP3/RAP UI, Elixir API, generator)
omnilcs.ymlOmniLCS Location Services and Cell Broadcast
device_tester.ymlOmniWeb phone agent test bench (Test Devices)

VM Provisioning

PlaybookDescription
proxmox.ymlCreate VMs on Proxmox VE
proxmox_lxc.ymlCreate LXC containers (lab/test)
proxmox_delete.ymlDelete Proxmox VMs/LXCs

Operations

PlaybookDescription
backup.ymlBackup databases and configs
reboot.ymlControlled reboot of hosts
shutdown.ymlGraceful shutdown
apt_update.ymlUpdate packages
apt_refresh_metadata.ymlRefresh APT cache metadata
speedtest.ymlNetwork throughput testing

Restore Playbooks

PlaybookDescription
restore_applicationserver.ymlRestore OmniTAS from backup
restore_omnimessage_controller.ymlRestore OmniMessage from backup
restore_smsc.ymlRestore SMSC from backup

Note: health_check.yml, restore_hss.yml, and restore_ocs.yml are not in services/ — they live in util_playbooks/. See Utility Playbooks. all.yml runs 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