Cisco-Configuration-Using-Python-Jinja-CSV
                                
                                
                                
                                    Cisco-Configuration-Using-Python-Jinja-CSV copied to clipboard
                            
                            
                            
                        Cisco Configuration Generator Template Using Python3, Jinja2, and CSV with Validation
Generate Cisco Configuration Template Using Python3, Jinja2, and CSV with Validation
This program is designed to generate a configuration template for Cisco Catalyst/Nexus switches.
Table of Contents
- Requirements
 - Getting Started
 - Installation
 - Usage
 - Preview
 - Helpful Tips
 - TODOs
 
Requirements
Getting Started
│   cisco_config_generator.py
│   cisco_validation.py
│   switch.j2
│   requirements.txt
│   README.md
│   .gitignore
│   LICENSE
│
├───assets
│       preview.png
│
├───configs
│       .gitkeep
│
└───CSV
        01_params.csv
        02_vlans.csv
        03_etherchannels.csv
        04_port_mapping.csv
Installation
$ git clone https://github.com/Tes3awy/Cisco-Configuration-Using-Python-Jinja-CSV.git
$ cd Cisco-Configuration-Using-Python-Jinja-CSV
$ python -m venv .venv --upgrade-deps
# Activate Virtual Environment
$ pip install -r requirements.txt
Usage
- Open each 
.csvfile respectively and add the configurations that meet your needs. (The CSV files are populated with a sample configuration already) - Open terminal/cmd.
 - Run 
python cisco_config_generator.py. 
First, a json_schema.json file is created (if not created already) from your configuration in CSV files. Then, json_schema.json is validated against a set of rules in validate_config.py.
Voila :sparkles:! Your configuration will be created an placed in configs directory.
Preview

Helpful Tips
- DO NOT copy/paste the whole configuration all at once to your device. Divide the configuration template into multiple sections.
 - Always save your configuration with the 
copy running-config startup-configcommand. See Why 
TODOs
- [x] ~~Validate input fields in CSV files~~.