Konfigurationsmanagement mit Puppet Tutorial: Deklarative Programmierung |video2brain.com IT-Pro & Administration Tutorials https://www.youtube.com/watch?v=YxEXbT9Q-4I Transkript (automatisch erstellt) 0:00 [Musik] deklarative Programmierung ist das relevante Stichwort wenn man über das 0:08 Entwickeln von puppet Code spricht sicherlich interessieren Sie sich auch brennend dafür warum man letztendlich deklarative Programmierung betreiben 0:15 sollte und wie sie das konkret tun können genau über diese Aspekte gebe ich Ihnen nun Aufschluss im Laufe dieses Videos ich beginne also mit dem Warum um 0:25 Linuxsysteme zu automatisieren verwendet man herkömmlich bashsripte diese sind so gut wie auf jedem System allgegenwärtig unabhängig davon ob man diese selber 0:34 programmiert hat oder diese mitgeliefert worden mit dem Betriebssystem selbst in bashsripten drückt man also Vorgänge in Form von verschiedenen Statements aus so 0:43 wie man es auf der Konsole tun würde diese Art der Programmierung nennt man also prozedurale Programmierung bsripte haben auch gewöhnlicherweise einige 0:52 Vorteile denn in bashsripten benutze ich die gleichen Tools wie ich sie auf der Kommandozeile benutzen würde das bedeutet der lernaufand für einen 1:00 Systemadministrator ist deutlich geringer dadurch dass man auf die bekannten Tools zurückgreift hat man oft auch keine Abhängigkeiten zu 1:07 unterschiedlichsten betriebssystempaketen und da die Kommandozeile die Heimat von bashsripten ist benötigt man keine Komplexe 1:14 Infrastruktur um ein bashsript ausführen zu können eine lose Sammlung von verschiedenen bsripten hat natürlich auch Nachteile denn generell folgen 1:22 bashsripte zunächst einmal keinem Standard diesen Standard muss man sich selbst auferlegen da es aber diesen Standard oft nicht gibt nicht in selbst 1:30 auferlegter Art und Weise sind die Skripte die zur Verfügung stehen oft schlecht dokumentiert und ein Ausdruck der Kreativität des Entwicklers was 1:39 mitunter bedeuten kann dass einzeilige Verkettungen von Befehlen oft völlig undurchschaubar sein können einer der Vorteile von bashsripte ist auch einer 1:48 seiner Nachteile denn die fehlende Infrastruktur für bashsripte sorgt dafür dass es keine geregelte Versionierung gibt und keinen zentralen Ort um 1:56 festzustellen ob bpte erfolgreich oder unerfolgreich waren viel mehr als das werden bashsripte vor allem auch auf einem Betriebssystem entwickelt und sind 2:04 oft daher inkompatibel mit anderen Betriebssystemen wie beispielsweise ein Unterschied zwischen einem redhead Derivat und einem Debian Derivat im 2:14 folgenden Beispiel habe ich einige bbefehle aufgeführt die es möglich machen würden eine Konfiguration für einen Apache Server zu pflegen der hier 2:23 gezeigte Code ist bei weitem nicht ausreichend dafür um die konkrete Tätigkeit das Einfügen eines Virtual Hosts beispielsweise durchzuführen ich 2:31 installiere also initial den apachci 2 Service füge einiges an loging hinzu um es mir später einfacher zu machen festzustellen was passiert ist kopiere 2:40 eine templateedei und passe diese mit entsprechenden Variablen an danach starte ich den apci Service neu der gleiche Vorgang abgebildet in einer 2:48 deklarativen Sprache wie puppet sie ist sieht so aus dass ich die Installation von Apache lediglich durch die Bestimmung der Klasse Apache durchführe 2:57 und einen Virtual Host damit konfiguriere der sich lediglich die relevanten Parameter angebe mit dem der Virtual Host konfiguriert werden soll 3:05 wie also genau betreibe ich nun deklarative Programmierung das Interessante ist hier das Wort wie denn der Kontrast zwischen prozeduraler 3:13 Programmierung und deklarativer Programmierung ist dass ich statt zu beschreiben wie man etwas tut nur noch beschreibe was ich haben möchte das 3:20 erlaubt es vor allem Anfängern Konzepte schneller zu verstehen denn die Implementierung und die Beschreibung des Ganzen sind voneinander getrennt und in 3:27 vielen Fällen muss ich mir über die Implementierung also gar keine anken mehr machen ich erziele damit also hohe Wiederverwendung der gleichen 3:34 Implementierungen auf unterschiedlichste Anwendungsfälle man kann sich das also so vorstellen dass ab irgendeinem Punkt viele Leute viele bsripte geschrieben 3:42 haben und festgestellt haben dass es doch auch möglich sein muss anderen Leuten diese Implementierungen auf einfachste Art und Weise zugänglich zu 3:49 machen durch die deklarative Programmierung erhält man vor allem auch einen höheren Grad an Lesbarkeit denn alle Implementierungen die deklarativ 3:58 vorgenommen worden sind sind in ähnlicher Struktur und vor allem auch vergleichbar das heißt bis auf wenige verschiedene zeileneinrückungen und 4:05 klammersetzungen kann jeder der puppet versteht auch verschiedene Stile und Arten von puppet Implementierungen ohne Probleme lesen und das ist vor allem der 4:14 einheitlichen Struktur geschuldet zusammenfassend lässt sich also sagen bashsripte sind weit überfällig und wenn unter es auch Sinn 4:22 machen kann ein bashsript zu behalten empfiehlt es sich immer einen deklarativen Mantel darum zuauen um die Funktionalität allen zugänglich zu 4:29 machen denn letztendlich sind sie nun damit vertraut warum deklarative Schreibweise der herkömmlichen prozeduralen Programmierung überlegen 4:40 [Musik] ist