A Python-based automation tool for configuring Cisco SD-WAN vManager using Excel spreadsheets as the configuration source. This tool reads configuration parameters from Excel files and creates feature profiles, parcels, and configuration groups via the vManager REST API.
This project provides an SDK-like framework to automate the creation of SD-WAN configuration objects including:
The tool uses Pydantic models for JSON payload generation and validation, ensuring type safety and proper data structure for vManager API calls.
input.xlsx)objects_created.xlsx├── input.xlsx # Excel file with configuration data
├── excel2sdwan.py # Main orchestrator script
├── objects_created.xlsx # Audit trail of created objects
├── vmanager_conf.log # Detailed execution logs
├── cleanup-excel2sdwan.py # Utility to clean up created objects
├── LICENSE # MIT License
└── modules/
├── system/ # System feature profiles
│ ├── profile.py
│ ├── aaa.py
│ ├── bfd.py
│ ├── omp.py
│ ├── ntp.py
│ ├── logg.py
│ ├── snmp.py
│ ├── security.py
│ ├── banner.py
│ ├── basic.py
│ ├── globall.py
│ └── parsers.py
├── transport/ # Transport feature profiles
│ ├── profile.py
│ ├── vpn.py
│ ├── interface.py
│ ├── bgp.py
│ └── parsers.py
├── service/ # Service feature profiles
│ ├── profile.py
│ ├── vpn.py
│ ├── interface.py
│ └── parsers.py
├── cli/ # CLI profiles
│ ├── profile.py
│ ├── cli.py
│ └── parsers.py
└── conf_groups/ # Configuration groups
├── cg_model.py
├── cgroup.py
└── parsers.py
git clone https://github.com/apinto/sdwan-excel-automation.git
cd sdwan-excel-automationpython -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
pip install catalystwan pandas openpyxl
excel2sdwan.py:url = "https://your-vmanager-ip" username = "your-username" password = "your-password"
Run all configuration types in order (system → transport → service → cli → config-groups):
python excel2sdwan.py
Run specific feature types:
# Run only system profiles python excel2sdwan.py --feature-type system # Run multiple specific types python excel2sdwan.py --feature-type system,transport,service # Run only configuration groups (requires profiles to exist) python excel2sdwan.py --feature-type config-groups
python excel2sdwan.py --help
The input.xlsx file should contain worksheets for each configuration type:
Each worksheet follows a specific column structure with fields like:
ObjectName: Name of the configuration objectType: Object type (profile, parcel, etc.)section: Configuration sectionfieldName: API field nameoptionType: Configuration option type (default, global, variable)value: Configuration valueinput.xlsx worksheetsobjects_created.xlsxobjects_created.xlsx: Audit trail with details of all created objects
vmanager_conf.log: Detailed execution logs
The cleanup script provides a safe way to remove objects created by excel2sdwan.py from vManager.
The cleanup-excel2sdwan.py script:
objects_created.xlsx which contains all objects created during previous runsexcel2sdwan.py generates a unique Run ID (timestamp-based)objects_created.xlsxEvery time excel2sdwan.py creates an object, it logs the following information to objects_created.xlsx:
| Column | Description |
|---|---|
| Run ID | Unique identifier for each execution (epoch timestamp) |
| Timestamp | Human-readable date/time of creation |
| Object Type | Category (System, Transport, Service, CLI, ConfigGroup) |
| Name | Hierarchical name (e.g., profile.vpn.interface) |
| Object Name | Full descriptive name of the object |
| URL | API endpoint used to create the object |
| ID | Unique UUID returned by vManager |
This tracking enables:
# Delete most recent run (default) python cleanup-excel2sdwan.py # List all available runs python cleanup-excel2sdwan.py --list-runs # Delete a specific run by ID python cleanup-excel2sdwan.py --run-id 1737241234 # Delete all runs (all tracked objects) python cleanup-excel2sdwan.py --all-runs # Dry run - preview what would be deleted python cleanup-excel2sdwan.py --dry-run # Remove from Excel only (no API calls) python cleanup-excel2sdwan.py --run-id 1737241234 --remove-from-excel-only
objects_created.xlsxvmanager_cleanup.logContributions are welcome! Whether you want to:
Please feel free to:
IMPORTANT: This tool is provided as-is, without any warranties or guarantees. The authors take no responsibility for any issues, damages, or problems that may arise from using this script. Use at your own risk.
This project is licensed under the MIT License - see the LICENSE file for details.
Artur Pinto (arturj.pinto@gmail.com)
Owner
Contributors
Categories
NetworkingProducts
Catalyst SD-WANLicense
Code Exchange Community
Get help, share code, and collaborate with other developers in the Code Exchange community.View Community