Simple Ansible project to set up srsRAN from scratch.
At a high level, this repo automates a small LTE “home lab” split across two hosts:
- Host A (eNB): runs
srsenband drives an SDR for the base station RF. - Host B (Core + UE): runs
srsepc(LTE EPC) and optionallysrsuefor a test UE. - LAN: carries the LTE S1 interfaces (S1AP/GTP-C/GTP-U) between eNB and EPC.
- RF: carries uplink/downlink between the eNB SDR and UE SDR (or a real UE, if used).
- Inventory + host separation:
inventory/hosts.ymldeclaresenbanduehosts under thesrsrangroup. - Config deployment:
roles/srsran_configspushes the repo’s config trees underconfigs/<host>/etc/srsran/*onto each host’s/etc/srsran/(plus optional systemd units). - Host prereqs:
roles/cpu_governor: sets a consistent CPU governor for predictable SDR timing.roles/bladerf_setup: installs bladeRF packages and validates the SDR enumerates and is usable.
- Over-the-air sanity check:
roles/srsran_ota_verifyprovides basic verification steps. - Vendored upstream source (for reference / future rebuilds):
third_party/srsRAN_4G/is an in-tree snapshot of upstream srsRAN 4G source (not a git submodule) with provenance inthird_party/srsRAN_4G/UPSTREAM.md.
- enb - eNodeB host (192.168.1.10)
- ue - User Equipment host (192.168.1.11)
# Test connectivity
ansible all -m ping
# Run the playbook
ansible-playbook site.ymlEdit inventory/hosts.yml to set the correct IP addresses and SSH users for your hosts.
Note: this file may contain sensitive connection info; avoid committing secrets.