-
Herald: Ja, herzlich willkommen
zur Halbzeit hier auf dem Kanal von der
-
FeM, der nächstes BK heißt Votti
(Votteler). Er war mal vor einiger Zeit
-
bei uns in der FeM aktiv, hat dort bereits
einiges an Netzwerk Infrastruktur
-
administriert und mittlerweile arbeitet er
bei einem richtigen ISP und zeigt uns
-
heute, wie er mithilfe von NetBox dort
diverse Teile der Netzwerk Infrastruktur
-
automatisiert hat. Dieser Talk wird auch
danach eine kleine Fragerunde haben. Dazu
-
könnt ihr Fragen stellen im IRC, im
Channel RC3-FeM oder alternativ auf
-
Twitter unter dem Hashtag RC3Fem oder auch
unter dem Hashtag rc3Fem. This Talk also
-
will be translated into the english
language. To receive the english translation
-
english translation audio stream using
selection tool in the web player. Und nun
-
viel Spaß mit dem Talk.
-
Votteler: Hallo und herzlich willkommen zu
meinem Vortrag zum Thema NetBox als
-
Datenquelle für Netzwerk Infrastruktur.
Ich habe mich im letzten Jahr ein bisschen
-
mit NetBox beschäftigt und wie man das
benutzen kann, um Abläufe im Unternehmen
-
zu automatisieren. Es soll im Vortrag um
die Vorgehensweise gehen, die man beachten
-
sollte bei der Integration von NetBox in
andere Netzwerkedienste. Dabei geht es
-
explizit nicht um die Generierung von
Geräte config, sondern um die ganzen
-
Systeme, die man so drumherum hat, wie zum
Beispiel ein Monitoring System. Der ganze
-
Vortrag ist kurz gehalten und als
Diskussionsanstoß gedacht und ich werde
-
mich auf Feedback und Umfragen und
Diskussionen im Anschluss freuen. Kurz zu
-
mir. Mein Name ist Alexander Votteler. Den
meisten hier werde ich bekannt sein als
-
votti. Ich bin 25 Jahre alt und habe in
Ilmenau studiert und dementsprechend war
-
ich bei der Forschungsgemeinschaft
Elektronische Medien aktiv und auf den
-
Kongressen bin ich meistens beim C3Wok
anzutreffen. Aktuell mache ich eine
-
Ausbildung bei Relax Networks in Aachen.
Dann zu NetBox. Der Vortrag richtet sich
-
so ein bisschen an Leute, die sich damit
auskennen, das vielleicht schon selbst im
-
Einsatz haben, weil es trotzdem einen
kurzen Einstieg daran bieten. Was ist
-
NetBox? Ist ein Tool zur Dokumentation von
IT-Infrastruktur. Es ist dabei ein iPam,
-
ein IP Adress Management und ein DKIM, ein
Data Center Infrastruktur Management Tool.
-
Er strebt an, eine Abbildung der echten
Welt zu modellieren und will eine Single
-
source of Truth sein. Das heißt, die Idee
ist nicht, sein produktiv Netzwerk in
-
NetBox zur Dokumentation einfach zu
importieren, sondern man soll das Netzwerk
-
in NetBox beschreiben und daraus dann das
echte Netzwerk erzeugen. Das Ganze ist
-
eine Web-App, die so einem Keep it simple
Ansatz folgt. Das heißt, es wird wirklich
-
nur die grundlegenden Modelle dargelegt
und alles weitere muss man sich selbst
-
dann abbilden. Und das Ganze ist Open
Source unter der Apache Lizenz, das heißt,
-
jeder kann sich das installieren und
verwenden, werde ich jetzt kurz ne Demo
-
bieten. Man sieht ja so den Login Screen
bevor man eingeloggt ist in NetBox. Da
-
sieht man schon welche ganzen Objekte wir
hier verwalten können. Ich glaube mich
-
jetzt einfach mal ein. Wir sehen wie
gesagt Organisatorisches Datacenter
-
Inventar, Wracks und Geräte, man kann
Kabel modellieren und alle IP-Adressen.
-
Ich gucke jetzt einfach mal die Geräte an.
Geräte Liste, wir haben den Namen und
-
Status und die Rollen der Geräte,
Hersteller, Typen, Standort und eventuell
-
auch IP-Adressen, wenn die verknüpft sind
mit den Geräten. Wir gucken uns jetzt
-
einfach mal so Access Switch an. Haben wir
wieder die ganzen Informationen, die wir
-
gerade schon gesehen haben. Wir sehen aber
auch zum Beispiel auch, in welcher Höhen
-
Einheit das verbaut ist. Noch mal den Typ
und das Betriebssystem. Können auf
-
Interfaces klicken, sehen hier, es gibt
Interfaces, die sind verknüpft mit anderen
-
Geräten wiederum und haben IP-Adressen.
Können uns jetzt einfach mal die primäre
-
IP-Adresse des Gerätes angucken und sehen
hier wieder Informationen dazu, welche IP-
-
Adresse Familie das ist, wem du zugewiesen
ist den Status DNS Name. Das Assignement,
-
auf welches Gerät das zugewiesen ist und
welches Interface. Wir sehen auch die IP-
-
Adresse ist Teil eines Prefix, also
unserem Platz können hier wiederum auf das
-
Präfix Object klicken. Wieder allerhand
Informationen können sehen, welche IP-
-
Adresse am ist in dem Netzwerk gibt,
könnten es hier auf die freien IP-Adressen
-
klicken. NetBox würde uns die nächste
freie IP-Adresse
-
vorschlagen. Sie will hier anlegen können
mit DNS, Name und INAT nformation und
-
Interface Zugehörigkeiten. Was können wir
allgemein alles so NetBox abbilden, so als
-
Überblick. Wir haben organisatorisches
Geräte, also Geräte und Gerätetypen und
-
Komponenten, können aber auch die
Verbindung zwischen den Geräten und
-
abbilden mit Kabeln und kabellosen Links.
Wir haben IP-Adressen und Präfixen. Wir
-
konnten so autonomen Systeme verwalten,
unsere Vlans zum Beispiel. Virtuelle
-
Maschinen sind auch abgebildet in NetBox,
die wir hier mit den Parametern anlegen
-
können, die man so braucht, um man vor
einem Host-Umgebung zu befüllen. Und wir
-
können NetBox zum Beispiel mit eigenen
Skripten auch erweitern und eigene
-
Funktionalitäten hinzufügen. Das ist alles
im python dann. Das ist so grob der
-
Überblick zu NetBox, wie wir die Daten da
anlegen und verwalten. Jetzt geht es
-
darum, mit welchen Schnittstellen greifen
wir denn auf die Daten zu, wenn wir das
-
integrieren wollen mit anderen Diensten.
Das ist zum einen gibt es da eine Rest
-
API. Also einfach per http request kann
man sich die einzelnen Objekte lesend und
-
schreibend damit bearbeiten. Das ist über
Keys gesteuert, die man sich, die jeder
-
NetBox Nutzer sich anlegen kann. Es gibt
auch eine GraphQL API, da kann man sich
-
also einfach ein Query schreiben und dann
direkt die Information mit einem Request
-
holen, die man vielleicht braucht. Und
NetBox bietet auch Webhooks, das heißt
-
NetBox schickt ein HTTP Request und ein
vorkonfigurierten Server. Wenn sich an
-
einem bestimmten Objekt oder Objekttyp
etwas ändert. Zum Beispiel kann man damit
-
sein, DNS-Server befüllen. Wenn ich von
Netzwerk Infrastruktur rede, was meine ich
-
dann? Ich meine damit unser Monitoring-
Tool, das ist in dem Fall Icinga. Wir
-
haben auch noch Observium im Einsatz, um
weitere Statistiken einsammeln zu können.
-
Wir verwenden Rancid, um
Konfigurationsänderungen auf Switchen und
-
Routern zu verfolgen und wir wollen
PowerDNS einsetzen, um eben DNS Einträge
-
für intern und extern zu verwalten. Dabei
geht es um Forward und Reverse DNS.
-
Außerdem haben wir für bestimmte Switche
ein ZeroTouchProvisioning zwischen den
-
Systemen im Einsatz. Dabei geht es einfach
darum, die Geräte nicht mehr
-
vorkonfigurieren zu müssen, bevor sie
verbaut werden, sondern sie werden einfach
-
nur noch angelegt und dann über den ziehen
Sie sich beim ersten Boot automatisch die
-
Konfiguration Firmware. Es wird auch kurz
um Puppet gehen, dass unser Configuration
-
Management Tool für VMS vor allem. Und ich
möchte das Ganze jetzt einmal abbilden
-
oder anhand eines Ablaufs bei uns im
Unternehmen beschreiben, was mit NetBox
-
erreicht werden soll. Der Ablauf ist das
Anlegen neuer Geräte zum Beispiel neue
-
exist switches. Wie lief das bisher
ab? Man musste sich eine IP-Adresse
-
heraussuchen. Da gibt es in Legacy
Umgebung viele verschiedene Methoden.
-
Excel-Tabellen und irgendwelche Wikis VoIP
Adressen verwaltet wurden, dann muss man
-
das Gerät manuell konfigurieren. Eventuell
gibt es irgendwelche Vorlagen als
-
Textfiles, die rumliegen. Aber das ist
halt auch alles nicht hübsch. Wir müssen
-
die IP-Adresse eventuell manuell ins DNS
eintragen. Wir müssen auf eine Rückmeldung
-
warten, ob das Gerät verbaut wurde. Dann
wird das ganze in die Icinga eingerichtet
-
in dem Monitoring, Observium, Rancid. Und
schlussendlich müssen wir das Ganze noch
-
dokumentieren. Wie soll das in Zukunft
ablaufen, wenn wir das, wenn wir dann
-
NetBox ins Spiel bringen? Die Idee ist es,
wir dokumentieren und sind fertig. Wie
-
sieht das in der Realität aus? Gerät wird
per Skript in NetBox angelegt. Da brauchen
-
wir so die grundlegenden Informationen wie
der Name des Gerätes, der Standort und die
-
MAC-Adresse. Das Script kümmert sich
darum, dass die freie App rausgesucht
-
wird, dass das Gerät als passenden Typ
angelegt wird und der Standort geknüpft
-
wird. Unser Zero Touch provisioning zieht
sich die Informationen aus NetBox,
-
generiert schon da Geräte config und legt
das passend an. Und im DNS wird der Name
-
der IP-Adresse oder die IP-Adresse auch
schon hinterlegt. Und wir legen das ganze
-
als Status bland in NetBox an. Also
geplant. Dann bekommen wir wieder unsere
-
Rückmeldung. Das Gerät wurde verbaut.
Daraufhin setzen wir NetBox den Status auf
-
aktiv und unser Icinga . Das Observium
und das rancid sollten dann automatisch
-
konfiguriert werden, so dass wir nichts
mehr machen müssen manuell und wir sind
-
fertig. Wie sieht das Ganze aus? Wie
können wir das integrieren? Ich habe jetzt
-
drei verschiedene Methoden mal dargelegt,
wie wir das machen können. Die erste
-
Methode zur Integration ist ein Export mit
nachträglicher manueller Kontrolle und mit
-
Export meine ich einen vollständigen
Export unseres Datenbestand des NetBox.
-
Das kann man sich automatisieren mit zum
Beispiel, Ci/CD-Pipleine. In unserem Fall
-
haben wir das mit GitLab gemacht. Wie
sieht das aus? Wir haben eine GitLab-
-
Pipeline, die besteht aus zwei Tasks.
Einmal wird ein Jammelfall generiert, mit
-
allen Informationen, die wir in Box haben,
bzw. mit allen Informationen, die wir für
-
so einen Host brauchen. Und daraufhin wird
automatisch ein Git-Commit angestoßen und
-
ein Merge-Request erzeugt, indem wir dann
die Änderungen, die wir gemacht haben,
-
noch mal als normal dargestellt bekommen.
In dem Beispiel hier wurde einfach nur
-
eine IP-Adresse geändert beziehungsweise
das Subnetz verändert. Dann können wir
-
sagen, Okay, diese Änderung ist hübsch,
die können wir mergen und haben das dann
-
direkt als Datenbestand im popit zur
Verfügung. Das funktioniert aber genauso
-
mit anderen Configuration Management
Tools, zum Beispiel mit Ensemble oder
-
soled stick. Diese Vorgehensweise hat
natürlich Vor und Nachteile. Zum einen
-
haben wir die volle Kontrolle über die
Daten, die wir in unserem Produktivsystem
-
haben und wir können auch wunderbar
irgendwelche Business Prozesse z.B. in
-
Change Management Prozess, den wir
eventuell im Unternehmen etabliert haben,
-
damit abbilden. Nachteil ist, dass es mit
erheblichem Aufwand verbunden. Wenn wir
-
eine kleine Änderung machen, müssen wir
das im NetBox ändern, dann die Pipeline
-
anstoßen, dann den Merge Request
kontrollieren bzw. kontrollieren lassen.
-
Und das Ganze ist nicht vollständig oder
nicht in NetBox integriert. Das heißt,
-
wenn wir eine Änderung machen, dann haben
wir in der Versionskontrolle Merge
-
request. Aber im NetBox ist da schon der
Zustand so wie er ist. Ein anderer Ansatz
-
wäre, das Ganze mit den Webhooks zu
machen. Ich habe jetzt hier ein Beispiel
-
verlinkt, da hat das jemand verwendet, um
DNS Updates anzustoßen und das würde
-
einfach so funktionieren, dass sobald sich
an z. B. an einer IP-Adresse was
-
ändert, automatisch ein Request an diesen
Webhooks-Server gesendet wird, der dann
-
wiederum ein DNS Update auf dem DNS Server
anstößt. Der Vorteil hierbei, unsere
-
Änderungen sind sofort wirksam. Der
Nachteil, es können über die Zeit
-
Inkonsistenzen oft entstehen, wenn z.
B. der DNS-Server das nicht
-
übernimmt oder da ein Fehler passiert beim
beim Webhoock, dann können die Daten unter
-
Umständen verloren gehen und wir haben
keine Methode das zu sehen und auch keinen
-
Weg das wieder konsistent zu bekommen.
Wenn wir einen Fehler NetBox machen, hat
-
er sofort eine Auswirkung auf unser
Produktivsystem und es gibt kein Weg, das
-
noch mal zu überprüfen. Eine andere
Methode, das Ganze zu machen, die wir
-
aber, die ich es präferiert habe, ist der
regelmäßige automatische Sync von
-
verschiedenen Diensten mit den
Datenbestände der NetBox. Da habe ich
-
jetzt von meinem GitHub ein Skript
hinterlegt, wo wir das mit PowerDNS
-
machen. Das Ganze hat immer den gleichen
Ablauf. Das sieht so aus: Wir holen uns
-
alle Einträge, die in dem System
existieren, zum Beispiel in DNS-Server.
-
Wir holen uns alle Einträge, die wir dazu
in NetBox haben, zum Beispiel alle IP-
-
Adressen und Host , die wir dazu
haben. Wir machen einen Abgleich: Was ist
-
im System, was ist eine NetBox? Und
daraufhin legen wir alles, was nicht im
-
System ist, aber in NetBox neu an. Und
alles was im System ist, aber nicht eine
-
NetBox wird gelöscht. Das ganze habe ich
per Script gelöst für PowerDNS und die
-
anderen Sachen sind damit auch noch in
Planung. Für Icinga gibt es eine
-
Sonderregelung, da gibt es nämlich den
Icinga Direktor. Das ist einfach so ein
-
Tool, um die Konfiguration von Icinga
direkt per GUI verwalten zu können. Und
-
dafür gibt es ein Netbooks Modul. Die
Konfiguration dafür ist recht aufwendig.
-
Deswegen zeige ich da kurz gleich ein paar
Screenshots und wir können aber auch nicht
-
alles abbilden, was Icinga bietet. NetBox
direkt dafür bietet NetBox aber so hübsche
-
Sachen wie den config Kontext. Das ist
einfach ein json-Feld, was zum Beispiel an
-
Geräten oder IP-Adressen hängen kann. Und
da können wir zusätzliche Informationen zu
-
Checks, die wir haben wollen, in unserem
Monitoring abbilden. In Isinga sieht es
-
dann so aus, wenn wir dieses Modul
installiert haben. Wir haben Import
-
Quellen, also unsere NetBox Objekte, zum
Beispiel Devices und API Adressen und VMS
-
und können darauf wieder Modifiers
anwenden, die die Daten so umbauen, dass
-
sie für uns in die Icinga dann passen. Das
ganze wird als Objekte in die Icinga
-
eingesenkt über eine synch rule für die
Devices oder IP-Adressen oder VMS. Und
-
dort gibt es dann wieder Properties, die
dann sagen, welches Feld aus NetBox soll
-
in welches Feld im Icinga wandern und auf
welchen, auf welche. Welche Vorbedingungen
-
erfüllt sein müssen, damit das Gerät oder
das Objekt in Icinga reingesynct wird. Und
-
auf die Objekte auf diesem Host zum
Beispiel können wir dann über Applayrules
-
wieder Services anwenden, zum Beispiel für
PGP Checks, die wir auf bestimmten Geräten
-
haben wollen. Können wir dann über die
Checks, die wir in dem Fall als Jason im
-
Konflikt Context angelegt haben, einmal
drüber iterieren mit so einer Apply for
-
rule und daraufhin einzelne Checks
erzeugen? Der regelmäßige Autosynch, was
-
hat der für Vor und Nachteile? Ein Vorteil
ist. Wir haben eine zeitnahe Wirkung der
-
Änderungen, die vergleichbar ist mit
Webhoock. Das heißt, wir lassen diesen
-
Sync entweder das Script oder und dann
Icinga Sync, alle fünf oder zehn Minuten
-
laufen und wir haben immer einen
konsistenten Zustand in unserem System.
-
Das heißt, wir haben, nachdem der Sync
einmal gelaufen ist, keine Abweichung zum
-
soll stand NetBox und zum zum Stand im produktiv
System. Der Nachteil ist, wir haben nicht
-
diese rigorose Kontrolle, wie beim
vollständigen Export mit dem Git
-
Workflow. Und wir haben eben die
aufwendigere Logik, z. B. im Icinga
-
oder in den Skripten. Das waren auch schon
die drei Methoden, die ich so vorzustellen
-
habe. Kurzes Fazit: Autosync ist für uns
die beste Kompromisslösung. Wir haben
-
sowohl die Geschwindigkeit und die
Automatisierung, die wir über den Webhook
-
hätten, also eine ähnliche Geschwindigkeit
als auch die Konsistenz, die wir über den
-
vollständigen Export haben. Den vollen
Export verwenden wir in Einzelfällen, wo
-
wir es eben haben wollen, zum Beispiel für
unser Puppet, wo wir auch die Business
-
Prozesse modellieren wollen. Und man
könnte sich vorstellen, die Webhooks noch
-
zusätzlich zu verwenden, wenn es eben
besonders schnell gehen soll. Noch ein
-
bisschen Ausblick, was ansonsten noch am
Horizont gibt. Es gibt ein NetBox Fork,
-
nennt sich Nautobot, der bietet einige
nette Features. Zum Beispiel dieses
-
Configuration Management ist da schon sehr
schön abgebildet. Allerdings wird das halt
-
sehr komplex und verfolgt nicht mit diesem
Keep It Simple Ansatz von NetBox. Man
-
könnte diese Prozessabbildung auch mit
einem Plugin machen. Da gibt es einen
-
netten Vortrag von der VOB kom aus
Wolfsburg. Bei der DENIC 11 habe ich ja
-
auch verlinkt, die das quasi über den
eigenen Fork schon gelöst haben und ihren
-
Business Prozess unter Change Management
über NetBox abbilden. Das war so weit von
-
mir. Wenn es Fragen gibt, ist gerne eine
kleine Diskussion, da würde ich mich
-
freuen. Ansonsten meine Website, meine
Mailadresse stehen hier. Vielen Dank für
-
die Aufmerksamkeit.
-
Herald: Ja, vielen Dank Votti für diesen
interessanten Talk.
-
Votteler: Hallo, nix!
Herald: Es gibt jetzt noch eine kleine
-
Fragerunde. Erst habe ich wegen der Maske.
Dafür haben wir Votti jetzt hier live
-
zugeschaltet.
Votteler: Hi!
-
Herald: Ja, bisher haben wir hier nur eine
Frage in unserer Liste. Und zwar kann denn
-
NetBox die Netzwerk Topologie grafisch
darstellen?
-
Votteler: Die Topologie an sich nicht. Man
kann. Wenn man physikalische Kupferkabel
-
Kabel hat, kann man sich die tracen. Man
kann dann gucken. Das Kabel geht von dem
-
Switch in den Patch Panel weiter in
anderen Switch und man kann auch circles
-
darstellen. Also wenn man jetzt irgendwo
von einem Anbieter pls Netzwerk an das
-
Netz oder Dienst hat, dann kann man das
auch darstellen. Aber man kann jetzt nicht
-
die logische Struktur von einem Netzwerk
in der NetBox Virtualisierung
-
visualisieren. Genau.
Herald. Vielen Dank. Ansonsten ich möchte
-
noch mal darauf hinweisen, falls es jetzt
noch Fragen gibt gerne stellen im IRC
-
unter RC3-FeM, alternativ auch auf Twitter
oder unter Hashtag RPG 3 und dann werden
-
wir die hier auch noch mal vorlesen und
die werden dann sofort beantwortet.
-
Votteler: Genau, ja.
Herald: Ansonsten wäre jetzt keine Frage
-
stellen will. Wir haben ja nachher noch
eine Breack out session geplant. Also wer
-
noch mit mir reden will und allgemein alle
möglichen Leuten, die sich über NetBox
-
unterhalten wollen. Wir können uns nachher
im virtuellen FeM Office treffen. In der
-
RC3 Welt. Danke für den Link.
Herald: Genau hier ist nochmal kurz der
-
Link eingeblendet. Ansonsten findet ihr
uns auch wie gesagt in der FeM. Assembly
-
in der RC3 World aber auch über die
Webseite von RC3. So, gut es scheint
-
ansonsten wird es keine weiteren direkten
Fragen zu geben. Von daher würde ich jetzt
-
einfach sagen sehen wir uns dann in der
RC3 World.
-
Votteler. Genau.
Herald: So. Ansonsten für alle, die weiter
-
einschalten wollen. Um 22 Uhr findet hier
der nächste Tack statt und zwar geht es um
-
Frison Waves. Hier hat ein Team ein System
entworfen, um Gänsehaut in einem Publikum
-
zu messen oder auch direkt zu induzieren.
Und natürlich jetzt direkt im Anschluss
-
die Verkehrs Nachrichten.
-
Untertitel erstellt von c3subtitles.de
im Jahr 2022. Mach mit und hilf uns!