mirror of
https://github.com/networktocode/awesome-network-automation.git
synced 2024-10-01 01:26:13 -04:00
Curated Awesome list about Network Automation
.github | ||
contributing.md | ||
LICENSE | ||
README.md |
Awesome Network Automation
Network Automation is cross between two disciplines of Infrastructure Networks and Programming, this list was created to as a one-stop shop to find the information.
Contents
Community
- Ansible Google Groups - Welcome to Ansible's mailing list / forum!
- IRC Ansible - Ansible IRC Channels.
- Network to Code Slack - NTC Slack is the home/pseudo-home to many popular repo's (NAPALM/netmiko/netbox/nsot) and over 3000 members around Network Automation.
- Salt Formulas - The SaltStack formulas working group.
- Salt Networks - The goal of this group is to have a central place to communicate goals about network device automation with SaltStack.
- Salt Users - The official forum of the Salt community.
Events / Meetup
- AWS Reinvent - AWS re:Invent Central is designed to facilitate connections between sponsors and attendees.
- Ansible Fest - AnsibleFest is a day-long conference bringing together Ansible users, developers and industry partners to share best practices, case studies and Ansible news.
- Ansible NYC Meetup - Local NYC Ansible user meetup.
- London Network Automation Meetup - Community of network engineers, who have interest in the new buzz of network automation.
- NANOG - North American Network Operators' Group with fair share of automation presentations/discussions.
- Network to Coders Meetup - Maybe this can pressure NTC to finally setup an event for the 140+ NTC meetup members.
- SaltStack NYC Meetup - Local NYC SatlStack user meetup.
- Tech Field Day - Field Day events bring together innovative IT product vendors and independent thought leaders to share information and opinions in a presentation and discussion format.
- SaltConf - 4 days event including two days of SaltStack customer case studies and SaltStack technical deep dives.
Training
- IP Space - On ipSpace.net you'll find numerous courses, webinars, and videos covering SDN, network automation, cloud computing, virtualization technologies, IPv6 and VPNs.
- Network to Code - Network Automation Training including Python, Ansible, DevOps, and much more.
- Mircea Ulinic - Learn more about cross-vendor event-driven network automation and orchestration.
- Python for Network Engineers - You will learn skills that make you better at network automation and that improve your capability to use programming to scale your work.
- GNS3 Academy - Instructor David Bombal - Number of courses, but offer an inexpensive set of intros to Ansible for Network Engineers and Python for Network Engineers.
Presentations
- Network automation at scale, Mircea Ulinic, NANOG 69, February 2017 slide deck.
- NAPALM, David Barroso, Elisa Jasinska, NANOG 64, June 2015 slide deck.
- How Facebook Learned to Stop Worrying and Love the Network, Jose Leitao, David Rothera, RIPE71, November 2015 slide deck.
- What Is NetDevOps, Leslie Carr, RIPE71, November 2015 slide deck.
- Abstract all the things, David Barroso, SDN and Network Automation Meetup, Stockholm, June 2016 presentation.
- Securing Network Automation, Ivan Pepelnjak, Troopers 2017, March 2017 slide deck.
Blogs
- cidrblock - The Network Automation thoughts of Bradley A. Thornton.
- Coding Networker - The Network Automation thoughts of Henry Ölsner.
- Coding Packets - The Network Automation thoughts of Brad Searle.
- dravetech.com - The Network Automation thoughts of David Barroso.
- Jason Edelman - The Network Automation thoughts of Jason Edelman.
- IPEngineer - David Gee - Network automation, software-networking and musings from David Gee.
- ipSpace.net - Ivan Pepelnjak - Network automation blog posts by Ivan Pepelnjak.
- Mircea Ulinic - Random thoughts of Mircea Ulinic. May include event-driven network automation, vendor bashing or machine learning (TBD).
- Napalm-automation - News and updates about the NAPALM project.
- Networklore - The Network Automation thoughts of Patrick Ogenstad.
- Networker and Coder - The Network Automation thoughts of Csilla Bessenyei.
- Network OP - The Network Automation thoughts of Michael Kashin.
- Packet Life - The Network Automation thoughts of Jeremy Strech.
- Project 10 - The Network Automation thoughts of Gabriele Gerbino.
- Python for Network Engineers - Articles on Netmiko, NAPALM, and Ansible by Kirk Byers.
- Scott Lowe - The Network Automation thoughts of Scott Lowe.
Programming Topics
Structured Data
YAML
- Getting Started and Basics - Introduction to YAML
- Online Validator - Online YAML Parser.
- Sample YAML documents describing common data structures - YAML examples curtosey of Ivan Pepelnjak.
- YAML syntax validator - YAML online parser.
- YAML idiosyncrasies -- Document with the most common YAML idiosyncrasies, hosted under the SaltStack docs, but not specific to Salt or any other tool.
JSON
- Awesome JSON - A curated list of awesome JSON libraries and resources.
- JSON 2 YAML - An online JSON to YAML conversion tool.
XML
- XML to JSON converter online - XML to JSON and JSON to XML converter online.
YANG
- Cisco Labs YANG - 101 - Cisco yang introduction.
- YANG for dummies - NAPALM YANG introduction.
Jinja2
- Documentation - Base documentation for Jinja2.
- TD4a - Advanced online rendering tool.
- Online rendering tool - Simple online rendering tool.
- Sample Jinja2 templates - Jinja examples curtosey of Ivan Pepelnjak.
API
RESTCONF
- What Is RESTCONF - Overview of RESTCONF.
NETCONF
- What Is NETCONF - Overview of NETCONF.
Python
- Awesome Python - A curated list of awesome Python frameworks, libraries, software and resources.
- Python Programming Guides and Tutorials - Python Central - The site's blog authors are experienced Python programmers and enthusiasts from all over the globe, eager to share their know-how about the scripting language.
Go
- Awesome Go - A curated list of awesome Go frameworks, libraries, software and resources.
Vendor API Docs
- Arista EAPI - The Arista Command eAPI is a simple and complete API that allows you to configure and monitor your Arista switches.
- Cisco IOS XE CSR1000V - Cisco IOS XE REST API Management Reference Guide.
- Cisco IOS-XR - Cisco IOS-XR API Docs only.
- XR-Docs - Documentation Blogs and Tutorials on all things IOS-XR An Open, Extensible and Stable Cloud-Scale Network Operating System.
- NX_API Coming soon - Coming Soon.
- Cisco NX-API - Main DEVNET page for NX-API docs.
- Cumulus Networks HTTP API - Documents focused on Cumulus 3.4.1.
- Extreme Networks:
- EXOS REST API - Documentation and examples for ExtremeSwitching ExtremeXOS RESTCONF API.
- EXOS JSONRPC Interface - Documentation and examples for ExtremeSwitching ExtremeXOS JSONRPC API.
- EXOS Python API - Documentation for writing Python applications that run on ExtremeXOS based switches.
- F5 - REST API User Guide, Version 13.0.0.
- Infoblox - Externally hosted Infoblox API docs.
- Juniper JUNOS API - JUNOS REST API Guide.
- Palo Alto Networks PAN-OS API - PAN-OS 8.0 XML API Reference.
Open Source Projects
Ansible
- Getting Started with the ios_config Ansible Module - Getting Started with the ios_config Ansible Module.
- Sample network automation Ansible playbooks - Ansible playbooks geared torwards network engineers, curtosey of Ivan Pepelnjak.
Chef
- Using Chef Client with Cisco NX-OS - Using Chef Client with Cisco NX-OS
Puppet
- Managing a Cisco switch with Puppet - My experiences of managing a Cisco switch with Puppet.
Salt
- Napalm-Salt Repository - The NAPALM-Salt Repository.
- Salt in 10 minutes - Salt in 10 minutes.
- Salt high availability and fault tolerance - Salt high availability and fault tolerance.
- Salt RIPE-74 - Event-driven network automation using Salt: up and running in 60 minutes.
- Salt 2016.11 - Salt 2016.11 (Carbon) release notes.
- Salt 2017.7 - Salt 2017.7 (Nitrogen) release notes.
- SaltStack fundamentals - Getting Started Guide walks you through the fundamental concepts you need to learn as you start using SaltStack.
- SaltStack configuration management - SaltStack Configuration Management.
- SaltStack Network Automation - SaltStack Network Automation Overview.
- Using Salt at scale - Using Salt at scale.
StackStorm
- StackStorm Repository - StackStorm (aka "IFTTT for Ops") is event-driven automation commonly used for auto-remediation, security responses, facilitated troubleshooting, complex deployments, and more. Includes rules engine, workflow, 1800+ integrations, native ChatOps and so forth.
- StackStorm Installer -
- StackStorm Youtube - Various intro, marketing, interviews, and technical product talks.
- Stackstorm Docs - Latest Version Documentation.
- StackStorm Intro on Software Gone Wild - SGW team talk with StackStorm (including Matt Oswalt) to discuss StackStorm.
Products
- eNMS - A vendor-agnostic NMS for carrier-grade network visualization and network automation.
- Netshot - Network Configuration and Compliance Management Software.
- NSOT - Network Source of Truth (NSoT) a source of truth database and repository for tracking inventory and metadata of network entities to ease management and automation of network infrastructure.
- Nuts - Network Unit Testing System automates tests in the network similar to unit tests.
- Rundeck - Job scheduler and runbook (and Ansible playbook) automation.
- ToDD - ToDD is an extensible framework for providing natively distributed testing on demand.
- Trigger - Trigger is a robust network automation toolkit written in Python that was designed for interfacing with network devices and managing network configuration and security policy.
Library
- Apstra's Aeon-ZTPS - Aeon-ZTPS is a universal Zero-Touch-Provisioning server for data center infrastructure systems at b. Currently supports the bootstraping of Arista EOS, Cisco NX-OS, and Cumulus Linux.
- Capirca - Multi-platform ACL generation system; can output Juniper/IOS/etc ACLs from the same policy.
- ciscoconfparse - Parse, Audit, Query, Build, and Modify Cisco IOS-style configurations.
- Condoor - This is a python module providing access to Cisco devices over Telnet and SSH.
- EasySNMP - Easy to use and very fast SNMP library that uses Net-SNMP.
- JINJA2 - Jinja2 is a full featured template engine for Python.
- Napalm - NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support) is a Python library that implements a set of functions to interact with different router vendor devices using a unified API.
- netaddr - Network address manipulation that supports a number of techniques (supernetting and subnetting).
- Netmiko - Multi-vendor library to simplify Paramiko SSH connections to network devices.
- TextFSM - Python module for parsing semi-structured text into python tables.
Non-Core Ansible Modules
- ansible-junos-stdlib - Junos modules for Ansible.
- ansible-mysql-query - Ansible module to modify MySQL database records.
- ara - Ansible Runtime Analysis.
- Fortimanager-Ansible - Ansible Module to work with Fortimanager.
- Infoblox-Ansible - Ansible Module to work with Infoblox.
- IP Infusion OcNOS Ansible module - Ansible module, SNMP MIB files, and YANG files for OcNOS.
- Napalm-Ansible - Collection of ansible modules that use napalm to retrieve data or modify configuration on networking devices.
- Netscaler-Ansible - Ansible Module to work with Netscalers.
- NTC Ansible - Multi-vendor Ansible Modules for Network Automation.
- ansible-pan - Ansible modules for working with Palo Alto Networks PAN-OS.
Pre-written Salt States (Formulas)
- napalm-install-formula - Salt formula to simplify the installation of the necessary packages and system dependencies for NAPALM.
- napalm-ntp-formula - Formula to manage the NTP configuration on network devices, following the OpenConfig system YANG model.
Vendor Abstraction Library
- clicrud - Brocade specific (MLX/VDX/ICX/CER/CES) CLI driver (Telnet & SSH).
- f5-common-python - Python SDK for configuration and monitoring of F5 BIG-IP devices via the iControl REST API.
- infoblox - Python library for Infoblox.
- pan-python - Multi-tool set for Palo Alto Networks PAN-OS, Panorama, WildFire and AutoFocus.
- pandevice - Device framework for interacting with Palo Alto Networks devices.
- pyeapi - Python library for Arista EOS.
- pyfg - Python library for Fortinet.
- pyiosxr - Python library for Cisco IOSXR.
- pynxos - Python library for Cisco NXOS.
- py-junos-exnc - Python library for Junos automation.
Tools
- BGP-Dashboard - BGP Dashboard and Monitoring Web Application.
- Drawthe.net - Draw network diagrams described in YAML files.
- napalm-logs - Cross-vendor normalisation for network syslog messages, following the OpenConfig and IETF YANG models.
- Net-Config - Automation framework for network devices.
- NetCopa - Network device configuration parser ("industry standard" -> YAML converter).
- NetSpark-Scripts - Netmiko-based scripts to assist the Network Administrators and Engineers of the world!
- NetTools - Simple network python scripts.
- Network-CI - Proof of Concept of CI/CD methodology applied to traditional non-SDN network topologies.
- NetGrph - Network graph modeling database.
Hypervisors and Containers
- Docker - Docker is a software technology providing operating-system-level virtualization also known as containers, promoted by the company Docker, Inc.
- Vagrant - Vagrant enables users to create and configure lightweight, reproducible, and portable development environments.
- VirtualBox - VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use.
- Vmware ESXi - VMware ESXi is a purpose-built bare-metal hypervisor that installs directly onto a physical server.
Network Emulators
- EVE-NG - The Emulated Virtual Environment for Network, Security and DevOps professionals.
- GNS3 - Graphical Network Simulator-3.
- Mininet - Mininet creates a realistic virtual network, running real kernel, switch and application code, on a single machine (VM, cloud or native), in seconds, with a single command.
- UNetLab - Unified Networking Lab.
- VIRL - Cisco Virtual Internet Routing Lab.
Backups
- Cidr - Cidr Is not as Dumb as Rancid.
- fetchconfig - fetchconfig is a Perl script for retrieving configuration of multiple devices.
- Gerty - Universal framework for device management automation. Eventually a replacement for RANCID... and much more.
- Jazigo - Jazigo is a tool written in Go for retrieving configuration for multiple devices, similar to rancid, fetchconfig, oxidized, Sweet.
- Oxidized - Oxidized is a network device configuration backup tool. It's a RANCID replacement!
- RANCID - RANCID monitors a router's (or more generally a device's) configuration, including software and hardware (cards, serial numbers, etc) and uses CVS (Concurrent Version System), Subversion or Git to maintain history of changes.
- Sweet - Network device configuration backups and change alerts for the 21st century - inspired by RANCID!
- Unimus - Configuration backup with an easy to use Web GUI. From nothing to backing-up 1000 routers in 15 minutes.
IPAM
- bluecat - BlueCat provides network intelligence and insight into the relationship between devices, users and IP addresses that can be put into action to improve security and ensure reliable, always-on business connectivity.
- Device42 - Automatically maintain an up-to-date inventory of your physical, virtual, and cloud servers and containers, network components, software, services, applications, and their inter-relationships and inter-dependencies. Integrations, REST APIs and webhooks to automate your workflows with a modern CMDB as a single source of truth. Comes with powerful Data Center Infrastructure Management, IP Address Management and Application Mappings. Mostly leverages SNMP or vendor provided APIs that are well adopted/documented.
- haci - HaCi is an IP Address / Network Administration (IPAM) Tool with IPv6 support.
- infoblox - Industry leader in DNS, DHCP, and IP address management, the category known as DDI.
- netbox - NetBox is an IP address management (IPAM) and data center infrastructure management (DCIM) tool.
- nipap - nipap is a sleek, intuitive and powerful IP address management system built to handle large amounts of IP addresses.
- NSoT - Network Source of Truth is an open source IPAM and network inventory database.
- phpipam - phpipam is an open-source web IP address management application (IPAM). Its goal is to provide light, modern and useful IP address management.
- TeemIP - TeemIp is an open source, WEB based, IP Adress Management (IPAM) tool that provides comprehensive IP Management capabilities. It allows you to manage your IPv4 and IPv6 spaces through a simple and powerful user interface: track user requests, discover and allocate IPs, manage your IP plan and your subnet space in accordance with best in class IP Management practices.
Configuration Management
- Solarwinds - Automated network configuration and compliance management.
- ManageEngine - Network Configuration Manager is a multi vendor network change, configuration and compliance management (NCCCM) solution for switches, routers, firewalls and other network devices.
- Rconfig - Free, open source network device configuration management tool, customizable to your needs!
- Unimus - Network-wide configuration search and config diff over time in an easy to use web GUI.
Books
- Ansible: Up and Running - Automating Configuration Management and Deployment the Easy Way.
- Git Pocket Guide - This pocket guide is the perfect on-the-job companion to Git, the distributed version control system. It provides a compact, readable introduction to Git for new users, as well as a reference to common commands and procedures for those of you with Git experience.
- Mastering Python Networking - Become an expert in implementing advanced, network-related tasks with Python.
- Network Programmability and Automation - Skills for the Next-Generation Network Engineer.
Vendor Agnostic Products
- Anuta Networks - Anuta NCX delivers network service orchestration for greenfield and brownfield deployments. NCX is an intent-driven platform with YANG service models for multiple domains such as Branch/CPE, Data Center, Virtual MPLS, Carrier Core Networks and Cloud Interconnects. NCX has built-in YANG device models for PNFs and VNFs from 35+ industry leading vendors supporting hundreds of L2-L7 network functions using CLI, NETCONF, YANG, REST and SNMP. See the complete list.
- Apstra - The Apstra Operating System (AOS) is a vendor-agnostic distributed operating system for the data center network that enables business agility, dramatically scales operational efficiency, and reduces downtime.
- Glue - With Gluware, the Glue Networks vision and team are continuing to trail-blaze at the forefront of the networking industry with multi-vendor orchestration solutions for Data Center, WAN and LAN networks.
- Intelliment - Intelliment Security helps Network Operations teams to provide an application connectivity self-service for their agile customers, reducing firewall policy provisioning time while avoiding mistakes and ensuring the continuous enforcement of compliance guidelines. Inteliment works across both physical legacy infrastructure and virtualized silos, allowing them speak to each other.
- PacketFront - PacketFront BECS and BBE is a vendor-agnostic network, service and resource orcestration system for residential, enterprise and data center networks.
Network Vendor Products
- Cisco Merkai - Cisco Meraki is the leader in cloud controlled WiFi, routing, and security. Secure and scalable, Cisco Meraki enterprise networks simply work.
- Cisco Viptela - Viptela provides Software-Defined Wide Area Network (SD-WAN) technology that allows global companies to build cost-effective WANs.
- Talari - Talari Networks SD-WAN technology.
Podcasts
Podcasts Feeds
- Packet Pushers Full Stack - The Journey To Full Stack.
- Software Gone Wild - Software Gone Wild is focusing on architectures, solutions and technologies that real networking engineers use in production networks.
Podcasts Episodes
- Network Collective EPISODE 10 - GRASSROOTS AUTOMATION.
- Packet Pushers Datanauts 80 - The Current State Of Network Automation & Telemetry.
- Packet Pushers Show 176 - Intro to Python & Automation for Network Engineers.
- Packet Pushers Show 333 - Automation & Orchestration In Networking.
- Packet Pushers Show 351 - Design & Build 13: Network Orchestration with Salt.
- Packet Pushers Show 353 - The Business Impact Of Network Automation.
- Packet Pushers Show 368 - Show 368: Radical Change, DevOps & Automation.
- Packet Pushers PQ Show 81 - Network Testing With ToDD.
- Packet Pushers PQ Show 99 - Netmiko & NAPALM For Network Automation.
- Packet Pushers PQ Show 116 - Practical YANG For Network Automation.
- Packet Pushers PQ Show 135 - Mastering Python Networking – The Book.
- Packet Pushers PQ Show 198 - Kirk Byers on Network Automation with Python & Ansible.
- Podcast__init Episode 117 - NAPALM with David Barroso and Mircea Ulinic.
- Talk Python to me #128 - Pythonic Networks with NAPALM.
Contributing
Contributions about network automation are most welcome!
This list is just getting started, please contribute to make it super awesome.
License
Licensed under the Apache License, Version 2.0, see LICENSE file for more detail.