Cisco-logotyp Cisco NX-OS Network Automation med PythonCisco NX-OS Network Automation med Python-0product

Nätverksautomation

  • Processen för att använda programvara för att automatisera nätverksprovisionering, testning, distribution och nätverkshantering
  • För att hjälpa till att maximera nätverkets effektivitet och funktionalitet
  • Nätverk är komplexa och skrymmande till sin natur
  • Manuella operationer – fler förseningar
  • Automatisering gör nätverken mer smidiga och lyhörda för förändringar
  • Fördelar:
  • Förbättrad operativ effektivitet
  • Minskade fel

NätverksautomationsarkitekturCisco NX-OS Network Automation med Python-1

NätverksprogrammerbarhetCisco NX-OS Network Automation med Python-2

  • Det är en uppsättning verktyg för att distribuera, hantera och felsöka en nätverksenhet
  • Nätverksingenjörsperspektiv – interagerar med en enhet eller grupp av enheter
  • Mjukvaruutvecklarperspektiv – abstrahera nätverket. Att se hela nätverket som en enda enhet och manipulera det med mjukvara

Fördelar med nätverksprogrammerbarhet

  • Minskad OPEX
  • Anpassning
  • Minskade mänskliga fel
  • Operativ flexibilitet
  • Ökad möjlighet till innovation

Application Programming Interface (API)Cisco NX-OS Network Automation med Python-3

  • API:er är mekanismer som används för att kommunicera med applikationer och annan programvara.
  • Ett API kan utföra olika funktioner baserat på var de finns i flödet
  • Används för att kommunicera med olika komponenter i nätverket genom mjukvara
  • API:er är vanligtvis RESTful API:er

Representational State Transfer (REST) ​​API:er

  • Ett API som använder REST hänvisas ofta till ett RESTful API
  • RESTful API:er använder Hypertext Transfer Protocol (HTTP)-metoder för att samla in och manipulera data.
HTTP-funktion Handling
Läsa
POSTA Skapa
LAPPA Uppdatera/Ändra
SÄTTA Uppdatera / Ersätt
RADERA Radera

HTTP-statuskoder

HTTP-STATUS

KODA

RESULTAT VANLIG ANLEDNING
200 Ok Använder GET eller POST för att utbyta data med

ett API

201 Skapad Skapa resurser genom att använda ett REST API-anrop
400 Dålig begäran Begäran misslyckades på grund av problem på klientsidan
401 Obehörig Klienten är inte autentiserad för att komma åt webbplatsen eller

API-anrop

403 Förbjuden Tillträde beviljas inte baserat på tillhandahållet

referenser

404 Hittade inte Sida på HTTP URL plats finns inte

eller är dold

Netmiko överview

  • Netmiko – Python-biblioteket används flitigt för att interagera med nätverksenheter
  • Bibliotek med flera leverantörer
  • Cisco IOS/IOS-XE, NX-OS, brandväggar, etc.
  • Utökat stöd för Paramiko-bibliotekets SSH-funktionalitet
  • Går in i konfigurationslägen
  • Skickar kommandon
  • Hämtar utgångar
  • Ta hand om ja/nej-uppmaningar

NAPALM överview

  • NAPALM – Abstraktionslager för nätverksautomation och programmerbarhet med stöd för flera leverantörer
  • Tillhandahåller funktioner som tillåter:
  • Konfigurationsåtgärder (commit eller rollback)
  • Hämta tillståndsdata från nätverksenheter
  • Innehåller metoder för att upprätta anslutning till nätverksenheter
  • Kan arbeta tillsammans med automationsverktyg – Ansible
  • Har stöd för olika nätverksoperativsystem:
  • IOS, IOS-XR, NX-OS, JunOS, EOS, etc.
NAPALM Operations
  • Ersätt – Tillåter användare att ersätta den befintliga konfigurationen som körs med en helt ny konfiguration.
  • Sammanfoga – Tillåter användare att slå samman konfigurationsändringar från en file till den körande konfigurationen på enheten.
  • Jämför – Jämför den nyligen föreslagna konfigurationen med den befintliga. Gäller endast utbytesdrift och inte sammanfogningsdrift.
  • Kasta – Återställer sammanfogningskonfigurationen file till en tom file. Således tillåter inte den nya konfigurationen att tillämpas på enheten.
  • Commit – Överför den föreslagna konfigurationen till nätverksenheten. Med andra ord, används för att distribuera somtaged konfiguration.
  • Rollback – Återställ (återställ) den pågående konfigurationen till den sparade konfigurerade före den senaste commit.

Mallar med Jinja2

  • Jinja är ett modernt mallspråk för Python – modellerat efter Django-mallar
  • Tillåter användaren att enkelt interagera med Python-programmet
  • Använd data för att snabbt generera dynamiskt innehåll
  • Fördelar:
  • Mallarv
  • Optimal just-in-time sammanställning
  • Enkel felsökning
  • Konfigurerbar syntax
  • Används ofta med web ramar som Flask
  • Konfigurationshanteringsverktyg – Ansible, Nornir, etc.

AvgränsareCisco NX-OS Network Automation med Python-Nornir överview

  • Python-baserat automationsramverk
  • Hantera nätverks- och värdinventering och tillhandahåll ett gemensamt ramverk att skriva plugins för nätverksenheter och värdar
  • Kräver minst Python version 3.6.2
  • Flertrådig – Standard till 20 arbetartrådar
  • Initialiserad med config file – refererar par andra files
  • Värdinventering file
  • Grupp file
  • Alla dessa files är skrivna i YAML-format

Nornir Advantages

  • Python eller Golang (Gornir)
  • Återanvänd befintliga bibliotek – napalm, netmiko
  • Snabb värdfiltrering baserat på alla attribut eller kombinationer av attribut
  • Mycket snabb på grund av användning av trådar
  • Kan användas för att bygga mycket flexibla och utbyggbara automationsverktyg med hjälp av Flask, Django, etc.
  • Utför automatiskt cachning och stänger öppna anslutningar

Extra resurser och referenser

Cisco Press News

Grundläggande information om nätverksprogrammerbarhet och automatisering [Läs mer] CCNP och CCIE Security Core SCOR 350-701 Official Cert Guide
https://www.ciscopress.com/store/ccnp-and-ccie-security-core-scor-350-701-official-cert-9780135971970

Cisco DevNet Professional DEVCOR 350-901 Studieguide
https://www.ciscopress.com/store/cisco-devnet-professional-devcor-350-901-study-guide-9780137500048

Andra användbara resurser:
Interview med Vinit Jain, Ciscos främsta evenemangsbidragsgivare
https://community.cisco.com/t5/networking-documents/interview-with-vinit-jain-cisco-s-top-events-contributor/ta-p/3156059
Vinits publikationer
http://www.ciscopress.com/authors/bio/255ee209-1418-4938-9a42-d3bece2b46c6

Dokument/resurser

Cisco NX-OS Network Automation med Python [pdf] Användarmanual
NX-OS Network Automation med Python, Network Automation med Python, med Python

Referenser

Lämna en kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade *