![<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>](https://sicra.no/hs-fs/hubfs/two_guys_working_on_a_computer.jpg?width=1024&height=576&name=two_guys_working_on_a_computer.jpg)
(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.)
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.
Fordi den samler alt jeg brenner for:
Og dette er ikke bare teori – det er en praktisk 8-timers lab-eksamen som tester reelle ferdigheter.
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
Å 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.
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
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 >
Målet var å bygge et CLI-verktøy som kobler seg til Cisco Catalyst Center, henter fysisk topologidata og visualiserer dette på sekunder.
Her er lenker til hovedscriptet og Catalyst API-klassen.
1. Opprettet en hoved click-gruppe som holder delt tilstand for noder og lenker.
2. Første kommando autentiserer mot Catalyst Center, henter fysisk topologi, parser data til pyvis-format og lagrer det i delt kontekst/objekt:



3. Den andre click-kommandoen bruker delt kontekst og skriver ut topologien enten som rå JSON eller som en pyvis-visualisering.
4. Resultatet – i all sin prakt:
(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>
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 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 |
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
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).



