Opensource Tools für das Data Center Managementinovex GmbH
Let's talk about Open Source Data Center Management with Foreman, Puppet & docker.io! We invite everyone who's interested to join us at our inovex Meetup in Cologne. This time we will cover the following topics: [01] An introduction to docker.io: Secure and portable containers made easy "Docker is an open-source engine that automates the deployment of any application as a lightweight, portable, self-sufficient container that will run virtually anywhere." Learn how docker.io can be a huge benefit for you by bringing operations and development closer together. [02] OSS Data Center Management with The Foreman & Puppet. Have you ever wondered why your IT department needs about 5-10 weeks to have a new project infrastructure up and running? We will discuss the reasons and show you how to fix the issue using our Open Source Data Center Management setup.
Ant ist ein Build-Werkzeug aus der Java-Welt, das auch für Python Projekte verwendbar ist. Diese Präsentation zeigt Beispiele für häufige Aufgaben und beschreibt, wie eine Einbindung in Jenkins zur continuous integration erfolgeb kann.
Im alltäglichen Einsatz verwenden wir eine potentiell steigende Anzahl an immer größeren Bibliotheken. Diese helfen uns schneller und effizienter unsere Ziele zu erreichen, werden ständig gewartet und ersparen nebenbei auch jede Menge Fehlerlösungs- und Dokumentationsaufwand. Gleichzeitig bedeuten sie jedoch einen unmittelbar höheren Aufwand für das Build und Dependency Management. Wie bekommt man dieses Problem in den Griff?
In der letzten Dekade hat das BuildSystem CMake diesbezüglich große Fortschritte bei der schnellen und alltäglichen Wiederverwendbarkeit von C++ Code bewirkt. So fördert zum Beispiel die Unabhängigkeit von spezifischen BuildSystemen zusammen mit Git und innovativen Hostern wie GitHub insbesondere die Entstehung und Verwendung von OpenSource
Software. Wie sieht die Zukunft aus?
Dependency Manager wie biicode zeigen einen noch komfortableren Weg auf, mit eigenem oder Drittanbieter Code zu arbeiten. Download, Build und Einbindung von Dependencies wird damit so einfach wie das Installieren einer App aus dem AppShop. Doch welche Vor- und Nachteile hat dieses System? Welche Alternativen gibt es?
Opensource Tools für das Data Center Managementinovex GmbH
Let's talk about Open Source Data Center Management with Foreman, Puppet & docker.io! We invite everyone who's interested to join us at our inovex Meetup in Cologne. This time we will cover the following topics: [01] An introduction to docker.io: Secure and portable containers made easy "Docker is an open-source engine that automates the deployment of any application as a lightweight, portable, self-sufficient container that will run virtually anywhere." Learn how docker.io can be a huge benefit for you by bringing operations and development closer together. [02] OSS Data Center Management with The Foreman & Puppet. Have you ever wondered why your IT department needs about 5-10 weeks to have a new project infrastructure up and running? We will discuss the reasons and show you how to fix the issue using our Open Source Data Center Management setup.
Ant ist ein Build-Werkzeug aus der Java-Welt, das auch für Python Projekte verwendbar ist. Diese Präsentation zeigt Beispiele für häufige Aufgaben und beschreibt, wie eine Einbindung in Jenkins zur continuous integration erfolgeb kann.
Im alltäglichen Einsatz verwenden wir eine potentiell steigende Anzahl an immer größeren Bibliotheken. Diese helfen uns schneller und effizienter unsere Ziele zu erreichen, werden ständig gewartet und ersparen nebenbei auch jede Menge Fehlerlösungs- und Dokumentationsaufwand. Gleichzeitig bedeuten sie jedoch einen unmittelbar höheren Aufwand für das Build und Dependency Management. Wie bekommt man dieses Problem in den Griff?
In der letzten Dekade hat das BuildSystem CMake diesbezüglich große Fortschritte bei der schnellen und alltäglichen Wiederverwendbarkeit von C++ Code bewirkt. So fördert zum Beispiel die Unabhängigkeit von spezifischen BuildSystemen zusammen mit Git und innovativen Hostern wie GitHub insbesondere die Entstehung und Verwendung von OpenSource
Software. Wie sieht die Zukunft aus?
Dependency Manager wie biicode zeigen einen noch komfortableren Weg auf, mit eigenem oder Drittanbieter Code zu arbeiten. Download, Build und Einbindung von Dependencies wird damit so einfach wie das Installieren einer App aus dem AppShop. Doch welche Vor- und Nachteile hat dieses System? Welche Alternativen gibt es?
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im BetriebAndreas Schmidt
http://www.continuouslifecycle.de/lecture.php?id=290
Continuous Delivery bis zum Go-Live – testgetriebenes Arbeiten im Betrieb
Ein Ziel von Continuous Delivery ist die beschleunigte Bereitstellung von Software. Die Software ist ausgeliefert – aber erst erfolgreich ausgerollt gilt als "delivered". Entwickler und Betriebler treffen an der Infrastrukturfront aufeinander: Wie viele Server, CPUs, Speicher und welche Netze werden benötigt? Und wie reden alle miteinander? Während testgetriebene Softwareentwicklung als Standard gilt, wird Infrastruktur trotz DevOps häufig manuell "hochgezogen" und selten automatisiert getestet. Der Vortrag gibt einen Überblick über Möglichkeiten und Tools, Infrastruktur testbar zu machen. Er zeigt, wie Entwicklung und Betrieb gemeinsam Infrastrukturkomponenten planen und umsetzen sollten.
http://www.opitz-consulting.com/go/3-6-11 --- Softwareentwicklung, -test und -betrieb können durch Virtualisierung viele Vorteile erzielen. In diesem Zusammenhang werden häufig Werkzeuge für die Bereitstellung von Umgebungen eingesetzt. Verschiedene Werkzeuge adressieren aber unterschiedliche Einsatzszenarien. Wo im Applikationslebenszyklus können diese Werkzeuge sinnvoll eingesetzt werden und wie sieht es mit Kosten und Nutzen aus? ---- Unser Senior Software Architect Richard Attermeyer stellte bei der W Jax am 5.11.2014 in München die Tools Vagrant, Puppet und Docker im Einzelnen vor und erläuterte ihren Nutzen anhand von Use Cases und Live Demos. ---- Weitere Infos: https://jax.de/wjax2014/sessions/vagrant-puppet-docker-fuer-entwickler-und-architekten ---- Über uns: Als führender Projektspezialist für ganzheitliche IT-Lösungen tragen wir zur Wertsteigerung der Organisationen unserer Kunden bei und bringen IT und Business in Einklang. Mit OPITZ CONSULTING als zuverlässigem Partner können sich unsere Kunden auf ihr Kerngeschäft konzentrieren und ihre Wettbewerbsvorteile nachhaltig absichern und ausbauen.---- Über unsere IT-Beratung: http://www.opitz-consulting.com/go/3-8-10 ---- Unser Leistungsangebot: http://www.opitz-consulting.com/go/3-8-874 ---- Karriere bei OPITZ CONSULTING: http://www.opitz-consulting.com/go/3-8-5
Presentation bei der CodeTalks Developer Conference in Hamburg zum Thema: "Kopf frei für's Produkt - Automatisierung mit Ansible und Jenkins" von LeanIX CTO André Christ und SW Architekt Dr. Daniel Pozzi.
Vom ersten Einrichten einer Maschine bis zum Ausliefern der Anwendung ist es ein weiter Weg, der in einem Startup viele menschliche und technische Ressourcen abverlangt. Neue Kundenwünsche und Skalierung erfordern immer mehr Server, Dienste („best tool for the job“) oder Anwendungsinstanzen, die verwaltet werden wollen.
Der SaaS-Anbieter LeanIX aus Bonn hat den manuellen Prozess in wenigen Wochen gegen eine vollständig automatisierte Provision-, Build- und Deploy-Kette mit ansible und Jenkins getauscht, um den Rücken für die Produktentwicklung frei zu haben.
OSMC 2008 | Einsatz von check_multi in einfachen bis hochkomplexen Monitoring...NETWAYS
check_multi ist eines der ersten Plugins, welches die neuen multi-line Features von Nagios 3 extensiv nutzt. Ob es um Performance-Probleme in großen Setups, flexible Konfigurationen in heterogenen Netzwerken, Delegierung der Monitoring-Konfiguration, Business Process Views oder Adaptives Monitoring geht: es gibt nur wenige Anforderungen, für die mit check_multi nicht eine überzeugende Lösung gefunden werden kann.
Eckpunkte des Vortrags:
- check_multi: Motivation und Entstehung
- Das Konzept
- Voraussetzungen
- Konfiguration und Test
- Integration in Nagios und Betrieb
- Performance-Daten
- State Evaluation und Business Process Views
- Adaptives Monitoring
Naehere Informationen zu check_multi finden sich auf der Homepage des Projektes http://www.my-plugin.de/check_multi
Das Build-System wurde mit dem TFS 2015 von Grund auf neu konzipiert. Trends wie Cross-Plattform-Entwicklung für unterschiedlichste Cloud-, Desktop-, Server- und Mobilplattformen wurden von Beginn an bei der Neuentwicklung adressiert. Das Definieren von Build-Prozessen ist ebenfalls deutlich einfacher geworden und die Komplexität von XAML-basierten Workflows wurde entfernt. Das Releasemanagement, für das automatisierte Deployment und Testen der Software, setzt nun ebenfalls auf dem Konzept des neuen Build-Systems auf und wurde eng in TFS und Web Access integriert.
OSMC 2012 | Automatische Konfiguration von Nagios/Icinga mit Agordamon by Chr...NETWAYS
Agordamon ist ein Perlmodul zur scriptgesteuerten Konfiguration von Nagios und Icinga. Es erleichtert dem Admin seine Aufgaben, indem es reproduzierbar und somit regelbasiert Konfigurationen auf Basis von verschiedenen Eingangsformaten generieren kann.
Diese Eingangsformate können sowohl Auszüge von Inventarlisten und CMDBs sein als auch Ergebnisslisten des Netzwerkanalysetools nmap. Hauptanwendungsbereich sind große Netzwerke, in denen unbemerkt vom Monitoringteam neue Hardware in Betrieb genommen und überwacht werden können muss. Der Vortrag gibt eine Einführung in Agordamon und erläutert seine Verwendung anhand praktischer Beispiele.
Nur wenn Softwaretests einfach durchzuführen sind, werden sie im Projekt auch wirklich eingesetzt und verhelfen zu mehr Softwarequalität. Idealerweise geschieht dies automatisiert.
This presentation will show you how to use docker-compose in a practical example, discuss some alternative approaches and teach best practices (in german).
Martin Schurz - Testing ist nicht nur etwas für Anwendungssoftware.pdfCarolinaMatthies1
Ungetesteter Code ist ein no-go, das ist inzwischen jedem Entwickler klar! Dennoch akzeptieren es viele Projekte ihren Infrastruktur-Code, der Server provisioniert oder Docker Container erzeugt, nur oberflächlich zu testen. In der Session wird eine Lösung vorgestellt, mit der Tests für Infrastrukturen erstellt werden können. Solche Tests können auch für kontinuierliche Nachweise von Konfigurationen genutzt werden, z.B. bei Security Audits oder um Infrastructure-Drift zu erkennen. Auf ein getestetes und frustfreies Deployment!
Continuous Integration wird längst in vielen Projekten praktiziert. Kein Wunder, steht für das Tooling doch in vielen Fällen ein Jenkins oder Travis zur Verfügung. Mit GitLab CI ist dies jedoch nicht mehr nötig. Schritt für Schritt wird in dieser Session eine Pipeline mit verschiedenen Test- und Analysetools aufgesetzt -- zur Integration in neue und bestehende Projekte.
W-JAX 2013 Spring Batch - Performance und Skalierbarkeittobiasflohre
Slides to our (Dennis Schulte and me) talk at the German Java conference W-JAX 2013 in Munich. Subject is the batch processing framework Spring Batch, general hints regarding performance in batch applications and scalability options in Spring Batch. Slides are in German.
The document discusses several tools for debugging Kubernetes networks:
1. mirrord connects a local development environment to a Kubernetes cluster without requiring local deployment, allowing debugging in cloud conditions.
2. Ephemeral containers in Kubernetes can be used for debugging without needing external tools by providing access to a running pod's processes and resources.
3. Inspector Gadget is an eBPF-based tool that collects kernel data and exposes it through Prometheus for tracing and debugging Kubernetes applications.
4. Kubeshark is a tool that provides network visibility into Kubernetes API traffic similar to Wireshark, allowing troubleshooting of network issues, security auditing, and historical traffic analysis.
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im BetriebAndreas Schmidt
http://www.continuouslifecycle.de/lecture.php?id=290
Continuous Delivery bis zum Go-Live – testgetriebenes Arbeiten im Betrieb
Ein Ziel von Continuous Delivery ist die beschleunigte Bereitstellung von Software. Die Software ist ausgeliefert – aber erst erfolgreich ausgerollt gilt als "delivered". Entwickler und Betriebler treffen an der Infrastrukturfront aufeinander: Wie viele Server, CPUs, Speicher und welche Netze werden benötigt? Und wie reden alle miteinander? Während testgetriebene Softwareentwicklung als Standard gilt, wird Infrastruktur trotz DevOps häufig manuell "hochgezogen" und selten automatisiert getestet. Der Vortrag gibt einen Überblick über Möglichkeiten und Tools, Infrastruktur testbar zu machen. Er zeigt, wie Entwicklung und Betrieb gemeinsam Infrastrukturkomponenten planen und umsetzen sollten.
http://www.opitz-consulting.com/go/3-6-11 --- Softwareentwicklung, -test und -betrieb können durch Virtualisierung viele Vorteile erzielen. In diesem Zusammenhang werden häufig Werkzeuge für die Bereitstellung von Umgebungen eingesetzt. Verschiedene Werkzeuge adressieren aber unterschiedliche Einsatzszenarien. Wo im Applikationslebenszyklus können diese Werkzeuge sinnvoll eingesetzt werden und wie sieht es mit Kosten und Nutzen aus? ---- Unser Senior Software Architect Richard Attermeyer stellte bei der W Jax am 5.11.2014 in München die Tools Vagrant, Puppet und Docker im Einzelnen vor und erläuterte ihren Nutzen anhand von Use Cases und Live Demos. ---- Weitere Infos: https://jax.de/wjax2014/sessions/vagrant-puppet-docker-fuer-entwickler-und-architekten ---- Über uns: Als führender Projektspezialist für ganzheitliche IT-Lösungen tragen wir zur Wertsteigerung der Organisationen unserer Kunden bei und bringen IT und Business in Einklang. Mit OPITZ CONSULTING als zuverlässigem Partner können sich unsere Kunden auf ihr Kerngeschäft konzentrieren und ihre Wettbewerbsvorteile nachhaltig absichern und ausbauen.---- Über unsere IT-Beratung: http://www.opitz-consulting.com/go/3-8-10 ---- Unser Leistungsangebot: http://www.opitz-consulting.com/go/3-8-874 ---- Karriere bei OPITZ CONSULTING: http://www.opitz-consulting.com/go/3-8-5
Presentation bei der CodeTalks Developer Conference in Hamburg zum Thema: "Kopf frei für's Produkt - Automatisierung mit Ansible und Jenkins" von LeanIX CTO André Christ und SW Architekt Dr. Daniel Pozzi.
Vom ersten Einrichten einer Maschine bis zum Ausliefern der Anwendung ist es ein weiter Weg, der in einem Startup viele menschliche und technische Ressourcen abverlangt. Neue Kundenwünsche und Skalierung erfordern immer mehr Server, Dienste („best tool for the job“) oder Anwendungsinstanzen, die verwaltet werden wollen.
Der SaaS-Anbieter LeanIX aus Bonn hat den manuellen Prozess in wenigen Wochen gegen eine vollständig automatisierte Provision-, Build- und Deploy-Kette mit ansible und Jenkins getauscht, um den Rücken für die Produktentwicklung frei zu haben.
OSMC 2008 | Einsatz von check_multi in einfachen bis hochkomplexen Monitoring...NETWAYS
check_multi ist eines der ersten Plugins, welches die neuen multi-line Features von Nagios 3 extensiv nutzt. Ob es um Performance-Probleme in großen Setups, flexible Konfigurationen in heterogenen Netzwerken, Delegierung der Monitoring-Konfiguration, Business Process Views oder Adaptives Monitoring geht: es gibt nur wenige Anforderungen, für die mit check_multi nicht eine überzeugende Lösung gefunden werden kann.
Eckpunkte des Vortrags:
- check_multi: Motivation und Entstehung
- Das Konzept
- Voraussetzungen
- Konfiguration und Test
- Integration in Nagios und Betrieb
- Performance-Daten
- State Evaluation und Business Process Views
- Adaptives Monitoring
Naehere Informationen zu check_multi finden sich auf der Homepage des Projektes http://www.my-plugin.de/check_multi
Das Build-System wurde mit dem TFS 2015 von Grund auf neu konzipiert. Trends wie Cross-Plattform-Entwicklung für unterschiedlichste Cloud-, Desktop-, Server- und Mobilplattformen wurden von Beginn an bei der Neuentwicklung adressiert. Das Definieren von Build-Prozessen ist ebenfalls deutlich einfacher geworden und die Komplexität von XAML-basierten Workflows wurde entfernt. Das Releasemanagement, für das automatisierte Deployment und Testen der Software, setzt nun ebenfalls auf dem Konzept des neuen Build-Systems auf und wurde eng in TFS und Web Access integriert.
OSMC 2012 | Automatische Konfiguration von Nagios/Icinga mit Agordamon by Chr...NETWAYS
Agordamon ist ein Perlmodul zur scriptgesteuerten Konfiguration von Nagios und Icinga. Es erleichtert dem Admin seine Aufgaben, indem es reproduzierbar und somit regelbasiert Konfigurationen auf Basis von verschiedenen Eingangsformaten generieren kann.
Diese Eingangsformate können sowohl Auszüge von Inventarlisten und CMDBs sein als auch Ergebnisslisten des Netzwerkanalysetools nmap. Hauptanwendungsbereich sind große Netzwerke, in denen unbemerkt vom Monitoringteam neue Hardware in Betrieb genommen und überwacht werden können muss. Der Vortrag gibt eine Einführung in Agordamon und erläutert seine Verwendung anhand praktischer Beispiele.
Nur wenn Softwaretests einfach durchzuführen sind, werden sie im Projekt auch wirklich eingesetzt und verhelfen zu mehr Softwarequalität. Idealerweise geschieht dies automatisiert.
This presentation will show you how to use docker-compose in a practical example, discuss some alternative approaches and teach best practices (in german).
Martin Schurz - Testing ist nicht nur etwas für Anwendungssoftware.pdfCarolinaMatthies1
Ungetesteter Code ist ein no-go, das ist inzwischen jedem Entwickler klar! Dennoch akzeptieren es viele Projekte ihren Infrastruktur-Code, der Server provisioniert oder Docker Container erzeugt, nur oberflächlich zu testen. In der Session wird eine Lösung vorgestellt, mit der Tests für Infrastrukturen erstellt werden können. Solche Tests können auch für kontinuierliche Nachweise von Konfigurationen genutzt werden, z.B. bei Security Audits oder um Infrastructure-Drift zu erkennen. Auf ein getestetes und frustfreies Deployment!
Continuous Integration wird längst in vielen Projekten praktiziert. Kein Wunder, steht für das Tooling doch in vielen Fällen ein Jenkins oder Travis zur Verfügung. Mit GitLab CI ist dies jedoch nicht mehr nötig. Schritt für Schritt wird in dieser Session eine Pipeline mit verschiedenen Test- und Analysetools aufgesetzt -- zur Integration in neue und bestehende Projekte.
W-JAX 2013 Spring Batch - Performance und Skalierbarkeittobiasflohre
Slides to our (Dennis Schulte and me) talk at the German Java conference W-JAX 2013 in Munich. Subject is the batch processing framework Spring Batch, general hints regarding performance in batch applications and scalability options in Spring Batch. Slides are in German.
Ähnlich wie Konfigurationsmanagement mit Opscode Chef (20)
The document discusses several tools for debugging Kubernetes networks:
1. mirrord connects a local development environment to a Kubernetes cluster without requiring local deployment, allowing debugging in cloud conditions.
2. Ephemeral containers in Kubernetes can be used for debugging without needing external tools by providing access to a running pod's processes and resources.
3. Inspector Gadget is an eBPF-based tool that collects kernel data and exposes it through Prometheus for tracing and debugging Kubernetes applications.
4. Kubeshark is a tool that provides network visibility into Kubernetes API traffic similar to Wireshark, allowing troubleshooting of network issues, security auditing, and historical traffic analysis.
Der Developer Experience Workshop konzentriert sich auf nutzerzentrierte Gestaltung im Platform Engineering. Er führt das Konzept von Platform Teams ein, die Stream-Aligned Teams unterstützen, um die kognitive Belastung bei der Entwicklung und Wartung von Anwendungen zu reduzieren, und betont die Bedeutung des Verständnisses der Bedürfnisse von Entwicklern für eine effiziente Plattformerstellung. Der Workshop legt Wert auf eine gute Developer Experience (DX), die sich durch klare Dokumentation, intuitives API-Design, präzise Fehlermeldungen und effiziente Tools auszeichnet, sowie den Einsatz von User Personas, um typische Nutzermerkmale, -bedürfnisse und -verhaltensweisen darzustellen, was zu einem gemeinsamen Verständnis und Empathie für die Nutzer führt. Weiteres in folgendem Repository:
https://github.com/konih/Developer-Experience-Workshop-Nutzerzentrierte-Gestaltung-im-Platform-Engineering
Konfigurationsmanagement bei Netzwerkhardware - Eine Evaluation
Konfigurationsmanagement mit Opscode Chef
1. Konfigurationsmanagement mit Chef 1 / 47
Konfigurationsmanagement mit Chef
Konrad F. Heimel
Zentrum für Informations- und Medientechnologie, Universität Siegen
8. September 2014
2. Konfigurationsmanagement mit Chef 2 / 47
Warum eigentlich Konfigurationsmanagment?
Inhalt
1 Warum eigentlich Konfigurationsmanagment?
Das Project Eduprobe
Lösungsmöglichkeiten
2 Welches Konfigurationsmanagmentsystem ist das Beste?
3 Einführung in Opscode Chef
4 Die Begriffswelt von Chef
5 Ein paar unserer Cookbooks
3. Konfigurationsmanagement mit Chef 3 / 47
Warum eigentlich Konfigurationsmanagment?
Das Project Eduprobe
Eduprobes
Ziel
Messung der Verfügbarkeit von Eduroam in den Liegenschaften mit
Raspberry Pi’s
4. Konfigurationsmanagement mit Chef 4 / 47
Warum eigentlich Konfigurationsmanagment?
Das Project Eduprobe
Abbildung: Die Cacti-Graphen der Eduprobe-AR
5. Konfigurationsmanagement mit Chef 5 / 47
Warum eigentlich Konfigurationsmanagment?
Konfigurationsaufwand
Pro Gerät zu konfigurieren
SSH, public keys
NTP, DNS Server
Raspian Repository
SNMPD
fail2ban
Weitere Packete müssen installiert werden:
macchanger
wpasupplicant
syslog-ng
Die Skripte zum messen von Eduroam und zur Bereitstellung
der Messwerte via SNMPD
cronjobs
6. Konfigurationsmanagement mit Chef 6 / 47
Warum eigentlich Konfigurationsmanagment?
Lösungsmöglichkeiten
Warum kein “Golden Image“?
Nachträgliche Änderungen
Veraltet sehr schnell
Black Box
7. Konfigurationsmanagement mit Chef 7 / 47
Warum eigentlich Konfigurationsmanagment?
Lösungsmöglichkeiten
Warum nicht Skripten?
Für andere schwer nachzuvollziehen
Hoher Aufwand
Warum das Rad neu erfinden?
8. Konfigurationsmanagement mit Chef 8 / 47
Warum eigentlich Konfigurationsmanagment?
Lösungsmöglichkeiten
$ knife bootstrap eduprobe-ar -d raspbian -N eduprobe-ar -x pi -r’ role[eduprobe]’ –sudo
Mit einer Zeile
Chef-Client
SSH, public keys
NTP, DNS Server
Raspian Repository
SNMPD
fail2ban
alle notwendigen Pakete werden installiert
Skripte werden kopiert
cronjobs
9. Konfigurationsmanagement mit Chef 9 / 47
Welches Konfigurationsmanagmentsystem ist das Beste?
Inhalt
1 Warum eigentlich Konfigurationsmanagment?
2 Welches Konfigurationsmanagmentsystem ist das Beste?
Die vier verbreitetesten Konfigurationsmanagementsysteme
Eckdaten
Popularitätsvergleich
3 Einführung in Opscode Chef
4 Die Begriffswelt von Chef
5 Ein paar unserer Cookbooks
10. Konfigurationsmanagement mit Chef 10 / 47
Welches Konfigurationsmanagmentsystem ist das Beste?
Die vier verbreitetesten Konfigurationsmanagementsysteme
Die vier verbreitetesten Konfigurationsmanagementsysteme
11. Konfigurationsmanagement mit Chef 11 / 47
Welches Konfigurationsmanagmentsystem ist das Beste?
Eckdaten
Eckdaten
Grundlegendes
basiert auf der Erstes Wechselseitige
Lizenz Sprache Release Auth. Encrypt.
Puppet GPL Ruby 2005-08-30 Ja Ja
Chef Apache Ruby 2009-01-15 Ja Ja
Ansible Apache Python 2012-03-08 Ja Ja
Salt Apache Python 2011-03-17 Ja Ja
Kompatibilität
Linux Mac OS X Windows Solaris *BSD
Puppet Ja Ja Teilweise Ja Ja
Chef Ja Ja Ja Ja Ja
Ansible Ja Ja Ja Ja Ja
Salt Ja Ja Ja Ja Ja
12. Konfigurationsmanagement mit Chef 12 / 47
Welches Konfigurationsmanagmentsystem ist das Beste?
Popularitätsvergleich
Popularitätsvergleich
Chef ist hier unterrepräsentiert, da die präferierte Installationsmethode sog. ruby-gems
sind
13. Konfigurationsmanagement mit Chef 13 / 47
Welches Konfigurationsmanagmentsystem ist das Beste?
Popularitätsvergleich
Quelle: http://redmonk.com/sogrady/2013/12/06/configuration-management-2013/
14. Konfigurationsmanagement mit Chef 14 / 47
Welches Konfigurationsmanagmentsystem ist das Beste?
Popularitätsvergleich
Quelle: http://redmonk.com/sogrady/2013/12/06/configuration-management-2013/
15. Konfigurationsmanagement mit Chef 15 / 47
Welches Konfigurationsmanagmentsystem ist das Beste?
Popularitätsvergleich
Fazit:
Puppet ist Marktführer, dicht gefolgt von Chef
16. Konfigurationsmanagement mit Chef 15 / 47
Welches Konfigurationsmanagmentsystem ist das Beste?
Popularitätsvergleich
Fazit:
Puppet ist Marktführer, dicht gefolgt von Chef
Anisble und Salt sind sehr wachstumsstark
17. Konfigurationsmanagement mit Chef 15 / 47
Welches Konfigurationsmanagmentsystem ist das Beste?
Popularitätsvergleich
Fazit:
Puppet ist Marktführer, dicht gefolgt von Chef
Anisble und Salt sind sehr wachstumsstark
Die Entscheidung ist daher vor allem eine Geschmacksfrage
18. Konfigurationsmanagement mit Chef 16 / 47
Einführung in Opscode Chef
Inhalt
1 Warum eigentlich Konfigurationsmanagment?
2 Welches Konfigurationsmanagmentsystem ist das Beste?
3 Einführung in Opscode Chef
Einige Fakten
Prinzipien
4 Die Begriffswelt von Chef
5 Ein paar unserer Cookbooks
20. Konfigurationsmanagement mit Chef 18 / 47
Einführung in Opscode Chef
Einige Fakten
Initial release: 15.1.2009
Basiert auf der Programmiersprache Ruby
Support für Linux, Windows, Mac OS, Solaris und FreeBSD
10,000+ Nodes auf einem Chef-Server managen
Open-Source-Chef ist kostenlos (es gibt aber auch eine
Cloud-Option namens “Hosted Chef“
Chef wird z.B. benutzt von Mozilla, Facebook, HP Public
Cloud
21. Konfigurationsmanagement mit Chef 19 / 47
Einführung in Opscode Chef
Prinzipien
Prinzipien
Idempotent
Reasonability
Sane defaults
Hackability
TMTOWTDI
22. Konfigurationsmanagement mit Chef 20 / 47
Die Begriffswelt von Chef
Inhalt
1 Warum eigentlich Konfigurationsmanagment?
2 Welches Konfigurationsmanagmentsystem ist das Beste?
3 Einführung in Opscode Chef
4 Die Begriffswelt von Chef
Chef-Client
Chef-Server
Chef-Solo
Knife
Attribute
Rolle
Rezept
Ressource
Provider
Cookbook
5 Ein paar unserer Cookbooks
23. Konfigurationsmanagement mit Chef 21 / 47
Die Begriffswelt von Chef
Chef-Client
Chef-Client läuft auf den Clients, also z.B. den
Eduprobes.
Ein Client nennt sich dabei aber Node.
24. Konfigurationsmanagement mit Chef 22 / 47
Die Begriffswelt von Chef
Chef-Server
1 kheimel@vagrantbox:~$ sudo chef-client
2 [sudo] password for kheimel:
3 Starting Chef Client, version 11.8.2
4 resolving cookbooks for run list: ["debian-minimal", "motd"]
5 Synchronizing Cookbooks:
6 - motd
7 - debian-minimal
8 Compiling Cookbooks...
9 Converging 25 resources
10 Recipe: debian-minimal::default
11 * user[assmann] action create (up to date)
12 * directory[/home/assmann/.] action create (up to date)
13 * directory[/root/.ssh/] action create (up to date)
14 * service[ssh] action reload
15 - reload service service[ssh]
16 * service[fail2ban] action reload
17 - reload service service[fail2ban]
18 * cron[chef-client] action create (up to date)
19 ...
20 Recipe: motd::default
21 ...
22 Chef Client finished, 2 resources updated
27. Konfigurationsmanagement mit Chef 24 / 47
Die Begriffswelt von Chef
Chef-Solo
Es funktioniert aber auch ganz ohne Chef-Server
oder Opscodes Hosted Chef mit Chef-Solo
28. Konfigurationsmanagement mit Chef 25 / 47
Die Begriffswelt von Chef
Knife
Dass Command-Line-Tool Knife ist die Schnittstelle
zum Chef-Server
29. Konfigurationsmanagement mit Chef 26 / 47
Die Begriffswelt von Chef
Knife
Mit Knife lassen sich
Nodes und Clients verwalten
Cookbooks und Rezepte erstellen und hochladen
Rollen definieren und anwenden
Chef auf Nodes installieren und konfigurieren
Attribute anzeigen und suchen
uvm.
30. Konfigurationsmanagement mit Chef 27 / 47
Die Begriffswelt von Chef
Knife
Die Nodes haben Attribute
Diese werden automatisch während jedem Chef-Client-Run
mit dem Tools Ohai aktualisiert.
31. Konfigurationsmanagement mit Chef 28 / 47
Die Begriffswelt von Chef
Knife
Abbildung: Nur ein kleiner Ausschnitt der verfügbaren Attribute
33. Konfigurationsmanagement mit Chef 30 / 47
Die Begriffswelt von Chef
Attribute
1 knife search node ’etc_passwd:alex’ -a etc.passwd.alex.uid
2 10 items found
3
4 ah-mon:
5 etc.passwd.alex.uid: 1001
6
7 us-mon:
8 etc.passwd.alex.uid: 1001
9
10 eduprobe-ae:
11 etc.passwd.alex.uid: 1002
12
13 chefserver:
14 etc.passwd.alex.uid: 1002
15
16 eduprobeh:
17 etc.passwd.alex.uid: 1002
18
19 eduprobe-ar:
20 etc.passwd.alex.uid: 1002
21
22 enc-mon:
23 ...
34. Konfigurationsmanagement mit Chef 30 / 47
Die Begriffswelt von Chef
Attribute
Beispiel
knife ssh -x uname
Username
–attribute ipaddress
uname@ipadress statt uname@fqdn
tags:vsphere
Suchparameter
“sudo chef-client“
Das Kommando sudo chef-client wird auf allen Nodes mit dem Tag vsphere
ausgeführt.
35. Konfigurationsmanagement mit Chef 31 / 47
Die Begriffswelt von Chef
Attribute
Nodes haben eine Runlist.
Rollen oder Rezepte werden hier nacheinander angewandt.
36. Konfigurationsmanagement mit Chef 32 / 47
Die Begriffswelt von Chef
Attribute
1 knife node show eduprobe-ar
2 Node Name: eduprobe-ar
3 Environment: _default
4 FQDN: eduprobe-ar
5 IP: 10.5.71.10
6 Run List: role[eduprobe]
7 Roles: eduprobe
8 Recipes: eduprobe, motd, makeusers, eduprobe::default,
9 logrotate::default, motd::default, makeusers::default
10 Platform: raspbian 7.6
11 Tags: ZIMT, RaspberryPi
38. Konfigurationsmanagement mit Chef 33 / 47
Die Begriffswelt von Chef
Rezept
In den Rezepten werden Ressourcen verwaltet
und definiert.
39. Konfigurationsmanagement mit Chef 34 / 47
Die Begriffswelt von Chef
Rezept
Ausschnitt aus einem Rezept
(später mehr zu Rezepten...)
1 package "wpasupplicant"
2 package "macchanger"
3
4 directory "/home/pi/.ssh/" do
5 owner "pi"
6 group "pi"
7 mode 00700
8 action :create
9 end
10
11 cookbook_file "authorized_keys" do
12 path "/home/pi/.ssh/authorized_keys"
13 owner "pi"
14 group "pi"
15 mode 00600
16 action :create
17 end
18
19 cookbook_file "snmpd.conf" do
20 path "/etc/snmp/snmpd.conf"
21 owner "root"
22 group "root"
23 mode 00644
24 action :create
25 end
26
27 service "snmpd" do
28 supports :status => true, :restart => true, :reload => true
40. Konfigurationsmanagement mit Chef 35 / 47
Die Begriffswelt von Chef
Ressource
Eine Ressource hat
einen Typ
einen Namen
Parameter
sogenannte Actions, die
definieren, wie eine
Änderung durchgeführt
werden soll
19 cookbook_file "snmpd.conf" do
20 path "/etc/snmp/snmpd.conf"
21 owner "root"
22 group "root"
23 mode 00644
24 action :create
25 end
27 service "snmpd" do
28 supports :status => true,
29 :restart => true,
30 :reload => true
31 action :reload
32 end
41. Konfigurationsmanagement mit Chef 36 / 47
Die Begriffswelt von Chef
Provider
Ressourcen führen Änderungen mithilfe von so
genannten Providern durch.
42. Konfigurationsmanagement mit Chef 37 / 47
Die Begriffswelt von Chef
Provider
Ressourcen führen Änderungen mithilfe von so
genannten Providern durch.
43. Konfigurationsmanagement mit Chef 38 / 47
Die Begriffswelt von Chef
Provider
Es kann mehrere Provider pro Ressourcentyp geben
Es kann mehrere Provider pro Resourcentyp geben
Z.B. die Ressource Package:
Apt, Yum, Rubygems, Portage, Macports, FreeBSD Ports,
Pacman, etc.
Kann überschrieben werden mit dem Attribut Provider
1 package "sudo" do
2 provider Chef::Provider::Package::Apt
3 action: install
4 end
44. Konfigurationsmanagement mit Chef 39 / 47
Die Begriffswelt von Chef
Cookbook
Cookbooks sind Pakete für Rezepte und alle
zugehörigen Objekte
45. Konfigurationsmanagement mit Chef 40 / 47
Die Begriffswelt von Chef
Cookbook
Ordnerstruktur eines Cookbooks
attributes
definitions
← Definitions sind Code, der in mehereren
Rezepten verwendet werden kann
files ← Dateien
libraries
providers
recipes ← Rezepte
resources
templates
← Ruby-Templates, um z.B. Textdateien
zu generieren
CHANGELOG.md
metadata.rb ← Maintainer, Beschreibung, Versionsnummer
README.md
46. Konfigurationsmanagement mit Chef 41 / 47
Ein paar unserer Cookbooks
Inhalt
1 Warum eigentlich Konfigurationsmanagment?
2 Welches Konfigurationsmanagmentsystem ist das Beste?
3 Einführung in Opscode Chef
4 Die Begriffswelt von Chef
5 Ein paar unserer Cookbooks
makeusers
debian-default
Die Rolle Monitoring
Eine neue Monitoring-Node anlegen
48. Konfigurationsmanagement mit Chef 43 / 47
Ein paar unserer Cookbooks
makeusers
Das Cookbook makeusers
Legt User incl. Passwort an. assmann, alex, kheimel
erstellt /home/(username) Ordner
Kopiert SSH authorized keys
49. Konfigurationsmanagement mit Chef 43 / 47
Ein paar unserer Cookbooks
makeusers
Das Cookbook makeusers
Legt User incl. Passwort an. assmann, alex, kheimel
erstellt /home/(username) Ordner
Kopiert SSH authorized keys
Löschen von Usern auf allen Maschinen
user "kheimel" do
action :delete
end
50. Konfigurationsmanagement mit Chef 44 / 47
Ein paar unserer Cookbooks
motd
Das Cookbook motd
Linux us -mon 3.14-1- amd64 #1 SMP Debian 3.14.12 -1
(2014 -07 -11) x86_64
_ _ ___ _ __ ___ ___ _ __
| | | / __|_____| ’_ ‘ _ / _ | ’_
| |_| __ _____| | | | | | (_) | | | |
__ ,_|___/ |_| |_| |_|___ /|_| |_|
Interface IP -Addresses
(IPv4)
eth0 10.5.56.20
(IPv6)
eth0 fe80 ::21d:9ff:fe6b :913
eth1 fe80 ::21d:9ff:fe6b :915
System information as of: Thu Sep 4 13:25:53 CEST
2014
System load: 0.00 Memory usage: 3.1%
Usage on /: 12% Swap usage: 0.0%
Local users: 0
51. Konfigurationsmanagement mit Chef 45 / 47
Ein paar unserer Cookbooks
debian-default
Das Cookbook debian-default
check-mk-agent-zimt wird installiert
snmpd
fail2ban
dns, ntp → 141.99.2.2
sources.list → 141.99.2.19
52. Konfigurationsmanagement mit Chef 46 / 47
Ein paar unserer Cookbooks
Die Rolle Monitoring
Die Rolle mon
Besteht aus makeusers, motd, debian-default. Zusätzlich
wahlweise das Cookbook smokeping-client oder smokeping
server
Fünf physikalische Maschinen sind derzeit produktiv
ah-mon
ar-mon
enc-mon
pb-mon
us-mon
53. Konfigurationsmanagement mit Chef 47 / 47
Ein paar unserer Cookbooks
Eine neue Monitoring-Node anlegen
Ein neuer Monitoring-Node wird mit der folgenden Zeile angelegt:
knife bootstrap pb-mon -d debian
Bootstrap-
Template
-N pb-mon
Nodename
-x root
SSH-
Username
-r role[mon]
Runlist