Vorwort
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Netzwerkverwaltung und Softwareentwicklung verschmelzen immer mehr. Auf der einen Seite werden neue Dienste entwickelt, die mit sehr hoher Geschwindigkeit und in einem Umfang bereitgestellt und verwaltet werden können, der ohne Software nicht möglich wäre. Dies wird typischerweise als Software-defined Networking (SDN) bezeichnet. Andererseits müssen Netzwerkadministratoren bestehende Dienste effizienter einsetzen und verwalten, indem sie die täglichen Aufgaben durch Automatisierung unterstützen. Dieses Buch konzentriert sich auf das letztgenannte Problem.
Die alltägliche Netzwerkverwaltung ist zwar nicht das "heiße" Thema des Tages, aber sie ist unerlässlich. Selbst sehr komplexe SDN-Lösungen bauen auf der Grundlage eines gut verwalteten, zuverlässigen Netzwerks auf. Und auch wenn die neuesten SDN-Technologien kommen und gehen, ist es unwahrscheinlich, dass die Notwendigkeit eines soliden Netzwerkmanagements in absehbarer Zeit verschwinden wird.
Genauso wie neue Technologien interessante und leistungsstarke Lösungen für bestimmte Probleme beim Netzwerkdesign hervorgebracht haben, unterstützt Junos eine Reihe von Automatisierungstools, die interessante und leistungsstarke Lösungen für gängige Netzwerkautomatisierungsaufgaben bieten. Betrachte einige dieser Möglichkeiten:
Darstellung deiner Geräte als Python-Objekte und Verwendung von Python zur Verwaltung deiner Geräte
Verwaltung deiner Geräte über ein zentrales Bereitstellungs-/Verwaltungssystem wie Ansible oder Puppet
Anpassen der Junos-Software, um Commits zu erkennen und zu blockieren, die Ihre Netzwerkstandards verletzen
Entwicklung von benutzerdefinierten CLI-Befehlen, die die benötigten Informationen so darstellen, wie du sie sehen willst
Programmierung der Junos-Software mit der Intelligenz, automatisch auf Netzwerkereignisse zu reagieren
Bereitstellung von Kunden und Diensten mithilfe einer dynamisch angewendeten Vorlage
Neue Geräte schnell in dein Netzwerk einbinden
Dieses Buch behandelt diese Themen und noch mehr. Unser Ziel ist es, dir einige der Automatisierungstechnologien näher zu bringen, die die Junos-Software beinhaltet oder unterstützt. Außerdem sollst du neue Ideen bekommen, wie du Probleme oder sich wiederholende Aufgaben in deinem Netzwerk automatisieren kannst - vielleicht sogar Dinge, von denen du gar nicht wusstest, dass sie sich so einfach durch Automatisierung erledigen lassen.
Das Ziel dieses Buches ist es, dass du Automatisierungs-Tools erfolgreich einsetzt, um Junos-Geräte in deinem Netzwerk zu verwalten. Wir haben versucht, die Dinge, die du wissen musst, um eine Vielzahl von Netzwerk-Automatisierungstools zu nutzen, gründlich zu behandeln. Einige Informationen über diese Tools gibt es bereits an anderer Stelle, allerdings sind diese Informationen nicht an einem Ort zusammengefasst. Außerdem kann es sein, dass in den anderen verfügbaren Informationen wichtige Details fehlen, die du verstehen musst, um die Tools erfolgreich zur Lösung von Problemen in der Praxis einzusetzen. Wenn du Informationen über mehrere Werkzeuge an einem Ort hast, kannst du die Eigenschaften und Funktionen vergleichen, um herauszufinden, welches Werkzeug am besten geeignet ist, um eine bestimmte Automatisierungsaufgabe zu lösen.
Je nachdem, welchen Hintergrund du hast, gehst du entweder als Netzwerkingenieur an die Sache heran, der versucht, Automatisierungswerkzeuge zu entwickeln, um seine Arbeit zu erleichtern, oder als Softwareentwickler, der Tools zur Automatisierung von Netzwerkmanagementaufgaben schreiben soll. Unabhängig davon, welcher dieser beiden Hintergründe am ehesten mit deinem übereinstimmt, sollte dieses Buch dich mit Informationen versorgen, die dir helfen, dein Ziel zu erreichen.
Wir haben die Vorteile der Automatisierung in unserem Berufsleben selbst erlebt. Schon vor 15 Jahren war die Netzwerkautomatisierung ein entscheidender Wettbewerbsvorteil in den großen Netzwerken von Dienstleistern. Wir haben auch gesehen, wie sich die Werkzeuge und Techniken im Laufe der Jahre verändert und verbessert haben. Durch die aufregenden Verbesserungen der Automatisierungstools sind die Vorteile der Automatisierung nur noch größer geworden. Wir hoffen, dass wir dieses Wissen mit dir teilen können und dass du es ebenfalls nützlich findest. Wir hoffen, dass du verstehst - falls du es nicht schon tust - warum wir den Untertitel "Mit weniger mehr erreichen" gewählt haben.
Annahmen
In diesem Buch gehen wir davon aus, dass du Zugang zu einem Gerät hast, auf dem die Junos-Software läuft und das du nutzen kannst, um die Beispiele in diesem Buch nachzuvollziehen und deine neu erworbenen Kenntnisse zu üben. Wenn nicht anders angegeben, werden in diesem Buch die Funktionen der Junos-Version 15.1 behandelt, und es wird im Allgemeinen davon ausgegangen, dass der Funktionsumfang einer Produktlinie der MX-Serie vorhanden ist.
Wir gehen außerdem davon aus, dass du Zugang zu einem Unix/Linux-Host hast, auf dem du einige der in diesem Buch besprochenen Tools installieren und ausführen kannst. Wenn du keinen Zugang zu einem physischen Rechner hast, gibt es kostenlose Virtualisierungsprodukte, mit denen du schnell eine virtuelle Maschine erstellen kannst, um diesen Bedarf zu decken.
In diesem Buch gehen wir davon aus, dass du mit der Junos-Software einigermaßen vertraut bist. In Kapitel 1 behandeln wir einige grundlegende Informationen über diese Software. Je nach deinem Hintergrund musst du diese Kenntnisse eventuell durch zusätzliche externe Schulungen ergänzen. Zusätzlich zu den praktischen Erfahrungen könntest du Aviva Garretts Junos Cookbook (O'Reilly) oder Day One: Junos Tips, Techniques, and Templates 2011, herausgegeben von Jonathan Looney et al. (Juniper Networks Books) lesen.
Außerdem setzen wir ein Grundwissen über IP-Routing, Layer-2-Switching und Routing-Protokolle voraus. Diese Kenntnisse sind zwar nicht entscheidend für das Verständnis der Automatisierungswerkzeuge selbst, helfen dir aber, einige der im Buch verwendeten Beispiele zu verstehen.
Schließlich setzen wir Grundkenntnisse in der Python-Programmierung voraus. Wir verwenden Python 2.7 für eine Reihe von Beispielen in diesem Buch. Auch wenn wir einige der fortgeschritteneren Python-Codes erklären, ist es hilfreich, wenn du die Grundlagen der Python-Programmierung verstehst, bevor du beginnst. Wenn du mehr über Python erfahren möchtest, hilft dir vielleicht ein anderes O'Reilly-Buch weiter, z. B. Learning Python von Mark Lutz.
Wie man dieses Buch liest
Wir empfehlen jedem, die Kapitel 1 und 2 zu lesen, die wichtige Grundlagen über die Funktionsweise der Junos-Software und die programmatische Verwaltung enthalten. Auch wenn du dich bereits gut mit der Junos-Software auskennst, enthalten diese Kapitel wichtige Informationen, die für dich hilfreich sein können. In späteren Kapiteln wird das Wissen aus diesen beiden Kapiteln vorausgesetzt.
Von dort aus kannst du die restlichen Kapitel erkunden. Wir empfehlen dir, das ganze Buch zu lesen und die Werkzeuge zu erkunden, die dir zur Verfügung stehen. Wenn du noch nicht alle Werkzeuge kennst, kann es hilfreich sein, die Situationen kennenzulernen, in denen sich jedes Werkzeug auszeichnet. Dieses Wissen wird dir helfen, das beste Werkzeug für jede Automatisierungsaufgabe auszuwählen.
Wenn du dich entscheidest, die Kapitel zu überspringen, solltest du wissen, dass einige Kapitel auf anderen aufbauen. Zum Beispiel sind einige der Informationen in Kapitel 5 Voraussetzung für die Kapitel 6 und 7. Ebenso sind einige der Informationen in den Kapiteln 4 und 8 nützliche Hintergrundinformationen für das Verständnis von Kapitel 10.
Schließlich sollte jeder Kapitel 11 lesen, das Beispiele dafür enthält, wie du die Werkzeuge in diesem Buch nutzen kannst, um reale Netzwerkadministrationsaufgaben zu automatisieren. Dieses Kapitel enthält auch wichtige Vorschläge für bewährte Methoden, die du bei der Erstellung von Automatisierungsprogrammen für dein Netzwerk beachten solltest.
Was steht in diesem Buch?
- Kapitel 1, Einleitung
Dieses Kapitel enthält wichtige Grundlagen über die Funktionsweise des Verwaltungssystems der Junos-Software.
- Kapitel 2, RPC-Mechanismen
Dieses Kapitel beschreibt, wie du Remote Procedure Calls (RPCs) zur Verwaltung der Junos-Software verwendest.
- Kapitel 3, Der RESTful API-Dienst
Dieses Kapitel beschreibt die Junos RESTful API und enthält Beispiele für die Verwendung der RESTful API zur Verwaltung der Junos-Software.
- Kapitel 4, Junos PyEZ
In diesem Kapitel wird beschrieben, wie du das Python-Paket PyEZ für die Verwaltung der Junos-Software nutzen kannst. Außerdem wird beschrieben, wie du mit YAML und Jinja2 die Funktionen von PyEZ erweitern kannst.
- Kapitel 5, Commit-Skripte
Dieses Kapitel beschreibt, wie du Commit-Skripte verwenden kannst, um den Commit-Prozess anzupassen. Das Kapitel stellt auch SLAX vor, eine Sprache, mit der du Op-, Commit- und Event-Skripte schreiben kannst.
- Kapitel 6, Op-Skripte
In diesem Kapitel wird beschrieben, wie du mithilfe von op-Skripten benutzerdefinierte CLI-Befehle hinzufügen oder die Ausgabe von bestehenden Befehlen anpassen kannst.
- Kapitel 7, Ereignisskripte und Ereignisrichtlinien
In diesem Kapitel wird beschrieben, wie du Ereignisskripte und Ereignisrichtlinien verwenden kannst, um die Junos-Software so zu programmieren, dass sie automatisch auf beobachtete Ereignisse reagiert.
- Kapitel 8, Erstmalige Bereitstellung
In diesem Kapitel werden die Tools ZTP und Netconify vorgestellt, mit denen du die Erstkonfiguration von neuen Junos-Geräten automatisieren kannst.
- Kapitel 9, Marionette
In diesem Kapitel wird beschrieben, wie du einen Puppet-Agenten zur Junos-Software hinzufügen und die Junos-Software mit dem Puppet-System verwalten kannst.
- Kapitel 10, Ansible
In diesem Kapitel erfährst du, wie du die Junos-Software mithilfe der Ansible-Automatisierungs-Engine verwalten kannst.
- Kapitel 11, Automatisierung in die Praxis umsetzen
In diesem Kapitel werden zunächst verschiedene Szenarien beschrieben, in denen du Automatisierung einsetzen könntest und wie du die im Buch beschriebenen Werkzeuge nutzen kannst, um die Anforderungen dieser Szenarien zu erfüllen. Das Kapitel und das Buch schließen mit einigen bewährten Methoden, die du beim Schreiben deiner eigenen Automatisierungsprogramme berücksichtigen solltest.
In diesem Buch verwendete Konventionen
In diesem Buch werden die folgenden typografischen Konventionen verwendet:
- Kursiv
Weist auf neue Begriffe, URLs, E-Mail-Adressen, Datei- und Verzeichnisnamen, Dateierweiterungen und RPCs hin.
Constant width
Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter zu verweisen. Wird auch für Befehle und Befehlszeilenoptionen verwendet.
Constant width bold
Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingetippt werden sollte.
Constant width italic
Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.
Tipp
Dieses Element steht für einen Tipp oder eine Anregung.
Hinweis
Dieses Element steht für einen allgemeinen Hinweis.
Vorsicht
Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.
Code-Beispiele verwenden
Zusätzliches Material (Code-Beispiele, Übungen usw.) steht unter https://github.com/AutomatingJunosAdministration zum Download bereit .
Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Wenn du eine CD-ROM mit Beispielen aus den O'Reilly-Büchern verkaufst oder verteilst, ist eine Genehmigung erforderlich. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eine Erlaubnis erforderlich.
Wir freuen uns über eine Namensnennung, verlangen sie aber nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Automating Junos Administration von Jonathan Looney und Stacy Smith (O'Reilly). Copyright 2016 Jonathan Looney und Stacy Smith, 978-1-491-92888-2."
Wenn du der Meinung bist, dass deine Verwendung von Codebeispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter permissions@oreilly.com kontaktieren .
Safari® Bücher Online
Hinweis
Safari Books Online(www.safaribooksonline.com) ist eine digitale On-Demand-Bibliothek, die Experteninhalte in Buch- und Videoform von weltweit führenden Autoren aus den Bereichen Technologie und Wirtschaft bereitstellt.
Technologieexperten, Softwareentwickler, Webdesigner sowie Geschäftsleute und Kreative nutzen Safari Books Online als Hauptressource für Recherchen, Problemlösungen, Lernen und Zertifizierungsschulungen.
Safari Books Online bietet eine Reihe von Plänen und Preisenfür Unternehmen, Behörden, Bildungseinrichtungen und Privatpersonen.
Mitglieder haben Zugang zu Tausenden von Büchern, Schulungsvideos und Manuskripten von Verlagen wie O'Reilly Media, Prentice Hall Professional, Addison-Wesley Professional, Microsoft Press, Sams, Que, Peachpit Press, Focal Press, Cisco Press, John Wiley & Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, McGraw-Hill, Jones & Bartlett, Course Technology und Hunderten mehr in einer vollständig durchsuchbaren Datenbank. Wenn du mehr über Safari Books Online erfahren möchtest, besuche uns bitte online.
Wie du uns kontaktierst
Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Nord
- Sebastopol, CA 95472
- 800-998-9938 (in den Vereinigten Staaten oder Kanada)
- 707-829-0515 (international oder lokal)
- 707-829-0104 (Fax)
Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter http://bit.ly/automating-junos aufrufen .
Wenn du Kommentare oder technische Fragen zu diesem Buch stellen möchtest, sende eine E-Mail an bookquestions@oreilly.com.
Weitere Informationen zu unseren Büchern, Kursen, Konferenzen und Neuigkeiten findest du auf unserer Website unter http://www.oreilly.com.
Finde uns auf Facebook: http://facebook.com/oreilly
Folge uns auf Twitter: http://twitter.com/oreillymedia
Schau uns auf YouTube: http://www.youtube.com/oreillymedia
Danksagungen
Wir möchten uns bei unserem Managementteam bedanken, das nicht nur die Vision für dieses Buch hatte, sondern uns auch die Zeit und die Ressourcen zur Verfügung gestellt hat, um diese Vision in die Tat umzusetzen. Ohne Pallavi Mahajan, Piyush Rai und Ken Sacca wäre dieses Buch nicht möglich gewesen. Sie alle verkörpern den Juniper Way.
Patrick Ames war ein ständiger Verfechter dieses Buches und ein hilfreicher Ratgeber für seine Autoren. Wir danken ihm für seine ständige Ermutigung und Unterstützung sowie für seine praktischen Ratschläge beim Schreiben dieses Buches.
Es war wirklich eine Freude, mit allen bei O'Reilly zusammenzuarbeiten, einschließlich Courtney Allen und Brian Anderson, Colleen Cole, Rebecca Demarest und Rachel Head.
Wir möchten unseren leitenden technischen Gutachtern, Phil Shafer und Diogo Montagner, danken. Phil ist der "Vater" der Junos-Benutzeroberfläche und weiß wahrscheinlich mehr über das Junos-Management-System als jeder andere. Diogo arbeitet für einen großen australischen ISP und hat bei seiner Überprüfung eine Perspektive aus der Praxis eingebracht. Wir schätzen ihre Einsichten und hilfreichen Vorschläge.
Zusätzlich zu unseren leitenden technischen Prüfern haben sich mehrere Fachleute bei Juniper Networks Zeit genommen, um uns zu helfen, das Material in diesem Buch besser zu verstehen und das fertige Produkt technisch zu prüfen. Wir danken Sri Ram Sankar, Raymond Cheh und Edward Arcuri, dass sie sich in der Anfangsphase des Projekts die Zeit genommen haben, sich mit uns zu treffen. Sie gaben uns Feedback zu den ersten Entwürfen und halfen uns, einige der Feinheiten der Funktionen im Buch zu verstehen. Außerdem haben uns David Gethings, Maruf Yunus, Deepak Jadhav, Guy Davies, Damien Garros, Nitin Kumar, Rick Sherman, Lalit Shinde, Nilesh Simaria und Ajay Kumar Chintala bei der Beantwortung von Fragen, der Überprüfung von Entwürfen oder der Diskussion von Ideen unterstützt. Wir schätzen auch die Automatisierungsarbeit, die Jeremy Schulman während seiner Zeit bei Juniper Networks geleistet hat und die zu einem Vermächtnis an Automatisierungstools und Informationen geführt hat, das eine wichtige Grundlage für einen Großteil der Automatisierungsarbeit im Zusammenhang mit Junos bildet. Viele dieser Leute sind auch direkt für die Erstellung der umfangreichen Automatisierungstools verantwortlich, die in diesem Buch vorgestellt werden. Wir sind ihnen dankbar, dass sie uns dabei helfen, ehrlich zu bleiben, und dass sie großartige Software entwickeln.
Neben den von uns genannten Personen haben auch viele andere ungenannte Teilnehmer an internen und externen Diskussionsgruppen zur Netzwerkautomatisierung unwissentlich zu diesem Buch beigetragen. Wir danken ihnen dafür, dass sie ihre realen Probleme und Lösungen für die Netzwerkautomatisierung mit uns teilen. Ihre Fragen und Einsichten waren ein nützlicher Beitrag zum Verständnis der Herausforderungen, mit denen unsere Leser konfrontiert sind.
Wir haben versucht, uns bei allen zu bedanken, die uns geholfen haben, aber wenn wir dich versehentlich übersehen haben, entschuldigen wir uns und wissen deine Hilfe zu schätzen!
Von Jonathan Looney
Ich möchte mich bei meiner Frau Elisabeth und meinen Kindern Isabel und David dafür bedanken, dass sie mich selbstlos unterstützt haben, als ich zusätzlich zu meinem ohnehin schon vollen Terminkalender an diesem Buch gearbeitet habe. Ich weiß ihre Ermutigung zu schätzen, auch wenn sie Rendezvous, gemeinsame Mahlzeiten und Jagdabende opferten, während ich mich diesem Projekt widmete. Ich freue mich darauf, diese verpassten Aktivitäten bald nachzuholen.
Ich möchte mich auch bei Stacy dafür bedanken, dass sie es im letzten Jahr mit mir ausgehalten hat, während wir an dem Buch gearbeitet haben. Ein Buch zu schreiben ist nie einfach und kann eine Freundschaft leicht belasten. Ich schätze seine hilfreichen Vorschläge zur Verbesserung meiner Kapitel und seine Geduld mit mir, selbst bei unseren Meinungsverschiedenheiten. Es hat mir Spaß gemacht, mit ihm zu arbeiten, und ich freue mich darauf, unsere Freundschaft fortzusetzen.
Schließlich möchte ich mich bei den vielen Menschen bedanken, die mir im Laufe der Jahre Zeit gegeben haben, mich zu unterrichten und zu betreuen. Ich möchte den Führungskräften danken, die mir in meiner Laufbahn die Freiheit gegeben haben, neue Ideen zu entwickeln und neue Dinge auszuprobieren. Und ich möchte den Menschen danken, die an mich geglaubt und mich ermutigt haben, Dinge auszuprobieren, von denen ich nicht wusste, ob ich sie schaffen kann. In gewisser Weise sind sie alle für dieses Buch verantwortlich.
Von Stacy Smith
Ich möchte mich bei meiner Frau Wanda und meinen Söhnen Ezra und Eli für ihre Geduld und Gnade bedanken, als ich an vielen Abenden und Wochenenden an diesem Projekt gearbeitet habe. Eure Bereitschaft, mich bei diesem Unterfangen zu unterstützen, war der Schlüssel zum Erfolg. Vielen Dank für eure Aufopferung.
Ich möchte mich auch bei Jonathan dafür bedanken, dass er mich eingeladen hat, mit ihm zu schreiben. Es ist immer ein Vergnügen, mit jemandem zu arbeiten, der so talentiert und gleichzeitig so bescheiden ist. Ich bin dankbar, dass ich in den letzten 13 Jahren so oft die Gelegenheit dazu hatte, und ich hoffe, dass es noch viele Jahre so weitergeht. Danke für deine Freundschaft.
Get Junos-Verwaltung automatisieren now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.