Parallelisierte Administration mit Marionette Collective

Ähnliche Dokumente
Pragmatische Einblicke in Deployment- & Konfigurations- Management Tools

CCNA Exploration Network Fundamentals. ARP Address Resolution Protocol

Systemmanagement mit Puppet und Foreman

Nagios Erweiterungen Der Rest. Nagios / Icinga. OpenSource Network-Monitoring im großen Stil. Manuel Landesfeind

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Web-Anwendungsentwicklung mit dem Delivery Server

check_multi Matthias Flacke Nagios Workshop 26. Juni 2007

The app the crashes, before the breakpoint is reached: Code to the event:

Containerized End 2 End Testing

Anleitung. Integration von Kentix Geräten in den OpManager

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire

IT-Symposium April 2007

Feedback aus der Produktion Ein Blick in den DevOps-Baukasten

Zentrales Konfigurationsmanagement mit Puppet

Applica'on Performance Monitoring in der Oracle Cloud

Delphi MVC Framework. Mathias Pannier

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Überwachung des Nagios-Servers. Stephan Schmidt 31. August 2007

Satellite 6. Next Generation System Provisioning, Configuration and Patch Management

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

Mul$media im Netz (Online Mul$media) Wintersemester 2014/15. Übung 02 (Nebenfach)

Icinga 2 Einführung und Übersicht

Zentrales Konfigurationsmanagement mit Puppet

Einführung in Ansible

Rechnernetze. 6. Übung

Event Handlers heute mal dynamisch

Hackerpraktikum SS 202

Business ProzessMonitoring mit BPView

Management von grossen IT Umgebungen mit Open Source Tools

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

CAIRO if knowledge matters

Systemmanagement mit Puppet und Foreman

Serverprovisioning in einer dynamischen Infrastruktur Systemmanagement LinuxTag 2012

// blog.netways.de FOREMAN DER VORARBEITER ALS PUPPENSPIELER DIRK GÖTZ NETWAYS GMBH Make IT do more with less

Node.js Einführung Manuel Hart

Schnelle Webapplikationen. Status Quo heute...

Perl-Praxis. CGI-Skripte. Madis Rumming, Jan Krüger.

Meine Datenbank läuft auf Vmware Was sagt der Enterprise Manager dazu?

DOAG 2009 Copyright 2009, Oracle Corporation

Herausforderung Multicast IPTV

Backend. Hochschule Darmstadt, Fachbereich Informatik, Wintersemester 2016/2017. Christopher Dörge, Thomas Sauer, David Müller

Enterprise Web-SSO mit CAS und OpenSSO

EtherNet/IP Topology and Engineering MPx06/07/08VRS

Server-Überwachung mit Icinga 2

check_mk - Nagios ganz einfach

puppet, the foreman and everything Opensource Tools für das Datacenter Management Nils Domrose Köln, 24. Juni- 2014

WCF RIA Services Datengetriebene Apps. Thomas Claudius Huber Senior Consultant Trivadis AG

Ansible Orchestrierung einfach gemacht

OpenNebula. public and private cloud management.! Martin Alfke

Open Source Data Center Virtualisierung mit OpenNebula CeBIT Bernd Erk

Motion Controller 2 - MC2

Gerrit und Jenkins ein Traumpaar für Pre-Tested Commit

Gerrit und Jenkins ein Traumpaar für Pre-Tested Commit

WebLogic Server für Dummies

Konfigurationsmanagement mit Chef

Introduction to Azure for Developers MOC 10978

IDM: Identity Connector Framework (ICF) und SAP Connectors

ICINGA Open Source Monitoring in Web 2.0 Style

Xojo für FileMaker Entwickler

Weblogic Server: Administration für Umsteiger

Web Services Monitoring

Technische Praxis der Computersysteme I 2. Vorlesung

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016

ICShell. ICShell 22. DFN-Konferenz Sicherheit in vernetzten Systemen

SEIS Statusseminar. Security der Middleware für IP-basierte Bordnetzarchitekturen SEIS AP 4.3. Alexandre Bouard BMW Forschung und Technik

Unified-E Standard WebHttp Adapter

Cloud Control und die Datenbank

Requirements basiertes Testen mit JUnit Architektur für eine Verbindung von Requirements Management und Test Management

Icinga Teil 2. Andreas Teuchert. 25. Juli 2014

SOA zum Anfassen Erfahrungen aus dem LBBW Markets-Portal Projekt

Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision

Workshop: Nagios/Icinga Business ProzessMonitoring mit BPView

End-to-End Agility Sind Sie schon agil genug? Mag. Christoph Leithner

BPA Suite und SOA - vom fachlichen Prozessmodell zur Anwendung. Bernhard Fischer-Wasels Leitender Systemberater

Anleitung zur Integration der /data.mill API in SAP Java Applikationen

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

Dynamic Host Configuration Protocol

Gaming on the Grid: Design und Realisierung eines dynamischen Online-Rollenspiels

Anforderungsgetriebene Webentwicklung mit Grails:

Fakultät für Informatik der Technischen Universität München. Cognitive Systems. Introduction to Practical Session

Seminar: Konzepte von Betriebssytem- Komponenten

Omnichannel Automation mit elastischer Skalierung

Oracle Enterprise Manager 11g: Grid Control Essentials NEU

Office 365 Dynamics 365 Azure Cortana Intelligence. Enterprise Mobility + Security Operations Mgmt. + Security

Cloud Services eine Wirtschaftlichkeitsbetrachtung Eine Hilfestellung für den wirtschaftlichen Einsatz von Cloud Services

Hochschule Prof. Dr. Martin Leischner Bonn-Rhein-Sieg Netzwerksysteme und TK Modul 7: SNMPv3 Netzmanagement Folie 1

Big Data Performance Management

Hochverfügbare Webanwendungen mit Apache Cassandra. msg systems ag, 26. November 2014

Architektur von SOAP basierten Web Services

Version smart.finder SDI. What's New?

JONATHAN JONA WISLER WHD.global

Copyr i g ht 2014, SAS Ins titut e Inc. All rights res er ve d. HERZLICH WILLKOMMEN ZUR VERANSTALTUNG HADOOP

Webcast: Java Nagios Monitoring in der Praxis

WebLogic Server im Zusammenspiel mit Real Application Cluster

NaaS as Business Concept and SDN as Technology. How Do They Interrelate?

Erfolgsgeschichten phion airlock ICAP Module

IBM Content Manager CM V Proof of Technology

Konfiguration eines Catalyst 4500 Switchs für Network Assistant Management

Transkript:

Parallelisierte Administration mit Marionette Collective Andreas Schmidt 2011 Cassini Consulting GmbH

Andreas Schmidt, 37 Jahre Cassini Consulting Systems Management-Themen: IT-Security System- und Netzwerkarchitektur Konfigurations- und Deploymentmanagement 3

E P Infrastructure Development 4

What s on for today? Herausforderungen beim Aufbau und Betrieb größerer Umgebungen Was ist Marionette Collective? Wofür kann man es einsetzen? Wieso ist Marionette Collective zur Administration hilfreich? 5

Auswirkungen von Umgebungsgröße und -komplexität viele >50 Anzahl Komponenten Komplexe Konfigurationen auf wenigen Hosts Komplexe Umgebung wenige One-Off Einfache Konfigurationen, aber auf vielen Hosts wenige Anzahl zu verwaltender Hosts viele >100 6

viele >50 Anzahl Komponenten Komplexe Konfigurationen auf wenigen Hosts Komplexe Umgebung wenige One-Off Einfache Konfigurationen, aber auf vielen Hosts wenige Anzahl zu verwaltender Hosts viele >100 7

ssh in a for loop is not a solution - Luke Kanies 8 Pro Puppet (APress): Page xvi

9 Verbindungsaufbau

Adressierung durch Hostnamen 10

11 Hang zu One-Linern

Give me an API or give me death 12 http://theagileadmin.com/2010/07/22/give-me-an-api-or-give-me-death/

Real Life System Administration 13

Aktiviere ein Content-Update auf 200 Servern - gleichzeitig 14

Räume das Cache-Verzeichnis /tmp/cx0 auf - aber nur auf CentOS-s mit einer IP-Adresse in der DMZ 15

Starte alle Tomcats durch - auf denen die Applikation iwtf deployed ist. (Zuordnung dynamisch) 16

Wie erreiche ich eine größere Anzahl Hosts möglichst gleichzeitig? Wie kann ich Kommandos sicher gestalten und dokumentieren? Wie finde ich heraus, welche Hosts für meine Abfrage relevant sind? 17

Wie erreiche ich eine größere Anzahl Hosts möglichst gleichzeitig? Wie kann ich Kommandos sicher gestalten und dokumentieren? Wie finde ich heraus, welche Hosts für meine Abfrage relevant sind? 18

Aktiviere ein Content-Update auf 200 Servern - gleichzeitig $ HOSTS=`cat./contenthosts.txt` $ for h in $HOSTS; do ssh $h "curl -d \"ctx_act_id=4711\" http://127.0.0.1:7676/activate_content && echo OK on $h" done; =307 sec. 19

Aktiviere ein Content-Update auf 200 Servern - gleichzeitig $ mco rpc --agent appcontent --action activate \ --arg contentid=4711 \ --discovery-timeout=5 --timeout=3 \ T produktion =3,1 sec. 20

Marionette Collective Server Orchestration Framework Programmatic execution of system administration actions on clusters of servers Agent-basiert, ruby (1.8.5+) Puppet Labs Apache 2 License Broadcast Paradigm Publish-Subscribe Middleware (z.b. ActiveMQ oder RabbitMQ) 21

Architektur von Marionette Collective Client Client Messaging Middleware Collective Subcollective 22

Zentrale Metadaten Hostlisten oder LDAP Vergessene Server Missverständnisse & Kommunikationsfehler Verteilte Metadaten Der Host erhält die Identität durch das was er ist und was er enthält. Immer aktuell 23

Ich facter, also bin ich [ ] [ ] 24

Adressierung der Zielhosts über Facts --with-fact ipaddress_eth1=~^192.168.10.[0-9]+$ --with-class mytomcat 25

Komponenten eines Collectives Client Messaging Middleware Messaging Service mcollective Ich Datendrehscheibe Zielhost Facts facter mcollectived server 26

Kommunikation zwischen Client und Client 1 Messaging Middleware mcollective publish 6 Messaging Service Command Topic subscribe subscribe Reply Topic 5 publish 3 2 Facts facter Agent mcollectived server 4 27

Beispiel: Ping $ mco ping T test web01a app01b web01b app02a app02b web01c [...] time=128.38 ms time=131.07 ms time=134.14 ms time=147.42 ms time=152.98 ms time=159.73 ms Collective ---- ping statistics ---- 24 replies max: 549.12 min: 128.38 avg: 315.18 28

Beispiel: Ping Fact $ mco ping T test -with-fact hostname=~web web01a web01b web01c time=133.90 ms time=149.21 ms time=163.08 ms ---- ping statistics ---- 3 replies max: 163.08 min: 133.90 avg: 148.73 29

Agent = Data Description Language (DDL) + Agent Code 30

Beispiel: NRPE-Agent // DDL selbstbeschreibend action "runcommand", :description => "Run a NRPE command" do input :command, :prompt => "Command", :description => "NRPE command to run", :type => :string, :validation => '^[a-za-z0-9_-]+$', :optional => false, :maxlength => 50 Validierung output :output, :description => "Output from the Nagios plugin", :display_as => "Output" [...] https://github.com/puppetlabs/mcollective-plugins/blob/777597f9904e4a8e744d7735415ec517b7a5d5e7/agent/nrpe/agent/nrpe.ddl 31

Beispiel: NRPE-Agent // Agent Code module MCollective module Agent class Nrpe<RPC::Agent action "runcommand" do validate :command, :shellsafe command = plugin_for_command(request[:command]) [...] [...] [...] [...] reply[:exitcode] = run(command[:cmd], :stdout => :output, :chomp => true) case reply[:exitcode] when 0 reply.statusmsg = "OK" when 2 reply.fail "CRITICAL" else reply.fail "UNKNOWN" end https://github.com/puppetlabs/mcollective-plugins/blob/777597f9904e4a8e744d7735415ec517b7a5d5e7/agent/nrpe/agent/nrpe.rb 32

Räume das Cache-Verzeichnis /tmp/cx0 auf - aber nur auf CentOS- s mit einer IP-Adresse in der DMZ action cleanup", :description => clean up cache" do input :cachepart, :prompt => Cache Part", :description => What part of cache to clean", :type => :string, :validation => '^[a-za-z\-_\d]+$', :optional => false, :maxlength => 30 [...] $ mco rpc --agent cachemgr --action cleanup \ --arg cachepart=cx0 \ T produktion \ --with-fact operatingsystem=centos \ --with-fact ipaddress=~192.168.10 33

Ablauf Request / Response Client Sende Request an Collective Prüfen Kriterien (Facts, Classes,..) Kriterien passen nicht Kriterien passen Sende Fehler an Client Sende Ergebnis an Client Agent/Action nicht gefunden, DDL-Fehler Suche Agent, prüfen DDL ok Agent ausführen 34

Starte alle Tomcats durch - auf denen die Applikation iwtf deployed ist. Custom Fact Facter.add( tomcat_app_iwtf") do setcode do File.exists? /usr/libexec/tomcat/webapps/iwtf.war end end $ mco rpc --agent service --action restart \ --arg service=tomcat \ T produktion v \ --with-fact tomcat_app_iwtf=true 35

Wobei hilft mir MCollective? 36

Ein API ist der Kommandozeile überlegen 37

38 Dashboards und GUIs

Dokumentation Qualität Wiederverwendbarkeit Vereinfachung 39

Abstraktion Rechte- und Rollentrennung (z.b. 2nd / 3rd level) 40

Parallelität Geschwindigkeit Skalierbarkeit 41

Q&A Cassini Consulting GmbH Technology Guidance Andreas Schmidt twitter @aschmidt75 andreas.schmidt@cassini.de Halskestraße 46 T +49 (0)21 02 94 34 737 40880 Ratingen F +49 (0)21 02 94 34 738 Deutschland visit www.cassini.de