SlideShare a Scribd company logo
1 of 56
www.netways.de // blog.netways.de // @netways
We love Open Source
DEUTSCHE OPENSTACK TAGE – 24.06.2015
PUPPET UND OPENSTACK – EIN GUTES TEAM
BERND ERK | NETWAYS GMBH
www.netways.de // blog.netways.de // @netways
We love Open Source
VORSTELLUNG
■ Bernd Erk
 Geschäftsführer NETWAYS GmbH
 Icinga Co-Founder
■ @gethash
■ bernd.erk@netways.de
www.netways.de // blog.netways.de // @netways
We love Open Source
AGENDA
■ Vorstellung NETWAYS
■ Warum Konfigurationsmanagement
■ Vorstellung von Puppet
■ Einführung Puppet DSL
■ Puppet Enterprise
■ Puppet und OpenStack
■ Ausblick
■ Zusammenfassung
■ Fragen & Antworten
www.netways.de // blog.netways.de // @netways
We love Open Source
VORSTELLUNG NETWAYS
www.netways.de // blog.netways.de // @netways
We love Open Source
VORSTELLUNG NETWAYS
■ Firmengründung 1995
■ Open Source seit 1997
■ Aktuell 42 Mitarbeiter
■ Spezialisierung in den Bereichen
Open Source Systems Management
und Open Source Datacenter
www.netways.de // blog.netways.de // @netways
We love Open Source
NETWAYS KOMPETENZEN
■ Monitoring
■ Graphing
■ Logmanagement
■ Konfigurationsmanagement
■ Reporting
■ Private Cloud
■ Backup
■ Projektmanagement
■ Consulting
■ Managed Services
■ Development
■ Support
■ Betrieb
■ Schulungen
■ Konferenzen
■ Monitoring Hardware
www.netways.de // blog.netways.de // @netways
We love Open Source
NETWAYS PRODUKTE
www.netways.de // blog.netways.de // @netways
We love Open Source
NETWAYS KONFERENZEN
Open Source Backup Conference
■ 29. – 30. September 2015 in Köln
■ Best Practices für das Backup
Open Source Monitoring Conference
■ 16. – 18. November 2015 in Nürnberg
■ 250 Teilnehmer (2014)
■ Monitoring Best Practices
www.netways.de // blog.netways.de // @netways
We love Open Source
WARUM KONFIGURATIONSMANAGEMENT
www.netways.de // blog.netways.de // @netways
We love Open Source
WARUM KONFIGURATIONSMANAGEMENT
■ Golden Images
■ Fertige Pakete
■ Manuelle Konfiguration
■ Selbstgebaute Skripte
for i in $(cat host.cfg)
do
ssh user@$i uname -a
done
Häufig verwendete „Automatisierung“
www.netways.de // blog.netways.de // @netways
We love Open Source
DER PUPPET-ANSATZ
www.netways.de // blog.netways.de // @netways
We love Open Source
DER PUPPET-ANSATZ
www.netways.de // blog.netways.de // @netways
We love Open Source
DER PUPPET-ANSATZ
www.netways.de // blog.netways.de // @netways
We love Open Source
VORSTELLUNG VON PUPPET
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET - ÜBERSICHT
www.netways.de // blog.netways.de // @netways
We love Open Source
FUNKTIONSWEISE VON PUPPET
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET WORKFLOW
SSL-Verschlüsselung
bei jedem
Datentransport
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET WORKFLOW
SSL-Verschlüsselung
bei jedem
Datentransport
Der Node sendet
normierte Daten
über sich selbst
an den Puppet
Master.
www.netways.de // blog.netways.de // @netways
We love Open Source
FACTER
■ Puppet nutzt Facter um Daten über das Hostsystem zu sammeln
■ Facter gibt bei der Ausführung eine Liste von Key-Value Paaren zurück
…
is_virtual => true
kernel => Linux
kernelmajversion => 3.2
kernelrelease => 3.2.0-4-amd64
kernelversion => 3.2.0
lsbdistcodename => wheezy
lsbdistdescription => Debian GNU/Linux 7.8 (wheezy)
lsbdistid => Debian
lsbdistrelease => 7.8
lsbmajdistrelease => 7
lsbminordistrelease => 8
macaddress => 02:00:0a:0a:00:48
macaddress_eth0 => 02:00:0a:0a:00:48
macaddress_eth1 => 02:00:64:00:00:02
macaddress_eth2 => 02:00:64:00:00:11
…
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET WORKFLOW
SSL-Verschlüsselung
bei jedem
Datentransport
Der Node sendet
normierte Daten
über sich selbst
an den Puppet
Master. Puppet nutzt diese Daten um einen
Katalog zu erstellen, welcher festlegt,
wie der Node konfiguriert sein sollte.
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET CATALOG
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET – RESOURCE TYPES
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET – RESOURCE PROVIDERS
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET WORKFLOW
SSL-Verschlüsselung
bei jedem
Datentransport
Der Node sendet
normierte Daten
über sich selbst
an den Puppet
Master. Puppet nutzt diese Daten um einen
Katalog zu erstellen, welcher festlegt,
wie der Node konfiguriert sein sollte.
Der Node meldet Konfigurations-
änderungen an den Puppet Master
zurück. Diese werden beispielsweise
über das Puppet Dashboard sichtbar.
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET WORKFLOW
SSL-Verschlüsselung
bei jedem
Datentransport
Der Node sendet
normierte Daten
über sich selbst
an den Puppet
Master. Puppet nutzt diese Daten um einen
Katalog zu erstellen, welcher festlegt,
wie der Node konfiguriert sein sollte.
Der Node meldet Konfigurations-
änderungen an den Puppet Master
zurück. Diese werden beispielsweise
über das Puppet Dashboard sichtbar.
Puppets offene API kann die Daten
auch an 3rd party Tools senden.
Puppet oder 3rd party Tool
www.netways.de // blog.netways.de // @netways
We love Open Source
EINFÜHRUNG PUPPET DSL
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET DOMAIN SPECIFIC LANGUAGE (DSL)
■ Ressource – Einzelner Baustein
 Jede Ressource hat einen type, einen title und einen Satz an
Attributen mit Werten
Hauptressourcen: user, group, host, cron, exec, file, package,
service
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET DOMAIN SPECIFIC LANGUAGE (DSL)
■ Manifest – Puppet Datei mit Endung .pp
Möglichkeiten:
 Statische Dateien
 Dateien mit dynamischem Inhalt (ERB Templates)
 Custom Facts
 Sprachkonstrukte (Variablen, Arrays, Selektionen, case,
if/else/elsif)
 Abhängigkeiten (require, subscribe, before, notify)
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET DOMAIN SPECIFIC LANGUAGE (DSL)
■ Klasse – Zusammenfassung von Ressourcen
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET DOMAIN SPECIFIC LANGUAGE (DSL)
■ Module – Zusammenfassung mehrerer Klassen und zugehörigen
Dateien in einem Verzeichnis
modulname
|-- examples – Beispielmanifeste (Alternative: tests)
|-- files – statische Dateien
|-- lib – Custom Facts und Custom Resourcen
|-- manifests – Manifeste eines Moduls (Klassen)
|-- spec – Debugging mit rspec-puppet
|-- templates – Templates für dynamische Dateien
|-- tests – Beispielmanifeste (Alternative: examples)
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET DOMAIN SPECIFIC LANGUAGE (DSL)
■ Node Deklaration – Modulzuweisung über site.pp
 Einzelner Host:
 Mehrere Hosts:
 Standardzuweisung:
 Weitere Abstraktionen (Profile, Rollen, etc.)
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET DOMAIN SPECIFIC LANGUAGE (DSL)
Weitere Möglichkeiten:
 Unterklassen
 Klassenparametrisierung
 Funktionen (Logging, Hiera, etc.)
 Klassenvererbung
 Environments, Stages, etc.
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET ENTERPRISE
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET ENTERPRISE CONSOLE DEMO
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET FORGE
VIRTUAL & CLOUD INFRASTRUCTURE
APPLICATIONS NETWORK & STORAGE DEVICES
OPERATING SYSTEM RESOURCES
Puppet Forge
~3.287modules
NTP SUDO LDAP
RPM SSH USERS
www.netways.de // blog.netways.de // @netways
We love Open Source
PUPPET UND OPENSTACK
www.netways.de // blog.netways.de // @netways
We love Open Source
OPENSTACK UND KONFIGMANAGEMENT
56%
26%
8%
8%
8%
10%
8%
2%
0%
1%
7%
36%
13%
16%
13%
6%
6%
5%
8%
0%
1%
15%
20%
15%
15%
10%
15%
8%
5%
8%
3%
0%
15%
0% 10% 20% 30% 40% 50% 60%
Puppet
Ansible
Fuel
Chef
PackStack
Juju
SaltStack
DevStack
CFEngine
Crowbar
Other Tool
Prod
Dev/Test
PoC
*Open Stack User Survey 2015
www.netways.de // blog.netways.de // @netways
We love Open Source
OPENSTACK KOMPONENTEN
www.netways.de // blog.netways.de // @netways
We love Open Source
VERWENDUNG VON PACKSTACK
$ sudo yum install git python-yaml -y
$ git clone https://github.com/stackforge/packstack.git
$ cd packstack && sudo python setup.py install
$ packstack --allinone
Only supports Fedora, Red Hat Enterprise Linux (RHEL)
$ packstack --install-hosts=<local ipaddr> 
--novanetwork-pubif=<dev> 
--novacompute-privif=lo 
--novanetwork-privif=lo 
--os-swift-install=y 
--nagios-install=y
■ Packstack - Utility
www.netways.de // blog.netways.de // @netways
We love Open Source
STACKFORGE –> FORGE.PUPPETLABS.COM
“What were previously the StackForge Puppet modules are now officially
the OpenStack Puppet Modules project. This is clear recognition of the
value they bring, as well as the openness and inclusiveness of the
community.”
*https://puppetlabs.com/blog/openstack-kilo-summit-and-looking-forward-to-liberty
www.netways.de // blog.netways.de // @netways
We love Open Source
OPENSTACK NETWORK - NEUTRON
■ stackforge/neutron
■ This module supports the following neutron plugins:
 Open vSwitch
 linuxbridge
 cisco-neutron
■ The following platforms are supported:
 Ubuntu 12.04 (Precise)
 Debian (Wheezy)
 RHEL 6
 Fedora 18
www.netways.de // blog.netways.de // @netways
We love Open Source
OPENSTACK BLOCK STORAGE- CINDER
■ stackforge/cinder
class { 'cinder':
database_connection => 'mysql://cinder:secret@openstack-controller.example.com/cinder',
rabbit_password => 'secret_rpc_password_for_blocks',
rabbit_host => 'openstack-controller.example.com',
verbose => true,
}
class { 'cinder::volume': }
cinder::backend::iscsi {'iscsi1':
iscsi_ip_address => '10.0.0.2',
}
cinder::backend::rbd {'rbd-images':
rbd_pool => 'images',
rbd_user => 'images',
}
www.netways.de // blog.netways.de // @netways
We love Open Source
OPENSTACK BLOCK STORAGE USAGE
44%
16%
11%
5%
9%
4%
5%
1%
2%
2%
37%
23%
10%
7%
10%
4%
3%
2%
1%
1%
0% 10% 20% 30% 40% 50%
Ceph
LVM
NetApp
NFS
GlusterFS
EMC
SolidFire
VMWare
Dell EqualLogic
HP3PAR
May-15
Nov-14
*Open Stack User Survey 2015
www.netways.de // blog.netways.de // @netways
We love Open Source
OPENSTACK COMPUTE - NOVA
■ stackforge/nova
class { 'nova':
database_connection => 'mysql://nova:a_big_secret@127.0.0.1/nova?charset=utf8',
rabbit_userid => 'nova',
rabbit_password => 'an_even_bigger_secret',
image_service => 'nova.image.glance.GlanceImageService',
glance_api_servers => 'localhost:9292',
verbose => false,
rabbit_host => '127.0.0.1',
}
class { 'nova::compute':
enabled => true,
vnc_enabled => true,
}
class { 'nova::compute::libvirt':
migration_support => true,
}
Supports libvirt, xenserver and vmware compute drivers.
www.netways.de // blog.netways.de // @netways
We love Open Source
OPENSTACK IMAGE - GLANCE
■ stackforge/glance
class { 'glance::api':
verbose => true,
keystone_tenant => 'services',
keystone_user => 'glance',
keystone_password => '12345',
sql_connection => 'mysql://glance:12345@127.0.0.1/glance',
}
class { 'glance::registry':
verbose => true,
keystone_tenant => 'services',
keystone_user => 'glance',
keystone_password => '12345',
sql_connection => 'mysql://glance:12345@127.0.0.1/glance',
}
class { 'glance::backend::file': }
Only supports configuring the file, swift and rbd storage backends
www.netways.de // blog.netways.de // @netways
We love Open Source
OPENSTACK OBJECT STORAGE - SWIFT
■ stackforge/swift
class { 'swift':
swift_hash_suffix => 'swift_secret',
}
swift::storage::loopback { ['1', '2']:
require => Class['swift'],
}
class { 'swift::storage::all':
storage_local_net_ip => $ipaddress_eth0
}
@@ring_object_device { "${ipaddress_eth0}:6000/1":
region => 1, # optional, defaults to 1
zone => 1,
weight => 1,
}
@@ring_container_device { "${ipaddress_eth0}:6001/1":
zone => 1,
weight => 1,
}
www.netways.de // blog.netways.de // @netways
We love Open Source
OPENSTACK DASHBOARD - HORIZON
■ stackforge/horizon
class { 'memcached':
listen_ip => '127.0.0.1',
tcp_port => '11211',
udp_port => '11211',
}
class { '::horizon':
cache_server_ip => '127.0.0.1',
cache_server_port => '11211',
secret_key => '12345',
swift => false,
django_debug => 'True',
api_result_limit => '2000',
}
Only supports Apache using mod_wsgi
www.netways.de // blog.netways.de // @netways
We love Open Source
OPENSTACK IDENTIY - KEYSTONE
■ stackforge/keystone
class { 'mysql::server': }
class { 'keystone::db::mysql':
password => 'super_secret_db_password',
allowed_hosts => '%',
}
All the keystone types use the CLI tools and so need to be ran on the keystone node
class { 'postgresql::server': }
class { 'keystone::db::postgresql':
password => 'super_secret_db_password',
}
www.netways.de // blog.netways.de // @netways
We love Open Source
OPENSTACK IDENTITY - DRIVERS
58%
28%
8%
5%
2%
3%
3%
56%
29%
11%
0%
1%
1%
0%
64%
15%
5%
0%
2%
0%
0%
0% 10% 20% 30% 40% 50% 60% 70%
SQL
LDAP
AD
Templated
PAM
KVS
Other
Prod
Dev/Prod
POC
*Open Stack User Survey 2015
www.netways.de // blog.netways.de // @netways
We love Open Source
OPENSTACK TELEMETRY - CEILOMETER
■ stackforge/ceilometer
www.netways.de // blog.netways.de // @netways
We love Open Source
AUSBLICK
www.netways.de // blog.netways.de // @netways
We love Open Source
AUSBLICK - CONTAINER
64%
39%
33%
19%
16%
10%
7%
1%
0% 10% 20% 30% 40% 50% 60% 70%
Docker
Kubernetes
LXC
Mesos
Rocket
LXD
OpenVZ
Warden
Interesse in Containertechnologie
*Open Stack User Survey 2015
www.netways.de // blog.netways.de // @netways
We love Open Source
ZUSAMMENFASSUNG
www.netways.de // blog.netways.de // @netways
We love Open Source
ZUSAMMENFASSUNG
■ Vielzahl an unterschiedlichen Komponenten ist für automatisiertes
Deployment eine Herausforderung
■ Puppet bietet größte OpenStack-Unterstützung am Markt
■ Eine breite Basis an OpenStack Komponenten wird supported
 https://forge.puppetlabs.com/stackforge
 Nicht alle Backends werden unterstützt!
■ Nicht alle Module unterstützen aktuelles Release Kilo
■ Ausprobieren ist einfach
puppet module install stackforge-nova
www.netways.de // blog.netways.de // @netways
We love Open Source
FRAGEN UND ANTWORTEN
www.netways.de // blog.netways.de // @netways
We love Open Source
KONTAKTDATEN
?
Vielen Dank für Ihre
Aufmerksamkeit!
NETWAYS GmbH
Deutschherrnstrasse 15-19
90429 Nürnberg
Tel: +49 911 92885-0
Fax: +49 911 92885-77
E-Mail: info@netways.de
Website: www.netways.de
Twitter: twitter.com/netways
Facebook: facebook.com/netways
Blog: blog.netways.de

More Related Content

Viewers also liked

03 Weblogs in der Schule
03 Weblogs in der Schule 03 Weblogs in der Schule
03 Weblogs in der Schule
joness6
 

Viewers also liked (20)

La llamada de cthulhu jack el flaco (michael c. labossiere) por ángel contrer...
La llamada de cthulhu jack el flaco (michael c. labossiere) por ángel contrer...La llamada de cthulhu jack el flaco (michael c. labossiere) por ángel contrer...
La llamada de cthulhu jack el flaco (michael c. labossiere) por ángel contrer...
 
La llamada de cthulhu el lozdra (michael c. la bossiere) por ángel contreras,...
La llamada de cthulhu el lozdra (michael c. la bossiere) por ángel contreras,...La llamada de cthulhu el lozdra (michael c. la bossiere) por ángel contreras,...
La llamada de cthulhu el lozdra (michael c. la bossiere) por ángel contreras,...
 
induccion del reglamento
induccion del reglamentoinduccion del reglamento
induccion del reglamento
 
German Castles A
German Castles AGerman Castles A
German Castles A
 
LA ROBOTICA
LA ROBOTICALA ROBOTICA
LA ROBOTICA
 
Gerencia de proyectos
Gerencia de proyectosGerencia de proyectos
Gerencia de proyectos
 
Videojuegos
VideojuegosVideojuegos
Videojuegos
 
Analisis
AnalisisAnalisis
Analisis
 
Autoestima
AutoestimaAutoestima
Autoestima
 
Wintereinbruch
WintereinbruchWintereinbruch
Wintereinbruch
 
Taller de reciclaje
Taller de reciclajeTaller de reciclaje
Taller de reciclaje
 
Sugerencias
Sugerencias Sugerencias
Sugerencias
 
Mensa
MensaMensa
Mensa
 
Einführung in OfSA und LZN
Einführung in OfSA und LZN Einführung in OfSA und LZN
Einführung in OfSA und LZN
 
DREAMWEAVER
DREAMWEAVERDREAMWEAVER
DREAMWEAVER
 
Web 2.0 und Non-Profit-PR
Web 2.0 und Non-Profit-PRWeb 2.0 und Non-Profit-PR
Web 2.0 und Non-Profit-PR
 
El celular
El celularEl celular
El celular
 
Material reciclado
Material recicladoMaterial reciclado
Material reciclado
 
03 Weblogs in der Schule
03 Weblogs in der Schule 03 Weblogs in der Schule
03 Weblogs in der Schule
 
Twittern für Einsteiger
Twittern für EinsteigerTwittern für Einsteiger
Twittern für Einsteiger
 

Similar to Puppet und OpenStack - Ein gutes Team

Similar to Puppet und OpenStack - Ein gutes Team (20)

Foreman: OpenNebula orchestrieren (Webinar vom 26.06.2014)
Foreman: OpenNebula orchestrieren (Webinar vom 26.06.2014)Foreman: OpenNebula orchestrieren (Webinar vom 26.06.2014)
Foreman: OpenNebula orchestrieren (Webinar vom 26.06.2014)
 
Puppet: Aufbau einer Open Source Umgebung (Webinar vom 09.05.2014)
Puppet: Aufbau einer Open Source Umgebung (Webinar vom 09.05.2014)Puppet: Aufbau einer Open Source Umgebung (Webinar vom 09.05.2014)
Puppet: Aufbau einer Open Source Umgebung (Webinar vom 09.05.2014)
 
Icinga 2: Integration von Graphite (Webinar vom 25.09.2014)
Icinga 2: Integration von Graphite (Webinar vom 25.09.2014)Icinga 2: Integration von Graphite (Webinar vom 25.09.2014)
Icinga 2: Integration von Graphite (Webinar vom 25.09.2014)
 
Puppet: Windows Configuration Management (Webinar vom 12.12.2014)
Puppet: Windows Configuration Management (Webinar vom 12.12.2014)Puppet: Windows Configuration Management (Webinar vom 12.12.2014)
Puppet: Windows Configuration Management (Webinar vom 12.12.2014)
 
Ceph: Open Source Cloud Storage (Webinar vom 25.02.2015)
Ceph: Open Source Cloud Storage (Webinar vom 25.02.2015)Ceph: Open Source Cloud Storage (Webinar vom 25.02.2015)
Ceph: Open Source Cloud Storage (Webinar vom 25.02.2015)
 
Icinga 2: Enterprise Monitoring der nächsten Generation (Webinar vom 22.07.2014)
Icinga 2: Enterprise Monitoring der nächsten Generation (Webinar vom 22.07.2014)Icinga 2: Enterprise Monitoring der nächsten Generation (Webinar vom 22.07.2014)
Icinga 2: Enterprise Monitoring der nächsten Generation (Webinar vom 22.07.2014)
 
Webinar Icinga 2: Enterprise Monitoring der nächsten Generation (22.07.2014)
Webinar Icinga 2: Enterprise Monitoring der nächsten Generation (22.07.2014)Webinar Icinga 2: Enterprise Monitoring der nächsten Generation (22.07.2014)
Webinar Icinga 2: Enterprise Monitoring der nächsten Generation (22.07.2014)
 
Icinga 2: Entwicklungsstand 2014 (Webinar vom 05.03.2014)
Icinga 2: Entwicklungsstand 2014 (Webinar vom 05.03.2014)Icinga 2: Entwicklungsstand 2014 (Webinar vom 05.03.2014)
Icinga 2: Entwicklungsstand 2014 (Webinar vom 05.03.2014)
 
Icinga 2: Neuheiten in 2.3 (Webinar vom 08.04.2015)
Icinga 2: Neuheiten in 2.3 (Webinar vom 08.04.2015)Icinga 2: Neuheiten in 2.3 (Webinar vom 08.04.2015)
Icinga 2: Neuheiten in 2.3 (Webinar vom 08.04.2015)
 
Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014
 
Icinga 2: Migration von Nagios oder Icinga 1.x leicht gemacht (Webinar 02.09....
Icinga 2: Migration von Nagios oder Icinga 1.x leicht gemacht (Webinar 02.09....Icinga 2: Migration von Nagios oder Icinga 1.x leicht gemacht (Webinar 02.09....
Icinga 2: Migration von Nagios oder Icinga 1.x leicht gemacht (Webinar 02.09....
 
Icinga workshop 2014 Icinga 2
Icinga workshop 2014 Icinga 2Icinga workshop 2014 Icinga 2
Icinga workshop 2014 Icinga 2
 
Bareos: Open Source Backup leicht gemacht (Webinar vom 10.06.2014)
Bareos: Open Source Backup leicht gemacht (Webinar vom 10.06.2014)Bareos: Open Source Backup leicht gemacht (Webinar vom 10.06.2014)
Bareos: Open Source Backup leicht gemacht (Webinar vom 10.06.2014)
 
Vagrant: Virtualisierungs Wrapper (Webinar vom 30.04.2015)
Vagrant: Virtualisierungs Wrapper (Webinar vom 30.04.2015)Vagrant: Virtualisierungs Wrapper (Webinar vom 30.04.2015)
Vagrant: Virtualisierungs Wrapper (Webinar vom 30.04.2015)
 
20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge
 
Azure Notebooks
Azure NotebooksAzure Notebooks
Azure Notebooks
 
Docker: Container Management (Webinar vom 09.04.2015)
Docker: Container Management (Webinar vom 09.04.2015)Docker: Container Management (Webinar vom 09.04.2015)
Docker: Container Management (Webinar vom 09.04.2015)
 
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrOracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
 
Das Open Source Rechenzentrum (Webinar vom 11.02.2015)
Das Open Source Rechenzentrum (Webinar vom 11.02.2015)Das Open Source Rechenzentrum (Webinar vom 11.02.2015)
Das Open Source Rechenzentrum (Webinar vom 11.02.2015)
 
Icinga 2: Integrierte Hochverfügbarkeit (Webinar vom 07.10.2014)
Icinga 2: Integrierte Hochverfügbarkeit (Webinar vom 07.10.2014) Icinga 2: Integrierte Hochverfügbarkeit (Webinar vom 07.10.2014)
Icinga 2: Integrierte Hochverfügbarkeit (Webinar vom 07.10.2014)
 

Puppet und OpenStack - Ein gutes Team

  • 1. www.netways.de // blog.netways.de // @netways We love Open Source DEUTSCHE OPENSTACK TAGE – 24.06.2015 PUPPET UND OPENSTACK – EIN GUTES TEAM BERND ERK | NETWAYS GMBH
  • 2. www.netways.de // blog.netways.de // @netways We love Open Source VORSTELLUNG ■ Bernd Erk  Geschäftsführer NETWAYS GmbH  Icinga Co-Founder ■ @gethash ■ bernd.erk@netways.de
  • 3. www.netways.de // blog.netways.de // @netways We love Open Source AGENDA ■ Vorstellung NETWAYS ■ Warum Konfigurationsmanagement ■ Vorstellung von Puppet ■ Einführung Puppet DSL ■ Puppet Enterprise ■ Puppet und OpenStack ■ Ausblick ■ Zusammenfassung ■ Fragen & Antworten
  • 4. www.netways.de // blog.netways.de // @netways We love Open Source VORSTELLUNG NETWAYS
  • 5. www.netways.de // blog.netways.de // @netways We love Open Source VORSTELLUNG NETWAYS ■ Firmengründung 1995 ■ Open Source seit 1997 ■ Aktuell 42 Mitarbeiter ■ Spezialisierung in den Bereichen Open Source Systems Management und Open Source Datacenter
  • 6. www.netways.de // blog.netways.de // @netways We love Open Source NETWAYS KOMPETENZEN ■ Monitoring ■ Graphing ■ Logmanagement ■ Konfigurationsmanagement ■ Reporting ■ Private Cloud ■ Backup ■ Projektmanagement ■ Consulting ■ Managed Services ■ Development ■ Support ■ Betrieb ■ Schulungen ■ Konferenzen ■ Monitoring Hardware
  • 7. www.netways.de // blog.netways.de // @netways We love Open Source NETWAYS PRODUKTE
  • 8. www.netways.de // blog.netways.de // @netways We love Open Source NETWAYS KONFERENZEN Open Source Backup Conference ■ 29. – 30. September 2015 in Köln ■ Best Practices für das Backup Open Source Monitoring Conference ■ 16. – 18. November 2015 in Nürnberg ■ 250 Teilnehmer (2014) ■ Monitoring Best Practices
  • 9. www.netways.de // blog.netways.de // @netways We love Open Source WARUM KONFIGURATIONSMANAGEMENT
  • 10. www.netways.de // blog.netways.de // @netways We love Open Source WARUM KONFIGURATIONSMANAGEMENT ■ Golden Images ■ Fertige Pakete ■ Manuelle Konfiguration ■ Selbstgebaute Skripte for i in $(cat host.cfg) do ssh user@$i uname -a done Häufig verwendete „Automatisierung“
  • 11. www.netways.de // blog.netways.de // @netways We love Open Source DER PUPPET-ANSATZ
  • 12. www.netways.de // blog.netways.de // @netways We love Open Source DER PUPPET-ANSATZ
  • 13. www.netways.de // blog.netways.de // @netways We love Open Source DER PUPPET-ANSATZ
  • 14. www.netways.de // blog.netways.de // @netways We love Open Source VORSTELLUNG VON PUPPET
  • 15. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET - ÜBERSICHT
  • 16. www.netways.de // blog.netways.de // @netways We love Open Source FUNKTIONSWEISE VON PUPPET
  • 17. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET WORKFLOW SSL-Verschlüsselung bei jedem Datentransport
  • 18. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET WORKFLOW SSL-Verschlüsselung bei jedem Datentransport Der Node sendet normierte Daten über sich selbst an den Puppet Master.
  • 19. www.netways.de // blog.netways.de // @netways We love Open Source FACTER ■ Puppet nutzt Facter um Daten über das Hostsystem zu sammeln ■ Facter gibt bei der Ausführung eine Liste von Key-Value Paaren zurück … is_virtual => true kernel => Linux kernelmajversion => 3.2 kernelrelease => 3.2.0-4-amd64 kernelversion => 3.2.0 lsbdistcodename => wheezy lsbdistdescription => Debian GNU/Linux 7.8 (wheezy) lsbdistid => Debian lsbdistrelease => 7.8 lsbmajdistrelease => 7 lsbminordistrelease => 8 macaddress => 02:00:0a:0a:00:48 macaddress_eth0 => 02:00:0a:0a:00:48 macaddress_eth1 => 02:00:64:00:00:02 macaddress_eth2 => 02:00:64:00:00:11 …
  • 20. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET WORKFLOW SSL-Verschlüsselung bei jedem Datentransport Der Node sendet normierte Daten über sich selbst an den Puppet Master. Puppet nutzt diese Daten um einen Katalog zu erstellen, welcher festlegt, wie der Node konfiguriert sein sollte.
  • 21. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET CATALOG
  • 22. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET – RESOURCE TYPES
  • 23. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET – RESOURCE PROVIDERS
  • 24. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET WORKFLOW SSL-Verschlüsselung bei jedem Datentransport Der Node sendet normierte Daten über sich selbst an den Puppet Master. Puppet nutzt diese Daten um einen Katalog zu erstellen, welcher festlegt, wie der Node konfiguriert sein sollte. Der Node meldet Konfigurations- änderungen an den Puppet Master zurück. Diese werden beispielsweise über das Puppet Dashboard sichtbar.
  • 25. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET WORKFLOW SSL-Verschlüsselung bei jedem Datentransport Der Node sendet normierte Daten über sich selbst an den Puppet Master. Puppet nutzt diese Daten um einen Katalog zu erstellen, welcher festlegt, wie der Node konfiguriert sein sollte. Der Node meldet Konfigurations- änderungen an den Puppet Master zurück. Diese werden beispielsweise über das Puppet Dashboard sichtbar. Puppets offene API kann die Daten auch an 3rd party Tools senden. Puppet oder 3rd party Tool
  • 26. www.netways.de // blog.netways.de // @netways We love Open Source EINFÜHRUNG PUPPET DSL
  • 27. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET DOMAIN SPECIFIC LANGUAGE (DSL) ■ Ressource – Einzelner Baustein  Jede Ressource hat einen type, einen title und einen Satz an Attributen mit Werten Hauptressourcen: user, group, host, cron, exec, file, package, service
  • 28. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET DOMAIN SPECIFIC LANGUAGE (DSL) ■ Manifest – Puppet Datei mit Endung .pp Möglichkeiten:  Statische Dateien  Dateien mit dynamischem Inhalt (ERB Templates)  Custom Facts  Sprachkonstrukte (Variablen, Arrays, Selektionen, case, if/else/elsif)  Abhängigkeiten (require, subscribe, before, notify)
  • 29. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET DOMAIN SPECIFIC LANGUAGE (DSL) ■ Klasse – Zusammenfassung von Ressourcen
  • 30. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET DOMAIN SPECIFIC LANGUAGE (DSL) ■ Module – Zusammenfassung mehrerer Klassen und zugehörigen Dateien in einem Verzeichnis modulname |-- examples – Beispielmanifeste (Alternative: tests) |-- files – statische Dateien |-- lib – Custom Facts und Custom Resourcen |-- manifests – Manifeste eines Moduls (Klassen) |-- spec – Debugging mit rspec-puppet |-- templates – Templates für dynamische Dateien |-- tests – Beispielmanifeste (Alternative: examples)
  • 31. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET DOMAIN SPECIFIC LANGUAGE (DSL) ■ Node Deklaration – Modulzuweisung über site.pp  Einzelner Host:  Mehrere Hosts:  Standardzuweisung:  Weitere Abstraktionen (Profile, Rollen, etc.)
  • 32. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET DOMAIN SPECIFIC LANGUAGE (DSL) Weitere Möglichkeiten:  Unterklassen  Klassenparametrisierung  Funktionen (Logging, Hiera, etc.)  Klassenvererbung  Environments, Stages, etc.
  • 33. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET ENTERPRISE
  • 34. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET ENTERPRISE CONSOLE DEMO
  • 35. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET FORGE VIRTUAL & CLOUD INFRASTRUCTURE APPLICATIONS NETWORK & STORAGE DEVICES OPERATING SYSTEM RESOURCES Puppet Forge ~3.287modules NTP SUDO LDAP RPM SSH USERS
  • 36. www.netways.de // blog.netways.de // @netways We love Open Source PUPPET UND OPENSTACK
  • 37. www.netways.de // blog.netways.de // @netways We love Open Source OPENSTACK UND KONFIGMANAGEMENT 56% 26% 8% 8% 8% 10% 8% 2% 0% 1% 7% 36% 13% 16% 13% 6% 6% 5% 8% 0% 1% 15% 20% 15% 15% 10% 15% 8% 5% 8% 3% 0% 15% 0% 10% 20% 30% 40% 50% 60% Puppet Ansible Fuel Chef PackStack Juju SaltStack DevStack CFEngine Crowbar Other Tool Prod Dev/Test PoC *Open Stack User Survey 2015
  • 38. www.netways.de // blog.netways.de // @netways We love Open Source OPENSTACK KOMPONENTEN
  • 39. www.netways.de // blog.netways.de // @netways We love Open Source VERWENDUNG VON PACKSTACK $ sudo yum install git python-yaml -y $ git clone https://github.com/stackforge/packstack.git $ cd packstack && sudo python setup.py install $ packstack --allinone Only supports Fedora, Red Hat Enterprise Linux (RHEL) $ packstack --install-hosts=<local ipaddr> --novanetwork-pubif=<dev> --novacompute-privif=lo --novanetwork-privif=lo --os-swift-install=y --nagios-install=y ■ Packstack - Utility
  • 40. www.netways.de // blog.netways.de // @netways We love Open Source STACKFORGE –> FORGE.PUPPETLABS.COM “What were previously the StackForge Puppet modules are now officially the OpenStack Puppet Modules project. This is clear recognition of the value they bring, as well as the openness and inclusiveness of the community.” *https://puppetlabs.com/blog/openstack-kilo-summit-and-looking-forward-to-liberty
  • 41. www.netways.de // blog.netways.de // @netways We love Open Source OPENSTACK NETWORK - NEUTRON ■ stackforge/neutron ■ This module supports the following neutron plugins:  Open vSwitch  linuxbridge  cisco-neutron ■ The following platforms are supported:  Ubuntu 12.04 (Precise)  Debian (Wheezy)  RHEL 6  Fedora 18
  • 42. www.netways.de // blog.netways.de // @netways We love Open Source OPENSTACK BLOCK STORAGE- CINDER ■ stackforge/cinder class { 'cinder': database_connection => 'mysql://cinder:secret@openstack-controller.example.com/cinder', rabbit_password => 'secret_rpc_password_for_blocks', rabbit_host => 'openstack-controller.example.com', verbose => true, } class { 'cinder::volume': } cinder::backend::iscsi {'iscsi1': iscsi_ip_address => '10.0.0.2', } cinder::backend::rbd {'rbd-images': rbd_pool => 'images', rbd_user => 'images', }
  • 43. www.netways.de // blog.netways.de // @netways We love Open Source OPENSTACK BLOCK STORAGE USAGE 44% 16% 11% 5% 9% 4% 5% 1% 2% 2% 37% 23% 10% 7% 10% 4% 3% 2% 1% 1% 0% 10% 20% 30% 40% 50% Ceph LVM NetApp NFS GlusterFS EMC SolidFire VMWare Dell EqualLogic HP3PAR May-15 Nov-14 *Open Stack User Survey 2015
  • 44. www.netways.de // blog.netways.de // @netways We love Open Source OPENSTACK COMPUTE - NOVA ■ stackforge/nova class { 'nova': database_connection => 'mysql://nova:a_big_secret@127.0.0.1/nova?charset=utf8', rabbit_userid => 'nova', rabbit_password => 'an_even_bigger_secret', image_service => 'nova.image.glance.GlanceImageService', glance_api_servers => 'localhost:9292', verbose => false, rabbit_host => '127.0.0.1', } class { 'nova::compute': enabled => true, vnc_enabled => true, } class { 'nova::compute::libvirt': migration_support => true, } Supports libvirt, xenserver and vmware compute drivers.
  • 45. www.netways.de // blog.netways.de // @netways We love Open Source OPENSTACK IMAGE - GLANCE ■ stackforge/glance class { 'glance::api': verbose => true, keystone_tenant => 'services', keystone_user => 'glance', keystone_password => '12345', sql_connection => 'mysql://glance:12345@127.0.0.1/glance', } class { 'glance::registry': verbose => true, keystone_tenant => 'services', keystone_user => 'glance', keystone_password => '12345', sql_connection => 'mysql://glance:12345@127.0.0.1/glance', } class { 'glance::backend::file': } Only supports configuring the file, swift and rbd storage backends
  • 46. www.netways.de // blog.netways.de // @netways We love Open Source OPENSTACK OBJECT STORAGE - SWIFT ■ stackforge/swift class { 'swift': swift_hash_suffix => 'swift_secret', } swift::storage::loopback { ['1', '2']: require => Class['swift'], } class { 'swift::storage::all': storage_local_net_ip => $ipaddress_eth0 } @@ring_object_device { "${ipaddress_eth0}:6000/1": region => 1, # optional, defaults to 1 zone => 1, weight => 1, } @@ring_container_device { "${ipaddress_eth0}:6001/1": zone => 1, weight => 1, }
  • 47. www.netways.de // blog.netways.de // @netways We love Open Source OPENSTACK DASHBOARD - HORIZON ■ stackforge/horizon class { 'memcached': listen_ip => '127.0.0.1', tcp_port => '11211', udp_port => '11211', } class { '::horizon': cache_server_ip => '127.0.0.1', cache_server_port => '11211', secret_key => '12345', swift => false, django_debug => 'True', api_result_limit => '2000', } Only supports Apache using mod_wsgi
  • 48. www.netways.de // blog.netways.de // @netways We love Open Source OPENSTACK IDENTIY - KEYSTONE ■ stackforge/keystone class { 'mysql::server': } class { 'keystone::db::mysql': password => 'super_secret_db_password', allowed_hosts => '%', } All the keystone types use the CLI tools and so need to be ran on the keystone node class { 'postgresql::server': } class { 'keystone::db::postgresql': password => 'super_secret_db_password', }
  • 49. www.netways.de // blog.netways.de // @netways We love Open Source OPENSTACK IDENTITY - DRIVERS 58% 28% 8% 5% 2% 3% 3% 56% 29% 11% 0% 1% 1% 0% 64% 15% 5% 0% 2% 0% 0% 0% 10% 20% 30% 40% 50% 60% 70% SQL LDAP AD Templated PAM KVS Other Prod Dev/Prod POC *Open Stack User Survey 2015
  • 50. www.netways.de // blog.netways.de // @netways We love Open Source OPENSTACK TELEMETRY - CEILOMETER ■ stackforge/ceilometer
  • 51. www.netways.de // blog.netways.de // @netways We love Open Source AUSBLICK
  • 52. www.netways.de // blog.netways.de // @netways We love Open Source AUSBLICK - CONTAINER 64% 39% 33% 19% 16% 10% 7% 1% 0% 10% 20% 30% 40% 50% 60% 70% Docker Kubernetes LXC Mesos Rocket LXD OpenVZ Warden Interesse in Containertechnologie *Open Stack User Survey 2015
  • 53. www.netways.de // blog.netways.de // @netways We love Open Source ZUSAMMENFASSUNG
  • 54. www.netways.de // blog.netways.de // @netways We love Open Source ZUSAMMENFASSUNG ■ Vielzahl an unterschiedlichen Komponenten ist für automatisiertes Deployment eine Herausforderung ■ Puppet bietet größte OpenStack-Unterstützung am Markt ■ Eine breite Basis an OpenStack Komponenten wird supported  https://forge.puppetlabs.com/stackforge  Nicht alle Backends werden unterstützt! ■ Nicht alle Module unterstützen aktuelles Release Kilo ■ Ausprobieren ist einfach puppet module install stackforge-nova
  • 55. www.netways.de // blog.netways.de // @netways We love Open Source FRAGEN UND ANTWORTEN
  • 56. www.netways.de // blog.netways.de // @netways We love Open Source KONTAKTDATEN ? Vielen Dank für Ihre Aufmerksamkeit! NETWAYS GmbH Deutschherrnstrasse 15-19 90429 Nürnberg Tel: +49 911 92885-0 Fax: +49 911 92885-77 E-Mail: info@netways.de Website: www.netways.de Twitter: twitter.com/netways Facebook: facebook.com/netways Blog: blog.netways.de

Editor's Notes

  1. Install modules from source
  2. March 9, 2015 - April 16, 2015
  3. March 9, 2015 - April 16, 2015
  4. March 9, 2015 - April 16, 2015