Network automation template for provisioning and documenting network devices with a clean, extensible Python architecture.
NetMaster CLI/API is an educational and technical starter project for network automation. It separates domain rules, application use cases, interface adapters, and infrastructure details so students and engineers can evolve the repository into a CLI, REST API, or lab automation tool without mixing business logic with device-specific integrations.
Network teams often start automation scripts as isolated one-off files. That makes testing, reuse, and onboarding difficult. This repository demonstrates a more professional baseline for VLAN provisioning, device inventory, and future SSH/API integrations.
domain/: pure entities such asNetworkDeviceandVLAN.application/: use cases such asProvisionVLANUseCase.interface_adapters/: future FastAPI routes, Typer commands, and serializers.infrastructure/: future persistence, Netmiko drivers, and vendor-specific adapters.
- Python 3.10+
- FastAPI and Uvicorn for REST APIs
- Typer for command-line workflows
- SQLAlchemy for persistence
- Netmiko for SSH-based network device automation
git clone https://github.com/albertomateus9/netmaster-cli-api.git
cd netmaster-cli-api
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txtOn Linux or macOS, activate the environment with:
source .venv/bin/activate- Implement repository interfaces for device inventory.
- Add a Netmiko-backed network service for lab devices.
- Expose the provisioning use case through FastAPI and Typer.
- Add tests for domain entities and use-case orchestration.
This repository reflects practical interests in telecom infrastructure, routing, network automation, and teaching software architecture through realistic engineering scenarios.
MIT. See LICENSE.