top of page
download.png
  • Kevin Kuusela

Genomgång utav Provisioneringssystemet Prisco

Uppdaterat: 11 okt. 2022

Idag kommer vi gå igenom Zero Touch Systemet Prisco och visa fördelarna med att använda sig av ett Zero/ One Touch System.


Mål

Prisco skapades med syftet att automatisera bort den manuella processen att få i gång en switch. Lösningen ska vara så pass enkel att teknikern ute på fältet som inte har någon tidigare bakgrund kring konfiguration ska kunna få en switch konfigurerad.


Arkitektur

Prisco är containeriserad och körs som tre stycken containrar. Containrarna behöver nätverksaccess till nätet där målswitcharna ligger, samt http mot operatörens arbetsstation.


WEB – Docker Container

WEB-containern innehåller ett grafiskt användargränssnitt. Det grafiska användargränssnittet kompletteras med ett REST-API som det grafiska användargränssnittet pratar med. APIet hanterar provisionering och verifiering av switcharna.

WEB tar även en backup av running/ current configuration på alla switchar som ligger i nätet man anger vid setup och sparar dem i /CISCO_BACKUPS mappen. Detta körs via cron job 03:00 varje natt, kan justeras i Dockerfilen under WEB/backend/.


DHCP – Docker Container

DHCP-containern är en ISC DHCP som tar den första kommunikationen med switchen. Den berättar för switchen var konfigurationen finns att hämta. När denna konfiguration är applicerad kan APIet från WEB-containern nå burkarna via SSH.


TFTP – Docker Container

TFTP-containern håller standardkonfigurationen som Ciscoswitcharna automatiskt hämtar upp när dom startar, detta görs på grund av den inbyggda funktionen i Switcharna som frågar DHCP-servern om var det finns en TFTP server att hämta konfiguration ifrån.


Genomgång av interfacet och händelseflödet

När en tekniker på fältet sätter upp switchen och kopplar in den så behöver porten som denna switch sitter på konfigureras med t.ex. ett vlan som leder vidare mot DHCP. Denna konfiguration gör det då möjligt för switchen att få IP ifrån vår DHCP container.


När switchen bootar frågar den då DHCPn var den ska hämta sin konfiguration från och då svarar den med TFTP som lämnar ifrån sig ”cisco_ztp_grund.conf”.


Switcharna tar konfigurationen och sätter den som sin Running/ Current Configuration. Med hjälp av denna konfiguration kan WEB nu nå switchen säkert med hälp av de användaruppgifter som är konfigurerade.. Nu när switchen har fått standardkonfigurationen så har den även plockat en lease från DHCP. Varje gång man öppnar eller refreshar användargränssnittet så kollar WEB containern efter alla leases i DHCPn och presenterar dessa som en knapp med MAC adressen.



Du kan nu välja switchen genom att klicka på knappen som innehåller MAC-adressen.



För att provisionera switchen, välj alternativet Recover Switch


Nu får du upp detta fönster


Vid recover anger man vilket hostname switchen ska få vid provisionering och IP-adressen den hade tidigare/ ska få. När du har fyllt i samtliga uppgifter och klickar på Continue så kommer den nu hämta konfigurationen från CISCO_BACKUP/{IP-ADDRESS}.conf och lägga ut det på switchen med hjälp av Ansible.


Om switchen är ny och backup saknas så kan man förebereda en fil i CISCO_BACKUP/ mappen med namnet {IP-ADDRESS}.conf vilket WEB då kommer använda sig av vid konfiguration.


Sammanfattning

Du har nu konfigurerat upp en helt ny switch genom 3 knapptryck! Woho! Det grafiska användargränssnittet är även anpassat för mobilen så en tekniker som är ute på fältet och sätter upp denna har möjlighet att göra det remote.


Du kan nu testa att göra detta själv genom att följa installationen på GitHub:

https://github.com/sdnit-se/Prisco

9 visningar
bottom of page