Vorlagen für Switch- und Routerkonfigurationen mit Jinja2

Gleichförmig

Viele Administratoren stehen vor der Herausforderung, in möglichst kurzer Zeit viele aktive Netzwerkkomponenten wie Router und Switches parallel auszurollen. Früher wurden diese Konfigurationen händisch per Copy&Paste und manuelle Ersetzungen erstellt oder mit eigens geschriebenen Skripten automatisiert. Dies führte häufig zu Inkonsistenzen und vielfältigen Skripten. Das Python-Modul Jinja2 möchte dem ein Ende bereiten.
Die Netzwerkinfrastruktur gehört wahrscheinlich nicht zu den heißesten Themen im IT-Bereich, nimmt jedoch einen enormen Stellenwert für Administratoren ein. ... (mehr)

Eine Lösung für die vorgenannten Probleme ist das quelloffene Python-Modul Jinja2 [1]. Dieses steht unter einer BSD-Lizenz zur Verfügung. Es ist eines der meistverwendeten Template-Engines für Python. Das Modul ist ab Python 2.5 bis zu den derzeitigen Versionen 3.X kompatibel. Sowohl eine Hilfestellung im "Day 0" als auch "Day 1" ist möglich.

Unter einem Day-0-Deployment ist die initiale Inbetriebnahme der Komponenten zu verstehen. Day 1 hingegen definiert eine Konfigurationsänderung. Bei den in diesem Workshop dargestellten Beispielen handelt es sich nicht um vollständige Konfigurationen und diese sind somit nicht für einen produktiven Einsatz gedacht. Sie sollen lediglich die Funktionsweise von Jinja veranschaulichen.

Jinja2 installieren

Die Installation von Jinja2 kann über verschiedene Arten erfolgen. Die einfachste Möglichkeit ist die Installation über den im Betriebssystem enthaltenen Paketmanager. Jedoch stehen neue Versionen meist nur leicht verzögert zur Verfügung. Die zweite Möglichkeit besteht darin, das Modul über den in Python integrierten Paketmanager pip einzuspielen. Dieser lässt sich auch global installieren und steht somit betriebssystemweit zur Verfügung. Jedoch führt dies zu der Einschränkung, dass Sie nur eine Version pro eingesetztem Betriebssystem verwenden können.

Die Installation erfolgt mit pip über die Kommandozeile und dem Befehl »pip install jinja2« . Gegebenenfalls sind in unixoiden Betriebssystemen noch erweiterte Rechte für die Installation mittels sudo anzufordern. Zusätzlich ist für unsere Beispiele noch das Modul für YAML notwendig. Eine Nachinstallation dieses Moduls erfolgt zum Beispiel über »pip install pyyaml« . Je nach eingesetztem Betriebssystem und Art der Python-Installation kann auch eine vorherige Installation des Paketmanagers pip notwendig

...

Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2021