I have just put into production an OpenWrt-based routing solution I configured with Ansible and thought of sharing with you all. Feel free to use at your own leisure. Description below.
I needed multiple routers (on VMs) to route multiple (40+) "client" networks into a common "backbone" network, through 5 routers. So I created this role to ease the task:
- Interfaces, networks and firewall are defined in YAML configuration files.
- OpenWrt configuration files are created from those, and
- The new files are "pasted" onto the routers defined.
In order to keep OpenWrt as vanilla as possible, no attempt to install Python was made. The configuration files are simply "echoed" in place. Maybe this move allows the role to be used on other, hardware-based, routers?