Sicra Header Logo
  • Karriere
  • Om oss
  • Folk
NorskEnglish
Kontakt oss
  1. Kunnskap
  2. Innsikter
  3. Blogg
Blogg
09.07.2025
min tid å lese

[Min reise mot CCIE Automation #1] Introduksjon + bygging av en Python CLI-applikasjon

I dette første innlegget i min CCIE Automation-reise tar jeg en praktisk tilnærming til læring. Jeg bygger et Python-basert CLI-verktøy med Click som kobler seg mot Cisco Catalyst Center, henter fysisk nettverkstopologi via REST API og visualiserer den interaktivt med Pyvis. Målet er å kombinere teori med reell, praktisk automatisering som er nyttig i en nettverksingeniørs hverdag.
<span id="hs_cos_wrapper_name" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="text" >[Min reise mot CCIE Automation #1] Introduksjon + bygging av en Python CLI-applikasjon</span>
bilde
Bjørnar LintvedtSenior Network Engineer

Senior Network Engineer med fokus på nettverk, sikkerhet og automasjon.

(Denne artikkelen var tidligere en del av Bluetree.no. Siden Sicra og Bluetree har slått seg sammen, er nå innhold fra Bluetree overført til Sicra.)

Min reise starter

Hei, jeg heter Bjørnar Lintvedt

Jeg er Senior Network Consultant i Bluetree, og jobber i skjæringspunktet mellom nettverk og programvareutvikling.

Jeg fullførte bachelorgraden min i programmering tilbake i 2010, men tidlig i karrieren ble jeg trukket inn i nettverksverdenen – og der ble jeg værende. Fra 2010 til 2016 jobbet jeg hands-on med nettverksdesign og drift, samtidig som jeg utviklet automatiseringsverktøy, blant annet et internt system for nettverkstesting.

Siden 2016 har jeg hjulpet kunder med å designe og drifte nettverksinfrastruktur, samtidig som jeg har vært med på å utvikle en skreddersydd plattform for nettverksdrift internt i Bluetree. Det er nettopp denne kombinasjonen av infrastruktur og kode jeg virkelig trives med.

Nå jobber jeg mot CCIE Automation-sertifiseringen – Ciscos mest avanserte sertifisering innen nettverksautomatisering og programmabilitet – og jeg deler reisen her gjennom praktiske blogginnlegg som dette.

Hvorfor CCIE Automation?

Fordi den samler alt jeg brenner for:

  • Nettverk
  • Automatisering
  • Programmering
  • Infrastructure as Code

Og dette er ikke bare teori – det er en praktisk 8-timers lab-eksamen som tester reelle ferdigheter.

Planen min

  • Studieplan fra juni til november

  • Mål om 10–15 timer studier i uken – selv om det kan variere med to små barn hjemme

  • Ukentlig fokus på teori, lab og repetisjon

  • Følger det svært gode on-demand-kurset fra ccie-automation.com – takk Andreas Baekdahl!

  • Deltar i en studiegruppe

Å blogge om reisen – for første gang

Å skrive om min tekniske reise er ikke noe jeg vanligvis gjør, men jeg er oppriktig motivert for å prøve.
Dette er en måte å holde motivasjonen oppe, holde meg selv ansvarlig, reflektere underveis og forhåpentligvis komme i kontakt med andre som er på samme vei.

Ukentlige oppdateringer

Jeg vil dele detaljerte blogginnlegg hver uke her på bluetree.no, blant annet om:

  • Hovedtemaene jeg jobber med – og hvordan jeg studerer dem

  • Ideer til praktisk bruk av teknologien

  • Hva som fungerer – og hva som ikke gjør det

  • Fremdrift, erfaringer og lærdom

Bloggpost #1

I arbeidet mot CCIE Automation-labben har jeg valgt en praktisk tilnærming:

For hvert tema i blueprinten jeg studerer, forsøker jeg å bygge et reelt verktøy eller script som er nyttig i en nettverksingeniørs hverdag.

Denne gangen fokuserte jeg på Blueprint item 2.2: Build, manage, and operate a Python-based CLI application to use a REST API. Etter hvert som prosjektet utviklet seg, kom det også innom flere andre punkter i blueprinten, og endte opp som et faktisk nyttig verktøy.

Jeg har også satt opp et GitLab-repository der jeg publiserer all kode relatert til studiene mine.

Link til mitt Github repository om CCIE Automation finner dere her >

Verktøy #1: Python-verktøy for å visualisere nettverkstopologi fra Catalyst Center

Målet var å bygge et CLI-verktøy som kobler seg til Cisco Catalyst Center, henter fysisk topologidata og visualiserer dette på sekunder.

  • Bygget med click (Python-bibliotek)
    Et kraftig rammeverk for CLI-applikasjoner, som også står på listen over tillatt programvare til eksamen. Jeg utforsket flere funksjoner som @click.group, @click.option, @pass_obj og @pass_context, og brukte dem til å sende brukerinput strukturert inn i applikasjonen.
  • Bruker Cisco Catalyst Centers REST API
    Jeg laget en egen Python-klasse som håndterer autentisering, uthenting av topologi og parsing av data til et format som passer for pyvis. Klassen ligger i en egen “api”-mappe slik at den kan gjenbrukes i fremtidige prosjekter, og eventuelt utvides med flere API-er.
  • Visualisering med pyvis
    Ikke på eksamenslisten, men en morsom og effektiv måte å vise topologi i nettleseren via interaktiv HTML/JavaScript. Tegningen viser alle nettverksenheter og koblinger. Hver enhet har label med hostname, og ved hover vises modellnavn. Fargekoding er basert på modell.

Her er lenker til hovedscriptet og Catalyst API-klassen.

Flyt:

1. Opprettet en hoved click-gruppe som holder delt tilstand for noder og lenker.
image-png-1

2. Første kommando autentiserer mot Catalyst Center, henter fysisk topologi, parser data til pyvis-format og lagrer det i delt kontekst/objekt:
image-png-2

  1. I prosessen instansieres et nytt objekt av klassen ApiCatcenter, som init-funksjonen henter token som brukes senere.
    image-png-4
    2. Klassen har én funksjon for API-kall og én for parsing til pyvis-format
    image-png-Jul-10-2025-08-56-25-3861-AM
    3. Den siste funksjonen i klassen parser dataene til et Pyvis-vennlig format.
    image-png-Jul-10-2025-08-57-26-8397-AM

3. Den andre click-kommandoen bruker delt kontekst og skriver ut topologien enten som rå JSON eller som en pyvis-visualisering.
image-png-3

4. Resultatet – i all sin prakt:
Skjermbilde 2025-07-10 103455-png

(Som eksemplet viser er ikke alle nettverksenheter koblet sammen, men det ser ganske bra ut likevel!)

Eksempel på bruk: python3 network_topology.py catcenter -ip <ip_address> -u <username> -p <password> output -t <drawing | json>

Mulige forbedringer

  • Legge til støtte for flere produkter/API-er, f.eks. Cisco ACI eller Cisco FMC, og vise alt i én samlet topologi

  • Mer presis feilhåndtering

  • Sannsynligvis mye mer

Blueprint-punkter som ble berørt

Blueprint item Beskrivelse 
2.2 Bygge, administrere og drifte en Python-basert CLI-applikasjon som bruker et REST API
2.3.a Bruke og ta i bruk et nytt REST API basert på tilgjengelig dokumentasjon
3.1 Lage, endre og feilsøke skript ved hjelp av Python-biblioteker og SDK-dokumentasjon for å automatisere mot API-er
 Det er interessant hvor raskt ett prosjekt kan dekke flere deler av blueprinten – noe som gjør dette både praktisk og relevant for eksamen.

Refleksjoner #1

  • Click var intuitivt å bruke, med innebygd argument-parsing, hjelpetekst og struktur

  • Catalyst Center-API-et returnerte mer data enn jeg trengte – parsing og restrukturering var nøkkelen

  • pyvis gjorde visualiseringen både morsom og interaktiv – dette kan brukes til mye spennende fremover

  • Motiverende å se hvor mange blueprint-punkter som ble dekket på én uke

Hva skjer videre?

Neste gang fortsetter jeg i samme spor og utforsker:

Blueprint item 2.1: Build, manage, and operate a Python-based REST API with a web application framework (endepunkter, HTTP-forespørsler og -responser, OpenAPI-spesifikasjon).

Nyttige linker

  • GitLab Repo – Min CCIE Automation Code
  • click – Python CLI framework
  • pyvis – Network Visualization in Python
  • Cisco Catalyst Center API dokumentasjon

Bloggserie

  • [Min reise mot CCIE Automation #2] Inventory REST API og mikrotjenestearkitektur

  • [Min reise mot CCIE Automation #3] Orchestration API og NETCONF

  • [Min reise mot CCIE Automation #4] Automatisering av nettverksoppdagelse og rapporter med Python og Ansible

  • [Min reise mot CCIE Automation #5] Bygging av nettverkspipelines for pålitelige endringer med pyATS og GitLab CI

  • [Min reise mot CCIE Automation #6] Automatisering av Cisco ACI-utrulling med Terraform, Vault og GitLab CI

  • [Min reise mot CCIE Automation #7] Utforsking av Model-Driven Telemetry for sanntidsinnsikt i nettverket

  • [Min reise mot CCIE Automation #8] Utforsking av ThousandEyes og automatisering av Enterprise Agent-utrulling

  • [Min reise mot CCIE Automation #9] Anvendelse av OWASP Secure Coding Practices

  • [Min reise mot CCIE Automation #10] Fra Docker Compose til Kubernetes

Trenger du bistand?

Vi tar gjerne en uforpliktende prat. 
Kontakt oss

Les mer

Cybertrusselbildet 2026: Innsikt fra Arctic Wolf sin trusselrapport
Blogg

Cybertrusselbildet 2026: Innsikt fra Arctic Wolf sin trusselrapport

Arctic Wolf Threat Report 2026: Ransomware er fortsatt trussel nummer én.
IAM for dummies
Blogg

IAM for dummies

En enkel og praktisk innføring i IAM og hvorfor riktig tilgang er avgjørende.
Hvordan redusere kostnad i Microsoft Sentinel og Defender XDR
Blogg

Hvordan redusere kostnad i Microsoft Sentinel og Defender XDR

Kostnader og valg for logging i Microsoft Sentinel og Defender XDR.
Sicras sikkerhetstriangel: Helhetlig IT- og OT-sikkerhet gjennom ledelse, overvåkning og ekspertise
Blogg

Sicras sikkerhetstriangel: Helhetlig IT- og OT-sikkerhet gjennom ledelse, overvåkning og ekspertise

Sicras sikkerhetstriangel gir helhetlig sikkerhet på tvers av IT, OT og ledelse.

Hold deg oppdatert
Motta siste nytt fra Sicra

Linker
BærekraftFAQPartnereSertifiseringerKarrierePresse
Kontakt
Tel: +47 648 08 488
E-post: firmapost@sicra.no

Posthuset, Biskop Gunnerus' gate 14A, 0185 Oslo

Følg oss på LinkedIn
Sertifiseringer
iso27001-white
ISO 27001
miljofyrtarnlogo-hvit-rgb
Miljøfyrtårn
Sicra Footer Logo
Sicra © 2025
Personvern