Zentrales Konfigurationsmanagement mit Puppet

Ähnliche Dokumente
Zentrales Konfigurationsmanagement mit Puppet

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

Automatisierte Serververwaltung mit Hilfe von Puppet

Management von grossen IT Umgebungen mit Open Source Tools

Systemmanagement mit Puppet und Foreman

. Puppet - Konfigurationsmanagement eines Netzwerks. Oder: Alle Fäden in der Hand halten. Jochen Schulz

Einführung in Ansible

Serverprovisioning in einer dynamischen Infrastruktur Systemmanagement LinuxTag 2012

The Foreman. Felix Massem und Jan-Frederic Markert

Kurs für Linux Online Kurs Verwalter des Linux System

Puppet Kickstart. Nürnberg, Referent: Thomas Gelf

OpenNebula. public and private cloud management.! Martin Alfke

Installation Messerli MySQL auf Linux

Konfigurationsmanagement mit Puppet

Dipl. Inf. Marten Wenzel URZ-S. Tel Remote Installation für LINUX-PCs

Keine Angst vor Puppet 4. Secure Linux Administration Conference 2015 Martin Alfke

Data Center Automation mit Puppet

TSM Information für Administratoren Include-Exclude-Listen

Red Hat Satellite mehr als nur ein Content Delivery und Subscription Management System

Automatisierte Einbindung von Windows Systemen in Bacula mit Hilfe von OPSI

Benutzer und Rechte Teil 1

Content-Management- Systeme (CMS) Inhaltsverwaltungssystem, Redaktionssystem

SuSE SmartClient Framework

BitDefender Client Security Kurzanleitung

Hybride Cloud-Infrastrukturen Bereitstellung & Verwaltung mit System Center 2012

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

0. VORBEMERKUNG VORBEREITUNG DES SYSTEMS INSTALLATION UND KONFIGURATION VON PD-ADMIN Installation...3

Benutzer und Rechte Teil 1, Paketverwaltung, SSH

AJAX Implementierung mit Joomla!

Dokumentation owncloud PH Wien

Kurzanleitung zur Softwareverteilung von BitDefender Produkten...2

Update Messerli MySQL auf Linux

Computer & GNU/Linux Einführung Teil 1

Systemmanagement mit Puppet und Foreman

Blogbeitrag: Installation eines SAP CRM-Systems

Installationsanleitung für. SugarCRM Open Source. Windows Einzelplatz

Mapbender3 Workshop. Christian Wygoda. FOSSGIS Dessau 2012

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

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

Installation des edu- sharing Plug- Ins für Moodle

Zentraler Druckserver mit CUPS

Puppet konfiguriert Nagios automatisch

Agenda. Ziel Problematik OS-Installation Softwareverteilung Inventarisierung Stufenplan

Eine Anwendung mit InstantRails 1.7

Magento Theming Ein Einstieg Rainer Wollthan

Remote Logging mit rsyslog

ONET: FT-NIR-Netzwerke mit zentraler Administration & Datenspeicherung. ONET Server

Senden von strukturierten Berichten über das SFTP Häufig gestellte Fragen

Loslegen mit Contrexx: In 10 Schritten zur professionellen Webseite.

Installationsanleitung WibuKey Treiber

Inhaltsverzeichnis. Einleitung... 11

Smartphone Entwicklung mit Android und Java

Software-Lizenzierung und Aktivierung: Verteilen von Software mit Apple Remote Desktop

Administration von großen Ubuntu Linux Desktop Umgebungen mit Univention Corporate Client

Benutzerhandbuch bintec R4100 / R4300 Configuration Management. Copyright 17. Juli 2006 Funkwerk Enterprise Communications GmbH Version 1.

Dynamic Ressource Management

PL/SQL und Ingres. Der beste Weg, die Zukunft vorauszusagen, ist, sie zu gestalten. John Naisbitt (*1930), amerik. Prognostiker

SSH Authentifizierung über Public Key

Entwicklungsumgebungen. Packer, Vagrant, Puppet. Alexander Pacnik Mannheim,

IT Engineering Continuous Delivery. Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet. Alexander Pacnik Karlsruhe,

Corporate Documents. Technische Implementierung. 8. Dezember 2012

HTTP-Server. Frank Wübbeling Universität Münster

MetaQuotes Empfehlungen zum Gebrauch von

OFS: Ein allgemeines Offline-Dateisystem auf Basis von FUSE

Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten!

PCS-Datenbankanbindung in Betrieb nehmen

Software-Engineering Grundlagen des Software-Engineering 7.3 Sourcecode-Verwaltung mit Versionsmanagement-Systemen Einführung in Subversion (SVN)

Apache HTTP-Server Teil 1

GFD Information Server

Weblogic Server: Administration für Umsteiger

Apache HTTP-Server Teil 1

LINUX Schulung. FrauenComputerZentrum Berlin. Jutta Horstmann, Mai 2006

Clusterinstallation mit FAI


1CONFIGURATION MANAGEMENT

Puppet - Implementing Modules. Von der Planung bis zur Umsetzung. Alexander Pacnik Karlsruhe,

INSTALLATION. Voraussetzungen

Automatische Installation (wenn das SSO-Applet nicht vorhanden ist)! Abbildung 1:Auswahldialog für Installationslaufwerk

Tobias Wassermann. Sichere Webanwendungen mit PHP

Herbstsemester cs106 Informatiklabor Teil 4: Partitionierung & Linux Installation. P.Huber@stud.unibas.ch

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

UNIX. Linux. UNIX Derivate, die wichtigsten. Free BSD (Open) Solaris MacOS X Linux. UNIX Dateisystem, wichtige Ordner.

Konfigurationsmanagement mit Chef

GOsa2. Eine Identity-Management-Lösung auf Open-Source-Basis. Irina Neerfeld

iport iport Systemarchitektur und Administration Marco Ledwon Verbundzentrale des GBV VZG

Entwicklung von Workflows am Beispiel des Open Source Tools Bonita BPMN

Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5

Versionskontrollsysteme

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Die Projek*ools. Files, Git, Tickets & Time

Linux System Management Spacewalk

Managed VPSv3 Was ist neu?

Aufgabe Projektleiter: Tobias Langner

Integration von XPhone Virtual Directory auf OpenStage 60/80 Telefonen

Softwareverteilung. mit. m23

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Transkript:

Zentrales Konfigurationsmanagement mit Puppet SLAC 2011 Martin Alfke <martin.alfke@wizards-of-foss.de>

Einführung Wie managed man 600 Linux-Server mit 20 unterschiedlichen Applikationen?

Einführung Wie managed man 600 Linux-Server mit 20 unterschiedlichen Applikationen? Wieviele Server/ Applikationen kann ein Admin verwalten?

Konfigurationsmanagement ssh-loop for server in db1 db2 db3; do ssh... done

Konfigurationsmanagement ssh-loop for server in db1 db2 db3; do ssh... done Installationsimage Reboot + Reinstallation

Konfigurationsmanagement ssh-loop for server in db1 db2 db3; do ssh... done Installationsimage Reboot + Reinstallation Reproduzierbar? Fehlertolerant? Verfügbarkeit?

Konfigurationsmanagement Vorbereitung Planung Design Initialisierung Betrieb Verbesserung

Tools CFEngine seit 1993

Tools CFEngine seit 1993 atomare Änderungen

Tools CFEngine seit 1993 atomare Änderungen Master-Client

Tools CFEngine Bcfg2 ca. seit 2003

Tools CFEngine Bcfg2 ca. seit 2003 deklarative Beschreibung

Tools CFEngine Bcfg2 ca. seit 2003 deklarative Beschreibung Auswertung der Client Antworten

Tools CFEngine Bcfg2 Puppet seit 2005

Tools CFEngine Bcfg2 Puppet seit 2005 Ruby Anwendung

Tools CFEngine Bcfg2 Puppet seit 2005 Ruby Anwendung Reporting

Tools CFEngine Bcfg2 Puppet Open Source

Tools CFEngine Bcfg2 Puppet Open Source Fixpunkt Beschreibung

Tools CFEngine Bcfg2 Puppet Open Source Fixpunkt Beschreibung Client-Master Setup

Puppet Master Manifeste Dateien Vorlagen

Puppet Master Manifeste Dateien Vorlagen Client

Puppet Master Manifeste Dateien Vorlagen Client kein Provisioning! FAI Cobbler

Puppet Aufbau Master Beschreibung der Clients Client Erstellt Report Dashboard Report Auswertung

Puppet Ressourcen Syntax: <resource-type> { <namevar> : <key1> => <value1>, <key2> => <value2>, <key3> => [ <value3>, <value4> ], }

Puppet Ressourcen user group Beispiel: group { tux : gid!! => 1050, ensure! => present, } user { tux : uid!! => 1050, gid!! => 1050, } home!! shell! ensure! => /home/tux, => /bin/tcsh, => present,

Puppet Ressourcen user group file Beispiel: file { /etc/inet/inetd.conf : ensure! => /etc/inetd.conf, } file { /home/tux : owner! => tux, group! => tux, mode!! => 0700 ensure! => directory, }

Puppet Ressourcen user group file package service cron Beispiel: package { apache2 : ensure! => installed, } service { apache2 : ensure! => running, }

Puppet Facts OS und System spezifische Parameter Variablen und Werte sind innerhalb von Puppet verwendbar

Puppet Facts hardwaremodel => i386 hostname => client01 ipaddress => 192.168.45.114 kernel => Linux kernelmajversion => 2.6 operatingsystem => Debian operatingsystemrelease => 6.0 timezone => CET

Puppet Facts OS und System spezifische Parameter Variablen und Werte sind innerhalb von Puppet verwendbar case $operatingsystem { Solaris : {... } Debian : {... } default: {... } }

Puppet Facts OS und System spezifische Parameter Variablen und Werte sind innerhalb von Puppet verwendbar Eigene Facts

Puppet Facts OS und System spezifische Parameter Variablen und Werte sind innerhalb von Puppet verwendbar Eigene Facts require facter Facter.add( PUPPET_FUNCTION ) do setcode do %x{/bin/cat /etc/function}.chomp end end

Puppet Vorlagen Host-spezifische Konfigurationsdateien Wiederverwendbare Konfigurationsdateien

Puppet Vorlagen Host-spezifische Konfigurationsdateien Wiederverwendbare Konfigurationsdateien $document_root! = /srv/wiki $vhost_port!! = 80 $vhost_name!! = wiki.domain.local file { /etc/apache2/apache2.conf content!!! => template ( apache2.erb ), }

Puppet Vorlagen Host-spezifische Konfigurationsdateien Wiederverwendbare Konfigurationsdateien $document_root! = / s r v / w i k i $vhost_port!! = 8 0 $vhost_name!! = w i k i. d o m a i n. l o c a l file { /etc/apache2/apache2.conf content!!! => template ( apache2.erb ), } # apache2 config DocumentRoot = <% document_root %> NameVirtualHost = <% vhost_name -%>:<%vhost_port %>

Puppet Klassen Gruppieren logisch zusammengehörender Definitionen

Puppet Klassen Gruppieren logisch zusammengehörender Definitionen class apache { package{ apache2 : ensure => installed } service{ apache2 : ensure => running } file{ /etc/apache2/apache2.conf : mode!! => 644, owner! => root, group! => root, } }

Puppet Module Sammlung von Klassendefinitionen mit Dateien und Vorlagen innerhalb einer Verzeichnisstruktur

Puppet Module Sammlung von Klassendefinitionen mit Dateien und Vorlagen innerhalb einer Verzeichnisstruktur modules/ <modulename>/ manifests/ init.pp!!! <- erforderlich <classname>.pp!<- optional (Klassen) templates/!! <- optional (Vorlagen) files/!!!! <- optional (Dateien) lib/!!!!! <- optional (Facts)

Puppet Module Beispiel modules/ apache/ manifests/ init.pp templates/! vhost.erb files/ apache2.conf

Puppet Module Beispiel modules/ apache/ manifests/ init.pp class apache { package { apache2 : ensure => present } file { /etc/apache2/apache2.conf : source => puppet:///modules/apache/apache2.conf, } }

Puppet Performance Standard: Ruby Webrick bekannt für schlechte Performance einfache Implementierung

Puppet Performance Standard: Ruby Webrick bekannt für schlechte Performance einfache Implementierung vorgeschalteter Apache/NGINX/Pound Apache mit mod_passenger

Puppet Reporting Client sendet Bericht an Master

Puppet Reporting Client sendet Bericht an Master Master speichert Bericht im Dateisystem oder in MySQL-Datenbank

Puppet Reporting Client sendet Bericht an Master Master speichert Bericht im Dateisystem oder in MySQL-Datenbank Puppet Dashboard liest Berichte aus Datenbank

Puppet Reporting Client sendet Bericht an Master Master speichert Bericht im Dateisystem oder in MySQL-Datenbank Puppet Dashboard liest Berichte aus Datenbank Dashboard erzeugt strukturierte Darstellung

Puppet Reporting

Puppet @ Allgemein UNIX Abteilung

Puppet @ Allgemein UNIX Abteilung Applikations Abteilung

Puppet @ Zustand 2009

Puppet @ Zustand 2009 kommerzielle Software Lizenzpflichtig gewachsenes Setup (Standards mit Ausnahmen) vorhandenes Konfigurationsmanagement

Puppet @ Definierte Aufgaben von Puppet

Puppet @ Definierte Aufgaben von Puppet Anlegen/Löschen von Usern Anlegen/Löschen/Verwalten von Konfigurationsdateien Starten/Stoppen/Deaktivieren/ Aktivieren von Diensten Installation/Deinstallation von Paketen

Puppet @ Puppet Setup

Puppet @ Puppet Setup Location Function zwei Module mit Unterklassen Puppet Beschreibungen und Dateien in GIT Dashboard

Puppet @ Puppet Client Setup

Puppet @ Puppet Client Setup Basis-Installation via OVS oder Kickstart/ Jumpstart puppet.conf ist Bestandteil der Basis- Installation /etc/puppet_function wird während der Basis-Installation erzeugt

Puppet @ Puppet Master Setup

Puppet @ Puppet Master Setup RHEL 5.2 Puppet 2.6.9 Software Komponenten ruby 1.8.7p334 als Backport Puppet Dashboard 1.2.0

Puppet @ Puppet Master Setup Location Modul Software Komponenten Auslesen des Domain facts und includen der notwendigen Sub-Klassen

Puppet @ Puppet Master Setup Location Modul Function Modul Software Komponenten Auslesen von /etc/puppet_function und includen der Sub-Klassen

Puppet @ Puppet Master Setup puppet_function fact require 'facter' Facter.add("PUPPET_FUNCTION") do setcode do %x{/bin/egrep "^PUPPET_FUNCTION=" /etc/ puppet_function sed -e 's/.*=//'}.chomp end end

Puppet @ Puppet Master Setup puppet_function fact PUPPET_FUNCTION=HPC-INFINIBAND

Puppet @ Puppet Dual Client

Puppet @ Puppet Dual Client Zwei Abteilungen (UNIX + Application) Beide wollen eigenen Puppet Master UNIX Puppet Daemon im root-kontext Applikations Puppet im Kontext des Applikations-Users

Puppet @ Puppet Dual Client UNIX Puppet (root-user) verwaltet die Konfigurationsdateien und init-skripte für den zweiten Puppet Client Applikation Puppet (Funktions-User) verwendet eigene Konfgurationsdateien, eigenes libdir, vardir, logdir, ssldir, server und report_server

Puppet @ Projekt Verlauf Start August 2010 Stand November 2011 Puppet 2.6.9 Dashboard 1.2.0 ca. 550 Server in Puppet

Zentrales Konfigurationsmanagement mit Puppet Demo Martin Alfke <martin.alfke@wizards-of-foss.de>

Zentrales Konfigurationsmanagement mit Puppet Fragen?? Martin Alfke <martin.alfke@wizards-of-foss.de>