This repository is a reference implementation for a scalable network staging and validation workflow.
The goal is to transform customer demand into standardized, repeatable, and validated network builds with minimal variation and measurable quality.
Traditional network staging often depends on manual interpretation, inconsistent documentation, and engineer specific decision making. That creates variation, rework, and operational risk.
This project models a better path:
- structured intake
- source of truth
- repeatable build workflows
- automated configuration generation
- measurable QA feedback loops
Order -> Structured Input -> Source of Truth -> Build -> Validate -> Ship
- NetBox or equivalent as source of truth
- Python and templates for deterministic config generation
- Ansible as deployment and execution layer
- PyEZ for Juniper native, transactional device interaction
- separate management and service plane thinking
- QA results captured for feedback and leadership visibility
- AI as an assistive layer, not the primary control plane
Configuration can be applied using multiple approaches depending on the use case:
- Ansible for standardized, repeatable workflows across devices
- PyEZ for Juniper environments where commit check, rollback, and transactional safety are required
This allows the system to balance consistency with vendor specific control where needed.
This model is intentionally shaped by lean thinking:
- reduce variation
- eliminate non value added work
- standardize build processes
- tighten feedback loops
- improve flow and quality over time
This is not intended to replace an existing build process overnight. It is designed to run in parallel with current documentation driven workflows and gradually reduce manual interpretation over time.
This repository builds on concepts demonstrated in other repos:
- intent-packs for intent driven configuration concepts
- config-drift-detector for validation and drift analysis concepts
Those repos show component ideas. This repo shows how they can fit into a production staging system.
Working reference model and proof of concept under active development.
This repo includes a simple working proof of concept:
- Model a device in NetBox
- Pull device data through the NetBox API
- Render a configuration from a Jinja template
- Output a deterministic config artifact
python scripts/generate_config.py lab-ex-01 cat generated-configs/lab-ex-01.conf
PyEZ deploy example:
python scripts/deploy_config_pyez.py
PyEZ commit check example:
python scripts/pyez_commit_check.py
PyEZ config load pattern:
from jnpr.junos import Device from jnpr.junos.utils.config import Config
with Device(host="192.168.100.3", user="lab", passwd="lab") as dev: cu = Config(dev) cu.load(path="generated-configs/lab-ex-01.conf", format="text", merge=True) cu.commit_check()
- examples/sample_order.json
- examples/sample_generated_config.conf
This is intentionally lightweight. The goal is to demonstrate flow and repeatability, not a full production implementation.