SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
Operations Brownbag
         Puppet 101




Felix Rehfeldt
inovex GmbH
System Engineer



          Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
Agenda:
     ...was machen wir hier eigentlich

●
    Was ist Puppet

●
    Was ist Puppet nicht

●
    Setup Puppet

●
    File organisation

●
    Node definitions

●
    Der Client run




09.03.12                                 2
Was ist Puppet


Tool für Configuration Management
•    geschrieben in Ruby
•    eigene Sprache für Manifests (ralsh)
•    Kommunikation via XMLRPC over HTTP


Automatisierung von Tasks
•    Installation und Management von Paketen
•    Anlegen und Verwalten von Benutzer/Gruppen/Permissions
•    Verteilen und Management von Files und Services


Facter als Schnittstelle zum System
•    Auslesen von Systemvariablen (lsb, IP's, uvm.)
•    Kann Variablen über die gesammelten Systeminformationen setzen




09.03.12
Was ist Puppet nicht



•    Puppet ist kein System dass out of the box dass macht was wir
     wollen! Es ist ein umfangreiches Framework welches einen recht
     hohen initialen Konfigurationsaufwand mit sich bringt.

•    Puppet nimmt es einem nicht ab das zu managende System zu
     verstehen. Wer nicht weiß wie ein System zu bedienen ist, sollte
     Puppet zunächst außen vor lassen.




09.03.12
Setup Puppet

Die Puppet Installation

•    apt-get install puppetmaster! Leider nicht...

       •   Nach der Standardinstallation läuft der Puppetmaster mit einem Ruby webrick
           HTTP server


•    was wir wollen..

       •   Ruby EE
       •   Apache2
       •   Phusion Passenger (mod_rails | mod_rack)
       •   Puppetmaster




09.03.12
Setup Puppet

Die erste Konfiguration

sandwichmaker:puppet felix$ vi fileserver.conf
           ...
           [files]
           172.26.26.0/24
           …


sandwichmaker:puppet felix$ vi puppet.conf
           ...
           [master]
           ssl_client_header = SSL_CLIENT_S_DN
           ssl_client_verify_header = SSL_CLIENT_VERIFY
           certname=puppetmaster.foo.org
           modulepath=/etc/puppet/modules
           ...




09.03.12
File organisation


Die Puppet module Struktur

sandwichmaker:testmodul root# tree
.
├── files
...
├── manifests
...
├── plugins
│ └── puppet
│      └── parser
│          └── functions
...
└── templates
...




09.03.12
File organisation


Eine manifest Struktur

sandwichmaker:manifests root# tree -L 2
.
├── integration
│ ├── basenodes
│ ├── nodes-available
│ └── nodes-enabled
├── prelive
│ ├── basenodes
│ ├── nodes-available
│ └── nodes-enabled
├── production
│ ├── basenodes
│ ├── nodes-available
│ └── nodes-enabled
└── site.pp




09.03.12
Node definitions

plain text nodes
 node default {
     include common
 }


 node /ftpd+/ inherits default {
     include ftp-module
 }


 node ftp01.bar.com inherits default {
     $network_config = {
         eth0 => {
             ipadd => "172.26.26.11",
             networkmask => "255.255.255.0",
             gateway => "172.26.26.1"
         }
     }
     include ftp-module
     include network
 }
09.03.12
Node definitions


LDAP Nodes

     zusätzliche Konfiguration
      • puppet.conf

           [master]
           node_terminus = ldap
           ldapserver = foo.bar.com
           ldapbase = ou=hosts,dc=bar,dc=com


     Nodes hinzufügen und editieren

           # ldapvi --add -o top -o device -o puppetClient -b cn=base,ou=hosts,cn=bar,cn=com




09.03.12
Node definitions


External Nodes

     zusätzliche Konfiguration
      • puppet.conf

           [master]
           node_terminus = exec
           external_nodes = /path/to/script.rb


     Nodes hinzufügen und editieren

     ...




09.03.12
Der Client run
… fast geschafft

Client Modi:
•    Daemon Mode
•    Listen Mode
•    Singletime run


Was macht puppet wann:
•    Wann passiert was
•    before und require
•    Was können wir machen wenn before und require nicht reichen


Bugs & Co




09.03.12
Vielen Dank für Ihre Aufmerksamkeit!




inovex GmbH

Pforzheim                           München                                 Köln
Karlsruher Straße 71                Valentin-Linhof-Str. 2                  Kaiser-Wilhelm-Ring 27-29
D-75179 Pforzheim                   D-81829 München                         D-50672 Köln



           Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.

Weitere ähnliche Inhalte

Was ist angesagt?

PhpStorm 6 Configuration for TYPO3
PhpStorm 6 Configuration for TYPO3PhpStorm 6 Configuration for TYPO3
PhpStorm 6 Configuration for TYPO3marco-huber
 
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...Christian Wenz
 
Serverprovisioning in einer dynamischen Infrastruktur
Serverprovisioning in einer dynamischen InfrastrukturServerprovisioning in einer dynamischen Infrastruktur
Serverprovisioning in einer dynamischen Infrastrukturinovex GmbH
 
GUUG Hamburg OpenNebula
GUUG Hamburg OpenNebulaGUUG Hamburg OpenNebula
GUUG Hamburg OpenNebulaMartin Alfke
 
Foreman: Provisionierungswege (Webinar vom 31. März 2016)
Foreman: Provisionierungswege (Webinar vom 31. März 2016)Foreman: Provisionierungswege (Webinar vom 31. März 2016)
Foreman: Provisionierungswege (Webinar vom 31. März 2016)NETWAYS
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenMayflower GmbH
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondUlrich Krause
 
Skalieren von WordPress & WooCommerce
Skalieren von WordPress & WooCommerceSkalieren von WordPress & WooCommerce
Skalieren von WordPress & WooCommerceRobert Windisch
 
5 Tweaks für 500 % bessere Performance
5 Tweaks für 500 % bessere Performance5 Tweaks für 500 % bessere Performance
5 Tweaks für 500 % bessere PerformanceJonas Hünig
 
Server push and Comet (Rails user group Hamburg 2009-06-10)
Server push and Comet (Rails user group Hamburg 2009-06-10)Server push and Comet (Rails user group Hamburg 2009-06-10)
Server push and Comet (Rails user group Hamburg 2009-06-10)Ralph von der Heyden
 
MySQL für Oracle DBA's
MySQL für Oracle DBA'sMySQL für Oracle DBA's
MySQL für Oracle DBA'sFromDual GmbH
 
MySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und ClusterMySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und ClusterFromDual GmbH
 
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
2011 12 05 KLUG Karl Franzens Universität Graz Linux User GroupMatthias Praunegger
 
MySQL Performance Tuning für Oracle-DBA's
MySQL Performance Tuning für Oracle-DBA'sMySQL Performance Tuning für Oracle-DBA's
MySQL Performance Tuning für Oracle-DBA'sFromDual GmbH
 
MySQL Backup/Recovery
MySQL Backup/RecoveryMySQL Backup/Recovery
MySQL Backup/RecoveryFromDual GmbH
 
MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?
MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?
MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?FromDual GmbH
 

Was ist angesagt? (20)

PhpStorm 6 Configuration for TYPO3
PhpStorm 6 Configuration for TYPO3PhpStorm 6 Configuration for TYPO3
PhpStorm 6 Configuration for TYPO3
 
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
 
Serverprovisioning in einer dynamischen Infrastruktur
Serverprovisioning in einer dynamischen InfrastrukturServerprovisioning in einer dynamischen Infrastruktur
Serverprovisioning in einer dynamischen Infrastruktur
 
GUUG Hamburg OpenNebula
GUUG Hamburg OpenNebulaGUUG Hamburg OpenNebula
GUUG Hamburg OpenNebula
 
Synology Workshop07 06
Synology Workshop07 06Synology Workshop07 06
Synology Workshop07 06
 
Foreman: Provisionierungswege (Webinar vom 31. März 2016)
Foreman: Provisionierungswege (Webinar vom 31. März 2016)Foreman: Provisionierungswege (Webinar vom 31. März 2016)
Foreman: Provisionierungswege (Webinar vom 31. März 2016)
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js Grundlagen
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyond
 
Offline Arbeiten
Offline ArbeitenOffline Arbeiten
Offline Arbeiten
 
Skalieren von WordPress & WooCommerce
Skalieren von WordPress & WooCommerceSkalieren von WordPress & WooCommerce
Skalieren von WordPress & WooCommerce
 
5 Tweaks für 500 % bessere Performance
5 Tweaks für 500 % bessere Performance5 Tweaks für 500 % bessere Performance
5 Tweaks für 500 % bessere Performance
 
Server push and Comet (Rails user group Hamburg 2009-06-10)
Server push and Comet (Rails user group Hamburg 2009-06-10)Server push and Comet (Rails user group Hamburg 2009-06-10)
Server push and Comet (Rails user group Hamburg 2009-06-10)
 
MySQL für Oracle DBA's
MySQL für Oracle DBA'sMySQL für Oracle DBA's
MySQL für Oracle DBA's
 
MySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und ClusterMySQL-Server im Teamwork - Replikation und Cluster
MySQL-Server im Teamwork - Replikation und Cluster
 
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
 
MySQL Performance Tuning für Oracle-DBA's
MySQL Performance Tuning für Oracle-DBA'sMySQL Performance Tuning für Oracle-DBA's
MySQL Performance Tuning für Oracle-DBA's
 
OpenWRT
OpenWRTOpenWRT
OpenWRT
 
MySQL Backup/Recovery
MySQL Backup/RecoveryMySQL Backup/Recovery
MySQL Backup/Recovery
 
MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?
MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?
MySQL Beispiele aus der Praxis - Wie setzen Kunden MySQL ein?
 
MySQL Backup
MySQL BackupMySQL Backup
MySQL Backup
 

Ähnlich wie Grundlagen puppet

Opensource Tools für das Data Center Management
Opensource Tools für das Data Center ManagementOpensource Tools für das Data Center Management
Opensource Tools für das Data Center Managementinovex GmbH
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenOPITZ CONSULTING Deutschland
 
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)NETWAYS
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersUlrich Krause
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 
Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrants0enke
 
AdminCamp 2011 Performance
AdminCamp 2011 PerformanceAdminCamp 2011 Performance
AdminCamp 2011 PerformanceUlrich Krause
 
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXCContainer im Betrieb - Ergebnisse der Validieren Docker vs. LXC
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXCBild GmbH & Co. KG
 
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018Christian Mücke
 
Cloud Provisioning mit Juju
Cloud Provisioning mit JujuCloud Provisioning mit Juju
Cloud Provisioning mit JujuFrank Müller
 
OSMC 2010 | Monitoring mit Shinken by Gerhard Laußer
OSMC 2010 | Monitoring mit Shinken by Gerhard LaußerOSMC 2010 | Monitoring mit Shinken by Gerhard Laußer
OSMC 2010 | Monitoring mit Shinken by Gerhard LaußerNETWAYS
 
070-685 Zertifizierungsprüfung deutsch
070-685 Zertifizierungsprüfung deutsch070-685 Zertifizierungsprüfung deutsch
070-685 Zertifizierungsprüfung deutschholgerschmitz2011
 
Monitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_healthMonitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_healthGerhard Lausser
 
Domino 9 - jetzt mit integrierten Features, die das Admin-Leben leichter machen
Domino 9 - jetzt mit integrierten Features, die das Admin-Leben leichter machenDomino 9 - jetzt mit integrierten Features, die das Admin-Leben leichter machen
Domino 9 - jetzt mit integrierten Features, die das Admin-Leben leichter machenAndreas Ponte
 
Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013NETWAYS
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHagilemethoden
 
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur UmsetzungPuppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur Umsetzunginovex GmbH
 
AdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep DiveAdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep DiveKlaus Bild
 

Ähnlich wie Grundlagen puppet (20)

Opensource Tools für das Data Center Management
Opensource Tools für das Data Center ManagementOpensource Tools für das Data Center Management
Opensource Tools für das Data Center Management
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrant
 
AdminCamp 2011 Performance
AdminCamp 2011 PerformanceAdminCamp 2011 Performance
AdminCamp 2011 Performance
 
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXCContainer im Betrieb - Ergebnisse der Validieren Docker vs. LXC
Container im Betrieb - Ergebnisse der Validieren Docker vs. LXC
 
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
 
Cloud Provisioning mit Juju
Cloud Provisioning mit JujuCloud Provisioning mit Juju
Cloud Provisioning mit Juju
 
OSMC 2010 | Monitoring mit Shinken by Gerhard Laußer
OSMC 2010 | Monitoring mit Shinken by Gerhard LaußerOSMC 2010 | Monitoring mit Shinken by Gerhard Laußer
OSMC 2010 | Monitoring mit Shinken by Gerhard Laußer
 
070-685 Zertifizierungsprüfung deutsch
070-685 Zertifizierungsprüfung deutsch070-685 Zertifizierungsprüfung deutsch
070-685 Zertifizierungsprüfung deutsch
 
Monitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_healthMonitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_health
 
Ant Maven
Ant MavenAnt Maven
Ant Maven
 
Domino 9 - jetzt mit integrierten Features, die das Admin-Leben leichter machen
Domino 9 - jetzt mit integrierten Features, die das Admin-Leben leichter machenDomino 9 - jetzt mit integrierten Features, die das Admin-Leben leichter machen
Domino 9 - jetzt mit integrierten Features, die das Admin-Leben leichter machen
 
Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013Monitoring Openstack - LinuxTag 2013
Monitoring Openstack - LinuxTag 2013
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
 
Fehleranalyse in SCCM
Fehleranalyse in SCCMFehleranalyse in SCCM
Fehleranalyse in SCCM
 
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur UmsetzungPuppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
 
AdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep DiveAdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep Dive
 

Mehr von inovex GmbH

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegeninovex GmbH
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIinovex GmbH
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolutioninovex GmbH
 
Network Policies
Network PoliciesNetwork Policies
Network Policiesinovex GmbH
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learninginovex GmbH
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungeninovex GmbH
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeteninovex GmbH
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetesinovex GmbH
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systemsinovex GmbH
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreiheninovex GmbH
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenteninovex GmbH
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?inovex GmbH
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Projectinovex GmbH
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretabilityinovex GmbH
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use caseinovex GmbH
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessinovex GmbH
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumiinovex GmbH
 

Mehr von inovex GmbH (20)

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegen
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AI
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolution
 
WWDC 2019 Recap
WWDC 2019 RecapWWDC 2019 Recap
WWDC 2019 Recap
 
Network Policies
Network PoliciesNetwork Policies
Network Policies
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learning
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungen
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeten
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetes
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
 
Azure IoT Edge
Azure IoT EdgeAzure IoT Edge
Azure IoT Edge
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreihen
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenten
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?
 
Dev + Ops = Go
Dev + Ops = GoDev + Ops = Go
Dev + Ops = Go
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Project
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretability
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use case
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madness
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
 

Grundlagen puppet

  • 1. Operations Brownbag Puppet 101 Felix Rehfeldt inovex GmbH System Engineer Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
  • 2. Agenda: ...was machen wir hier eigentlich ● Was ist Puppet ● Was ist Puppet nicht ● Setup Puppet ● File organisation ● Node definitions ● Der Client run 09.03.12 2
  • 3. Was ist Puppet Tool für Configuration Management • geschrieben in Ruby • eigene Sprache für Manifests (ralsh) • Kommunikation via XMLRPC over HTTP Automatisierung von Tasks • Installation und Management von Paketen • Anlegen und Verwalten von Benutzer/Gruppen/Permissions • Verteilen und Management von Files und Services Facter als Schnittstelle zum System • Auslesen von Systemvariablen (lsb, IP's, uvm.) • Kann Variablen über die gesammelten Systeminformationen setzen 09.03.12
  • 4. Was ist Puppet nicht • Puppet ist kein System dass out of the box dass macht was wir wollen! Es ist ein umfangreiches Framework welches einen recht hohen initialen Konfigurationsaufwand mit sich bringt. • Puppet nimmt es einem nicht ab das zu managende System zu verstehen. Wer nicht weiß wie ein System zu bedienen ist, sollte Puppet zunächst außen vor lassen. 09.03.12
  • 5. Setup Puppet Die Puppet Installation • apt-get install puppetmaster! Leider nicht... • Nach der Standardinstallation läuft der Puppetmaster mit einem Ruby webrick HTTP server • was wir wollen.. • Ruby EE • Apache2 • Phusion Passenger (mod_rails | mod_rack) • Puppetmaster 09.03.12
  • 6. Setup Puppet Die erste Konfiguration sandwichmaker:puppet felix$ vi fileserver.conf ... [files] 172.26.26.0/24 … sandwichmaker:puppet felix$ vi puppet.conf ... [master] ssl_client_header = SSL_CLIENT_S_DN ssl_client_verify_header = SSL_CLIENT_VERIFY certname=puppetmaster.foo.org modulepath=/etc/puppet/modules ... 09.03.12
  • 7. File organisation Die Puppet module Struktur sandwichmaker:testmodul root# tree . ├── files ... ├── manifests ... ├── plugins │ └── puppet │ └── parser │ └── functions ... └── templates ... 09.03.12
  • 8. File organisation Eine manifest Struktur sandwichmaker:manifests root# tree -L 2 . ├── integration │ ├── basenodes │ ├── nodes-available │ └── nodes-enabled ├── prelive │ ├── basenodes │ ├── nodes-available │ └── nodes-enabled ├── production │ ├── basenodes │ ├── nodes-available │ └── nodes-enabled └── site.pp 09.03.12
  • 9. Node definitions plain text nodes node default { include common } node /ftpd+/ inherits default { include ftp-module } node ftp01.bar.com inherits default { $network_config = { eth0 => { ipadd => "172.26.26.11", networkmask => "255.255.255.0", gateway => "172.26.26.1" } } include ftp-module include network } 09.03.12
  • 10. Node definitions LDAP Nodes zusätzliche Konfiguration • puppet.conf [master] node_terminus = ldap ldapserver = foo.bar.com ldapbase = ou=hosts,dc=bar,dc=com Nodes hinzufügen und editieren # ldapvi --add -o top -o device -o puppetClient -b cn=base,ou=hosts,cn=bar,cn=com 09.03.12
  • 11. Node definitions External Nodes zusätzliche Konfiguration • puppet.conf [master] node_terminus = exec external_nodes = /path/to/script.rb Nodes hinzufügen und editieren ... 09.03.12
  • 12. Der Client run … fast geschafft Client Modi: • Daemon Mode • Listen Mode • Singletime run Was macht puppet wann: • Wann passiert was • before und require • Was können wir machen wenn before und require nicht reichen Bugs & Co 09.03.12
  • 13. Vielen Dank für Ihre Aufmerksamkeit! inovex GmbH Pforzheim München Köln Karlsruher Straße 71 Valentin-Linhof-Str. 2 Kaiser-Wilhelm-Ring 27-29 D-75179 Pforzheim D-81829 München D-50672 Köln Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.