IT-Automation mit Puppet

Ähnliche Dokumente
Zentrales Konfigurationsmanagement mit Puppet

Themen. Apache Webserver Konfiguration. Verzeichnisse für Web-Applikationen. Server Side Includes

Container als Immutable Infrastructure. John M. Hutchison

Handbuch für Administratoren

Data Center Automation mit Puppet

Apache HTTP-Server Teil 1

Herausforderungen des Enterprise Endpoint Managements

Schwerpunkt Konfiguration.htaccess Version 2.2.x

KONFIGURATIONSMANAGEMENT MIT PUPPET TIM SCHMELING. 4b:65:72:73:74:69:6e:2c:20:69:63:68:20:6c:69:65:62:65:20:64:69:63:68:21

Weblogic Server: Administration für Umsteiger

Zentrales Konfigurationsmanagement mit Puppet

Automatisierte Entwickler VMs works on my machine zählt nicht mehr ;-)

Puppet 4 Solaris Thomas Rübensaal T-Systems International GmbH Bamberg

Installation eines Wikis auf einem PC am Beispiel XAMPP und Mediawiki

Systemmanagement mit Puppet und Foreman

M5000 einfach ablösen durch T4/T5 LDoms und Solaris Zonen

Spontan testen! Das eigene Test Lab, für jeden in der Cloud! Peter Kirchner. Microsoft Deutschland GmbH

Linux-Camp: Linux als Server am Beispiel LAMP

Systemmanagement mit Puppet und Foreman

Möglichkeiten von Cloud Computing für Entwicklung und Test. Michael Eichenberger SBB Informatik Developer Day 10. Dezember 2013

IML Deployment Axel Hahn zuletzt geändert:

TimeMachine. Installation und Konfiguration. Version 1.4. Stand Dokument: installcentos.odt

Softwareverteilung für professionelles Clientmanagement in KMU

Das eigene Test Lab, für jeden!

Node.js der Alleskönner. Kai Donato MT AG Ratingen

Apache HTTP-Server Teil 1

Content-Management- Systeme (CMS) Inhaltsverwaltungssystem, Redaktionssystem

GSCC General Storage Cluster Controller. TSM Verfügbarkeit

Spring Dynamic Modules for OSGi Service Platforms

Lab Management mit TFS Thomas Schissler artiso AG

Platform as a Service (PaaS) & Containerization

How To: Windows Imaging mithilfe von DSM7

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

Webserver allgemein Voraussetzung für die Integration von Plone NginX Apache 2 Demonstration Zusammenfassung

HERSTELLERUNABHÄNGIGE FIREWALL AUTOMATISIERUNG

G DATA TechPaper. Update auf Version 14.1 der G DATA Unternehmenslösungen

DevOps with AWS. Software Development und IT Operation Hand in Hand. Matthias Imsand CTO Amanox Solutions AG

Serverprovisioning in einer dynamischen Infrastruktur Systemmanagement LinuxTag 2012

Bachelorvortrag Automatisierte Konfiguration des Build- Servers im Saros-Projekt mit Salt und Git

APEX und Drucken Die Schöne und das Biest! Seite 1 von 61

DevOps. Alexander Pacnik, Head of DevOps Engineering

windream SDK Einfache System-Erweiterungen und Software-Integrationen mit windream

4 Einrichten von Windows

Bereitstellung von Microservice mit dem OCCS

Enterprise Portal - Abbildung von Prozessen, SAP-Datenintegration und mobile Apps

Kurzanleitung zu XML2DB

Deployment. Arthur Zaczek

geo.admin.ch: das Geoportal des Bundes auf der Überholspur in der Public Cloud dank Open Source Open Cloud Day, 19. Juni 2012, Universität Bern

Desktop-Virtualisierung mit Univention DVS

Berater-Profil zert. Sun Solaris Administrator (E15K) EDV-Erfahrung seit Verfügbar ab auf Anfrage. Geburtsjahr 1969

Eine Übersicht über die angepassten Skripte ist hier (Skripte Referenz) zu finden.

Bernd Bleßmann, Jörg Bleßmann. Linux. Aufbau und Einsatz eines Betriebssystems. 1. Auflage. HLuHB Darmstadt. Bestellnummer Bildungsverlag EINS

Eine Untersuchung der Funktionen des Apache Wicket Webframeworks

Jobmanager / Aufgabenplaner

Anleitung. zur Einrichtung & Konfiguration von Baikal (CalDAV / CardDAV Server) auf einem Cubieboard 2/ Stefan W. Lambert kontakt@stefanius.

SCADA SOFT AG. Technische Fragen zu Wizcon (TFW035): Installation von Apache 1.3.x / 2.0.x

Eclipse Tutorial.doc

Process: Installationsleitfaden

LDom Performance optimieren

Systemvoraussetzungen CustomX. Customer Relationship Management

Einführung in Ansible

Marketing Update. Enabler / ENABLER aqua / Maestro II

Marketing Update. Enabler / ENABLER aqua / Maestro II

TFS 2013 Upgrade. Thomas Trotzki - artiso AG

Check_MK. 11. Juni 2013

Cloud Management und Automatisierung mit Open Source Software. Michael Eichenberger Time to Market 24. Mai 2013

APEX und Drucken! - Die Schöne und das Biest!

Azure Community Deutschland. Microsoft Azure. Was ist drin für Unternehmen? Oliver Michalski (Senior Software Engineer.NET)

Play with Ansible - Provisioning von Weblogic mit Ansible

Step by Step Webserver unter Windows Server von Christian Bartl

Virtual Unified Environments Infrastructure Service Installation und Lifecycle im Oracle Produktumfeld

[sure7] sure7 IT Services GmbH. OpenSource im produktiven Rechenzentrum. mit Sicherheit gut beraten. sure7 IT-Services

EASY ENTERPRISE.x 3.2 SYSTEMVORAUSSETZUNGEN

Enterprise Control Center. Systemvoraussetzungen V2.1

Internet-basierendes Autorensystem zur Erschließung historischen Kulturguts. Thorsten Ludewig. Juni 2004

Sind Cloud Apps der nächste Hype?

Einleitung. Funktion. Panzenböck Phillipp. Download Installation. Testen. Konfiguration

R im Enterprise-Modus

Titel. System Center Orchestrator 2012 R2 Anleitung zur Installation

Oracle Enterprise Manager 11g: Grid Control Essentials NEU

Data Protection von Microsoft Applikationen mit Tivoli Storage Manager

Übung 5. Implementierung einer Datenbank. Prof. Dr. Andreas Schmietendorf 1. Übung 5

Wissenswertes über System Center 2012 R Wissenswertes über System Center 2012 R2

Total Cost of Ownership Vergleich Linux/Windows

Transkript:

Whitepaper IT-Automation mit Puppet Release 1.0

Whitepaper IT-Automation mit Puppet Inhaltsverzeichnis Einleitung...3 Fallbeispiel IT-Automation mit Puppet...4 Strukturierung der Konfigurationsdaten...5 Übernahme der Informationsstruktur...6 Puppetisierung der Informationsstruktur...7 Erstellen eines Templates...7 Erstellen eines Puppet-Manifests...8 Zuweisung der Konfigurationsdaten (Deklaration)...9 Ergebnis nach der Puppet-Verarbeitung...10 Anpassungen und manuelle Eingriffe...10 Zusammenfassung...11 Fazit...12 Über Puppet...13 Impressum...14 Herausgeber...14 Lizenz...14 Seite 2 von 15

Einleitung Public Cloud, Private Cloud, Hybrid Cloud, On Demand Computing sind die aktuellen Themen im IT-Infrastrukturmanagement. Aber ohne zentrale Verwaltungswerkzeuge hätten diese Neuerungen nicht eine solche Hype erfahren, denn konventionelle Administration mit vielen Sysadmins in Cloud-Umgebungen ist schlicht zu teuer. Ein solches Werkzeug für Systemadministration und IT-Automation ist Puppet. Ähnlich dem Puppenspieler, der an den richtigen Fäden seiner Marionetten zieht, um mit seinem Puppenspiel den Zuschauer zu verzaubern, verwaltet Puppet Konfgurationen von Servern, Applikationen, Services, Dateien, Software-Paketen etc. Durch die deklarative Sematik der Puppet-Syntax Der Webserver soll aktiv sein legt der Systemadministrator die Zielkonfguration fest und rollt diese über die Puppet-Clients in seiner Umgebung aus. Dass Puppet nicht nur für große und sehr große IT-Landschaften ausgelegt ist, möchte ich Ihnen mit diesem Whitepaper beweisen und die Einsatzmöglichkeiten in kleinen und mittelständischen Unternehmen (KMU) vorstellen. Die Zielgruppe dieses Whitpapers sind IT-Leiter, Systemadministratoren, IT- Architekten und Geschäftsführer von KMU. Seite 3 von 15

Fallbeispiel IT-Automation mit Puppet Grundsätzlich möchte niemand immer das gleiche Tun, dennoch fnden sich immer wieder Beispiele dafür, dass es getan werden muss. An Hand eines Fallbeispiels möchte ich aufzeigen, wie wiederkehrende Arbeiten mit Puppet automatisiert werden können. Stellen wir uns einen selbstständigen Web-Entwickler vor, der für die Entwicklung von Internetportalen für Firmenkunden tätig ist. Für diese Firmenkunden hat er sich eine Test- und Entwicklungsumgebung mit den jeweiligen Instanzen seiner Kunden aufgebaut. Aufgrund seines geschäftlichen Erfolgs verwaltet er mittlerweile einige Dutzend Portalinstanzen. Leider ist mit der Anzahl der Instanzen nicht unbedingt auch die Qualität der Verwaltung gewachsen. Im Gegenteil, es wird vieles manuell und punktuell mit selbstgeschriebenen Shell-Skripten administriert. Das Aufsetzen einer neuen Kundeninstanz ist geprägt von sich immer wiederholenden Befehlsaufrufen, Editieren von Konfgurationsdateien und dem Testen der jeweiligen Konfguration. Daher benötigt das Deployment einer neuen Kundeninstanz immer noch die gleiche Zeit, wie schon bei der Gründung seiner Web-Agentur. Wie Sie mit der Unterstützung von Puppet mehr Zeit für Ihre Projekte gewinnen, zeige ich Ihnen am Beispiel von virtual host des Apache HTTP Server der Apache Software Foundation 1. In einem virtual host wird der Content für einen Web-Seite gekaspelt vom Rest des Webservers unter einem bestimmten Domain-Namen verwaltet und ausgeliefert. Dies ist eine gängige Praxis um verschiedenste Domains auf einem Webserver zu hosten. 1 Als ehrenamtliche Organisation fördert die Apache Software Foundation die Apache-Softwareprojekte wie den Apache Webserver, Apache Tomcat, Apache OpenOffice, Apache Lucene und viele andere. Weitere Informationen: http://apache.org Seite 4 von 15

Strukturierung der Konfigurationsdaten Die Automatisierung von IT-Systemen erfordert eine Standardisierung der Daten im Unternehmen. In unserem Beispiel müssen für die virtual hosts des Webservers die Pfade auf dem Linuxsystem, standardisiert sein. Die Basisarchitektur für die Kundeninstanzen wird wie folgt defniert: Verzeichnis Pfad auf dem Server Basisverzeichnis des Webservers /var/www Basisverzeichnis des Kunden kunde001 DocumentRoot eines virtuellen Hosts von Kunde kunde001 /var/www/kunde001 /var/www/kunde001/www.vh001.de Pfad für die Logdateien der Instanz Pfad für die Konfgurationsdatei der Instanz /var/log/www/kunde001/www.vh001.de /etc/apache2/kunde001/www.vh001.de An dieser Architektur sieht man schon, dass es recht unkompliziert ist kunde001 und www.vh001.de zu strukturieren und als Variable darzustelle: $KUNDE = kunde001 $VIRTUALHOST = www.vh001.de Nun ist die Strukturierung der Daten abgeschlossen und es kann die Puppetisierung beginnen. Aufgrund dieser klaren Verzeichnisstrukturen können auch weitere Systeme wie Backup und Monitoring ohne großen Aufwand in den Webserver integriert werden. Diese angeschlossenen Systeme sind dadurch in der Lage mit einer wachsenden Seite 5 von 15

Anzahl von virtual hosts zu skalieren. Übernahme der Informationsstruktur Puppet bietet ähnlich einer Datenbank die Möglichkeit diese herausgearbeiteten Informationsstrukturen und deren Werte zu speichern. In Puppet werden sogenannte Manifeste geschrieben, um bestimmte Systemkonfgurationen zu manifestieren. Dabei handelt es sich um ASCII-Dateien, die mit jedem Texteditor bearbeitet werden können. Neben den Manifesten gibt es noch weitere Objekte wie Files oder Templates etc. 2. Der Automationsgrad eines Puppet-Umgebung wird nur durch die Vorstellungskraft des Administrators limitiert, so dass dies nur einen kleinen Teil dereinen Automations-möglichkeiten wiederspiegelt: Mit Puppet können Services gestartet oder gestoppt werden Es können hinterlegte Dateien verteilt werden In bestehenden Konfgurationsdateien können Werte verändert werden es kann sicher gestellt werden, dass eine Aktion ausgelöst wird es können rekursiv Konfgurationsarrays verarbeitet werden Software-Pakete können installiert werden 2 Puppet-Dokumentation im Internet: http://docs.puppet.com/ Seite 6 von 15

Puppetisierung der Informationsstruktur Erstellen eines Templates Zunächst wird aus der virtual host -Konfgurationsdatei ein Puppet-Template generiert. Mit einem Editor werden die statischen Daten durch Variablennamen in der Puppet Syntax ersetzt (fett). cat /etc/puppet/modules/apache2/files/virtualhost.conf.erb <VirtualHost *:80> ServerName <%= virtualhost %> ServerAdmin admin@<%= virtualhost %> DocumentRoot /var/www/<%= kunde %>/<%= virtualhost %> ErrorLog /var/log/www/<%= kunde %>/<%= virtualhost %>-error_log CustomLog /var/log/www/<%= kunde %>/<%= virtualhost %>-access_log common <Directory /var/www/<%= kunde %>/<%= virtualhost %> Allow from all Options +Includes +Indexes +FollowSymLinks AllowOverride all </Directory> </VirtualHost> Puppet wird beim Verarbeiten wiederum diese Variablen mit den für diesen Server notwendigen Konfgurationsdaten ersetzen und eine virtualhost.conf-datei erstellen. Seite 7 von 15

Erstellen eines Puppet-Manifests Das Puppet-Manifest legt die Logik für die Automation fest. Es wird deklarativ festgelegt, wie der Zielzustand des Virtualhosts auszusehen hat. cat /etc/puppetlabs/puppet//modules/apache2/manifests/init.pp: class apache2 { } package { 'apache2': ensure => present, } file { '/etc/apache2/${kunde}/${virtualhost}.conf': content => template('apache2/virtualhost.conf.erb'), notify => Service('apache2'), service { 'apache2': ensure => running, } Was deklariert dieses Beispielmanifest 3? 1. Es wird dafür gesorgt, dass das Paket apache2 installiert ist 2. Dass aus dem Template eine virtual host -Datei erzeugt wird 3. Puppet informiert den Service apache2 darüber, das dieser seiner Konfguration neu einlesen soll und dadurch den Content des neuen virtual host ausliefern kann. 3 Dieses Manifest dient nur der Veranschaulichung der Arbeitsweise von Puppet und ist daher recht einfach gehalten. Für den produktiven Betrieb von Puppet sollten die Daten von der Logik getrennt sein. Seite 8 von 15

Zuweisung der Konfigurationsdaten (Deklaration) Die Zuweisung der Konfgurationsdaten für den Kunden kunde001 erfolgt zentral für die Umgebung in der site.pp cat /etc/puppetlabs/puppet/manifests/site.pp: node 'webserver.beispiel-web-agentur.de' { } $kunde = 'kunde001' $virtualhost = 'www.vhost001.de' include apache2 Mit dem letzten und wichtigen Schritt ist die Puppetisierung des Kundensystems abgeschlossen und dieses kann in die Umgebung ausgerollt werden. Um weitere Kundensysteme auszurollen, kann man in der site.pp weitere Hosts in ähnlicher Weise anlegen. Seite 9 von 15

Ergebnis nach der Puppet-Verarbeitung Mit der Ausführung des Puppet-Agenten wird der neue Virtualhost www.vhost001.de des Kunden kunde001 auf dem Webserver ausgerollt: cat /etc/apache2/kunde001/www.vhost001.de.conf <VirtualHost *:80> ServerName www.vhost001.de ServerAdmin admin@www.vhost001.de DocumentRoot /var/www/kunde001/www.vhost001.de ErrorLog /var/log/www/kunde001/www.vhost001.de-error_log CustomLog /var/log/www/kunde001/www.vhost001.de-access_log common <Directory /var/www/kunde001/www.vhost001.de Allow from all Options +Includes +Indexes +FollowSymLinks AllowOverride all </Directory> </VirtualHost> Anpassungen und manuelle Eingriffe Durch die o. a. drei Schritte wurde die Administration der Komponente virtual host des Webservers automatisiert. Anpassungen werden ab sofort über die Änderung des Puppet-Manifests ausgebracht. Manuelle Änderungen (schneller Fix eines Fehlers) sind selbstverständlich möglich. Jedoch sollten diese Konfgurationsänderungen im Puppet-Manifest nachgeführt werden, da Puppet das System immer in den Zustand bringt wie es das Manifest deklariert! Seite 10 von 15

Zusammenfassung An diesem Fallbeispiel wurde aufgezeigt, wie man mit Puppet einfach, aber efektiv eine Test- und Entwicklungsumgebung automatisiert verwalten kann. Mit der Einführung der IT-Automation hat man wieder mehr Zeit sich um seine Kunden zu kümmern und dies macht sich auch bei der Akquise von Neukunden bemerkbar. Und somit schließt sich wieder der Kreis, da mit Puppet verwaltete Infrastrukturen einfach mitwachsen können. Selbstverständlich steigert die Automation auch den Qualitätsgrad der IT- Infrastruktur und dieser ist wiederum ein gutes Verkaufsagrument. Seite 11 von 15

Fazit Wie man an diesem Fallbeispiel erkennen kann, ist Puppet ein sehr fexibeles Werkzeug, um Umgebungen einfach verwalten zu können. Es ersetzt das gewohnte Arbeiten an der Konsole durch intelligente Datenstrukturen und Algorithmen. Puppet unterstützt die Skalierung von IT-Umgebungen und vereinfacht die Integration von weiteren Systemen. Gerade KMU's proftieren von diesem Werkzeug, da es die Möglichkeit bietet Konfgurationen zentral und standardisiert für den/die Server abzulegen und auch wieder einspielen zu können. Don't change a running system verliert mit dem Einsatz von Puppet seinen Schrecken. Es können auch einzelne Systeme automatisiert verwaltet werden, da es in erster Linie auf den Automatisierungszweck und nicht auf die Anzahl der zu verwalteten Systeme ankommt. Auch Wachstumsphasen eines Unternehmens (bei Gründern wichtig!) wird durch Puppet untersützt, den Übergang von einem Application-Server auf zwei Application- Server ist nur noch eine Frage der Deklaration, was auf welchem Server betrieben werden soll. Diesen Vorteilen steht ein weiteres Werkzeug gegenüber, welches erlernt und gepfegt werden muss. Aufgrund der einfachen Syntax der Puppet- Deklarationssprache ist es möglich sich recht schnell einzuarbeiten, so dass der Lernaufwand die Einsparungen von Zeit, Kosten und Steigerung der Qualität dies rechtfertigt. Nicht zu vergessen ist die Tatsache, dass es sich bei Puppet um ein kostenfreies Open Source Produkt handelt. Wenn wir Ihr Interesse geweckt haben und Sie weitere Information oder eine Demonstration dieser IT-Automationslösung wünschen, kontaktieren Sie uns über http://zapp-it.com/kontakt. Gerne beraten wir Sie wie man in Ihrem Unternehmen Puppet erfolgreich einsetzen kann. Seite 12 von 15

Über Puppet Puppet ist ein Software-Produkt zur IT-Automation. Puppet unterstützt Sysadmins bei der Administration von IT-Infrastrukturen. Puppet ermöglicht den gesamten Lebenszyklus eines IT-Systems zu verwalten, die Provisionierung und Konfguration, die Orchestrierung (das Zusammenspiel von Protokollen und Systemen) sowie das Reporting. Mit Puppet kann man wiederholende Aufgaben einfach und unkompliziert automatisieren. Ob dies nur ein System oder ganze Cloud-Infrastukturen betrift, das spielt dabei keine Rolle. Das zentrale Managementsystem (Puppetmaster) wird auf einem Linux Betriebssystem (RHEL, CentOS oder Debian) installiert. Puppet-Agenten stehen für verschiedenste Betriebssysteme wie Microsoft Windows TM, IBM AIX TM, Oracle Solaris TM und diversen Linux Distributionen zur Verfügung. Entwickelt wurde Puppet von Lukas Kanies (CEO Puppetlabs ). Als leidenschaftlicher Programmierer für Systemadministrationswerkzeuge hat er 2005 Puppet entworfen sowie die Fa. Puppet, mit der Idee bessere Werkzeuge für den IT-Betrieb zu entwickeln, gegründet Puppet vertreibt die kommerzielle Version von Puppet als Puppet Enterprise. Der Funktionsumfang der Enterpise-Version ist umfangreicher als die Community-Version und bietet unter anderem auch 24x7-Support für unternehmenskritische Puppet- Infrastrukturen. Weitere Information fnden Sie: Kommerzielle Web-Seite: http://puppet.com/ Puppet Community: http://puppet.com/community/overview Seite 13 von 15

Seite 14 von 15

Impressum Herausgeber Christoph Zapp ZappIT Solutions Christoph Zapp Morschheimer Str. 15 67292 Kirchheimbolanden www.zapp-it.com Veröfentlicht 2016 Copyright 2016 Christoph Zapp Lizenz Dieses Whitepaper steht unter einer CC-BY-ND-3.0-Lizenz. Der Autor soll wie folgt genannt werden: by Christoph Zapp, im Auftrag von ZappIT Solutions Christoph Zapp, http://www.zapp-it.com Diese Lizenz erlaubt die Weiterverbreitung dieses Dokumentes, kommerziell wie nicht-kommerziell, solange dies ohne Veränderungen und vollständig geschieht und der Autor als Urheber genannt wird. Details zur Lizenz erfahren Sie unter : http://creativecommons.org/licenses/by-nd/3.0/de/. Seite 15 von 15