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

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

I blogg #4 av CCIE Automation-reisen automatiserer jeg nettverksoppdagelse og rapportering ved hjelp av Python og Ansible. Ved å kombinere subnett-skanning, faktainnsamling og malbasert rapportering bygges en helhetlig arbeidsflyt som resulterer i en oversiktlig HTML-rapport over nettverket.

 

<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 #4] Automatisering av nettverksoppdagelse og rapporter med Python og Ansible</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 mot CCIE Automation #4] Automatisering av nettverksoppdagelse og rapporter med Python og Ansible er del av en serie som følger min reise mot CCIE Automation. I forrige innlegg jobbet jeg med NETCONF og et Orchestration API. I dette innlegget fokuserer jeg på automatisering av nettverksoppdagelse og rapportering med Python og Ansible.

Blogg #4

Etter NETCONF i blogg #3 ønsket jeg å ta tak i noe nettverksingeniører ofte gjør manuelt – oppdage enheter, samle fakta og dokumentere naboer – og automatisere dette ved hjelp av Python og Ansible.

I dette innlegget er prosjektet nettverksoppdagelse og rapportering. En liten arbeidsflyt som skanner et subnett, oppdager enheter, kjører kommandoer og genererer en oversiktlig HTML-rapport.

Det jeg har bygget

1. Python discovery-skript

Et Python-basert Click-program (network_discovery.py) som:

  • Skanner et subnett etter enheter med SSH-port åpen

  • Logger inn med brukernavn og passord ved hjelp av Netmiko

  • Detekterer om enheten kjører IOS eller NX-OS

  • Bygger en Ansible inventory-fil med korrekt ansible_network_os

  • Kjører en Ansible-playbook som samler fakta om de oppdagede enhetene:
    - Hostname
    - Maskinvaremodell
    - Programvareversjon
    - CDP/LLDP-naboer

  • Og deretter genererer en HTML-rapport som viser alle enheter og innsamlet informasjon

Eksempel fra scriptet (se GitLab-repoet for full detaljer:

image-png-Sep-05-2025-08-20-04-0999-AM

2. Ansible playbook

Playbooken (gather_device_facts.yml) kjøres mot de oppdagede enhetene, samler system- og naboinformasjon og genererer en HTML-rapport.

Eksempel på innsamling av data fra oppdagede enheter:

image-png-Sep-05-2025-08-28-20-1232-AM

Foreløpig støttes kun Cisco IOS og Nexus, men dette kan enkelt utvides til andre plattformer.

3. HTML-rapport

I stedet for rå CLI-output genereres én samlet HTML-rapport ved hjelp av en Jinja2-mal. Hver enhet listes i en tabell, med utvidbare seksjoner for CDP- og LLDP-informasjon.

Eksempel fra Jinja2-malen:

image-png-Sep-05-2025-08-31-31-9614-AM

4. Resultatet – vis HTML-rapporten

Du får en liste over alle oppdagede enheter med kolonner for:

  • IP
  • Hostname
  • Modell
  • Versjon
  • Operativsystem

Til slutt vises en oversikt over alle CDP- og/eller LLDP-naboer for hver oppdagede enhet.

image-png-Sep-05-2025-08-35-48-4072-AM

Hvordan kjøre løsningen

Se README i GitLab-repositoriet.

Oppdatering av tjenestesamspill

Jeg har lagt dette nye brukstilfellet inn i Nautix-diagrammet.

image-png-Sep-05-2025-08-48-46-4010-AM

Hva skjer videre

I blogg 5 vil jeg fokusere på å jobbe med pyATS:

Blueprint item 3.3 Endre og feilsøke en automatisert test ved hjelp av pyATS for å møte gitte krav. 

3.3.a Opprette en testbed-fil for tilkobling til Cisco IOS-, IOS XE- eller NX-OS-enheter
3.3.b Hente gjeldende konfigurasjon og operasjonell tilstand fra enheter ved hjelp av Genie-parsere og -modeller inkludert i pyATS
3.3.c Utvikle og kjøre testjobber og skript ved hjelp av AEtest for å verifisere nettverkshelse

Nyttige lenker

  • GitLab Repo – Min CCIE Automation kode
  • Ansible dokumentasjon

Bloggserie

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

  • [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 #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