Skip to content

๐Ÿš€A Python-based framework showcasing expertise in network automation, configuration management, and GitOps for Cisco/Juniper devices.

Notifications You must be signed in to change notification settings

careed23/network-automation-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

13 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ Network Automation Framework

Python Version License: MIT Code style: black Maintenance


A Python-based network automation framework for managing and configuring network devices at scale.
Automate backups, deployments, and provisioning across multi-vendor environments.


Cisco IOS Juniper Junos Arista EOS


๐Ÿ†• New Features!

Check out our latest additions:

See NEW_FEATURES.md for complete setup instructions!


๐Ÿ“‹ Table of Contents


โœจ Features

Feature Description
๐Ÿ”„ Automated Backups Schedule and execute configuration backups with timestamps
๐Ÿ“ Template Engine Jinja2-powered configuration templates for standardized deployments
๐Ÿ”Œ Multi-Vendor Support for Cisco, Juniper, Arista, HP, and 50+ vendors via Netmiko
๐Ÿ“Š Comprehensive Logging Detailed audit trails for compliance and troubleshooting
โฎ๏ธ Rollback Support One-command rollback to previous configurations
๐ŸŽฏ Batch Operations Execute commands across multiple devices simultaneously
๐Ÿ” Secure by Design Credential management best practices built-in
๐Ÿ› ๏ธ Easy Configuration Simple YAML-based device inventory

๐Ÿ—๏ธ Architecture

The framework follows a modular architecture for flexibility and maintainability:

graph TB
    subgraph User["๐Ÿ‘ค Network Engineer"]
        CLI[Command Line Interface]
    end
    
    subgraph Framework["๐Ÿ Network Automation Framework"]
        subgraph Core["Core Modules"]
            DM[Device Manager<br/>Connection Handler]
        end
        
        subgraph Features["Features"]
            Backup[Config Backup<br/>Module]
            Deploy[Config Deploy<br/>Module]
        end
        
        subgraph Storage["Storage & Templates"]
            Templates[Jinja2 Templates<br/>config/templates/]
            BackupDir[Backup Storage<br/>backups/]
            Logs[Logs<br/>logs/]
        end
    end
    
    subgraph Devices["๐ŸŒ Network Infrastructure"]
        R1[Router 1<br/>Cisco IOS]
        R2[Router 2<br/>Cisco IOS]
        SW1[Switch 1<br/>Arista EOS]
        SW2[Switch 2<br/>Juniper]
        FW[Firewall<br/>Palo Alto]
    end
    
    subgraph Config["โš™๏ธ Configuration"]
        YAML[devices.yaml<br/>Device Inventory]
    end
    
    CLI -->|Run Scripts| Backup
    CLI -->|Run Scripts| Deploy
    
    Backup --> DM
    Deploy --> DM
    
    DM -->|SSH/Netmiko| R1
    DM -->|SSH/Netmiko| R2
    DM -->|SSH/Netmiko| SW1
    DM -->|SSH/Netmiko| SW2
    DM -->|SSH/Netmiko| FW
    
    Backup -->|Save configs| BackupDir
    Deploy -->|Load templates| Templates
    DM -->|Write logs| Logs
    
    YAML -.->|Device Info| DM
    Templates -.->|Config Templates| Deploy
    
    style Framework fill:#e1f5ff
    style Devices fill:#fff4e1
    style Config fill:#f0f0f0
    style User fill:#e8f5e9
Loading

About

๐Ÿš€A Python-based framework showcasing expertise in network automation, configuration management, and GitOps for Cisco/Juniper devices.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published