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

Hvordan velge riktige SOC-tjenester i 2026
Blogg

Hvordan velge riktige SOC-tjenester i 2026

Sju spørsmål du bør stille før du velger SOC-tjeneste og SOC-leverandør.
Sicra SOC styrker virksomhetens cybersikkerhet
Blogg

Sicra SOC styrker virksomhetens cybersikkerhet

Sicra Managed SOC overvåker IT-miljøet døgnet rundt og håndterer cybertrusler.
Slik avslører Sicra SOC cybertrusler
Blogg

Slik avslører Sicra SOC cybertrusler

Slik oppdager og håndterer Sicra SOC cybertrusler før de gjør større skade.
Sicras første intern får prøve seg tett på ledelsen
Blogg

Sicras første intern får prøve seg tett på ledelsen

Oscar Dennett er Sicras første intern og får prøve seg tett på selskapets ledelse.

Hold deg oppdatert
Motta siste nytt fra Sicra

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

Drammensveien 151, 0277 Oslo

Følg oss på Instagram

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