Puppet Enterprise 3.8 End of Life – was muss beachtet werden?

puppet_logoDas Konfigurationsmanagement-Tool Puppet erscheint in zwei Versionen – Open Source und Enterprise. Für die Enterprise Variante pflegt Puppet einen Support Lifecycle, der genau vorgibt, welche Version bis zu welchem Zeitraum von Puppet im Rahmen der Enterprise Subscriptions supported wird.
Die genauen Zeiträume und Versionen kann man der folgenden Tabelle entnehmen:

Puppet Enterprise Versionen Start Mainstream Support Start Limited Support End-of-life
PE 2016.4 (LTS) October 20, 2016 October 2018 TBD
PE 2016.2 June 21, 2016 October 20, 2016 January 31, 2017
PE 2016.1 April 7, 2016 June 21, 2016 December 31, 2016
PE 2015.3 December 8, 2015 April 7, 2016 December 31, 2016
PE 2015.2 July 28, 2015 December 8, 2015 December 31, 2016
PE 3.8 Apr. 28, 2015 December 31, 2016 December 31, 2016

Was bedeutet das für meine Puppet Enterprise Umgebung?
Puppet stellt zum Ablauf des Supportzeitraums die Arbeiten an den entsprechenden Versionen ein. Hier werden keine Sicherheitsupdates oder Bugfixes mehr von Puppet erstellt. Für Puppet Enterprise stellt Puppet folgende Unterstützung für die jeweilige Supportphase zur Verfügung:
Mainstream Support: Alle Puppet Enterprise Versionen, welche sich in dieser Unterstützungsphase befinden, erhalten Sicherheitsupdates, Bugfixes und technischen Support im Rahmen der jeweiligen Subscription. Kunden erhalten hier den vollen Support durch Puppet.
Limited Support: Puppet Enterprise Versionen in dieser Phase erhalten keine Sicherheitsupdates und Bugfixes. Der Zugriff auf den Support von Puppet ist im Rahmen der jeweiligen Subscription noch voll gegeben.
End-of-life (EOL): Puppet Enterprise Versionen in dieser Phase erhalten keine Sicherheitsupdates und Bugfixes. Der Zugriff auf den Support von Puppet ist auf Hilfe im “wirtschaftlich sinnvollen Rahmen” beschränkt. Puppet empfiehlt allen Enterprise Kunden, auf eine aktuelle Version upzugraden.
Darüber hinaus veröffentlicht Puppet alle 18 Monate eine LTS (long term support) Version, welche Mainstream Support für 24 Monate beinhaltet. Die aktuelle LTS Version ist 2016.4, daher empfehlen wir allen PE 3.8 Kunden, auf diese Version zu wechseln. Hier unterstützen wir natürlich gerne.
Was bedeutet das für meine Puppet Open Source Umgebung?
Hier gelten die gleichen Auswirkungen, Puppet stellt für Puppet 3.8 oder älter keine Bugfixes oder Sicherheitsupdates mehr zur Verfügung. Falls Sie hier einen Puppet Open Source Supportvertrag von NETWAYS zur Verfügung haben, unterstützen wir Sie auch beim Einsatz der älteren Versionen, wobei wir hier natürlich dann auch keine Bugfixes oder Sicherheitsupdates zur Verfügung stellen können.
Daher gilt auch von uns die Empfehlung, die Puppet Umgebung aktuell zu halten und an ein Update zu denken. Gerne gehen wir Ihnen die aktuelle Umgebung durch und stellen einen Plan für das Upgrade der Puppet Umgebung zusammen.
Wir freuen uns auf Ihre Anfrage.

Martin Krodel
Martin Krodel
Head of Sales

Der studierte Volljurist leitet bei NETWAYS die Sales Abteilung und berät unsere Kunden bei ihren Monitoring- und Hosting-Projekten. Privat reist er gerne durch die Weltgeschichte und widmet sich seinem ständig wachsenden Fuhrpark an Apple Hardware.

Schleifen mit Puppet 4

War es bisher mit Puppet notwendig über eine Defined Ressource zu iterieren, ist dies nun in Puppet 4 in einer normalen Klasse möglich.
Als Beispiel nehmen wir eine internationale Firma. Diese Firma hat auf Ihrem Webserver Webseiten für Deutschland, England und Frankreich. nun möchte man für bestimmte Virtual Hosts den Webroot in dem die Seite liegt evtl. an einer anderen Stelle haben.
Dazu definieren wir einen Hash über den wir anschließend iterieren werden.
Folgender Hash kommt aus Hiera:

nginx::vhost::vhosts:
  'www.firma.de':
    webroot_ensure: 'present'
    web_root_directory: '/var/www/www.firma.de'
  'www.firma.co.uk':
    webroot_ensure: 'present'
    web_root_directory: '/var/www/www.firma.co.uk'
  'www.firma.fr':
    webroot_ensure: 'present'
    web_root_directory: '/opt/www/www.firma.fr'

Und hier der Puppetcode:

class nginx::vhost(
  Hash $vhosts = hiera_hash('nginx::vhost::vhosts', {}),
){
  file { ['/var/www', '/opt/www']:
    ensure  => directory,
    owner   => 'www-data'
    group   => 'www-data'
    mode    => '0755'
  }
  $vhosts.each |$key, $value| {
    $vhost_name = $key
    $webroot_ensure = $value['webroot_ensure']
    $web_root_directory = $value['web_root_directory']
    if $webroot_ensure == 'present' {
      $create_webroot = 'directory'
      $force_webroot = false
      $webroot_action = 'creating'
    }
    elsif $webroot_ensure == 'absent' {
      $create_webroot = 'absent'
      $force_webroot = true
      $webroot_action = 'removing'
    }
    else {
      fail("Unknown value ${webroot_ensure} for parameter 'webroot_ensure'")
    }
    file { "${webroot_action} Webroot ${web_root_directory} for ${vhost_name}":
      path    => $web_root_directory,
      ensure  => $create_webroot,
      force   => $force_webroot,
      owner   => 'www-data'
      group   => 'www-data'
      mode    => '0755'
    }
  }
}

Mit $vhosts.each wird über jedes Hash-Element iteriert. Der Key ist dabei der Domainname. In $value stehen dann die jeweiligen Unterschlüssel. Mit $value[‘Unterschlüssel’] greift man auf den Wert des jeweiligen Unterschlüssels im Hash zu.
Die Möglichkeit Schleifen in normalen Klassen zu nutzen ist definitiv eine der nützlichsten Neuerungen in der Puppet DSL. Viel Spass beim ausprobieren!

Vive la Puppet!

Nächste Woche ist es soweit: Während der ersten UEFA EM-Woche in Frankreich starten auch wir mit unserer neuen Fundamentals for Puppet Schulung über drei Tage. Beim Auftakt lernen die Teilnehmer die grundsätzliche Funktionsweise von Puppet kennen und werden Stück für Stück an die Modulentwicklung und natürlich auch -benutzung herangeführt. Aufgrund der besseren Platzverhältnisse findet das allerdings hier in Deutschland, genauer gesagt in Nürnberg, statt.
EM-PokalWer sich durch den Besuch des Fundamentals for Puppet Trainings qualifiziert, dem sei als logischer zweiter Schritt ein Besuch von Advanced Puppet nahegelegt. Dieser Kurs befasst sich mit erweitertem Moduldesign und geht auf die bestehenden Validierungs- und Testmöglichkeiten ein. Weiterhin werden in dem ebenfalls 3tägigen Training optionale Komponenten wie eigene Facts und Funktionen behandelt. Auch Datenseparierung mit Hiera und die Benutzung von Git als Versions Control System sind Thema.
Die nächste Advanced Puppet Schulung ist für Mitte Juli (11.07.-13.07.2016) angesetzt. Fussballinteressierten ist nun bestimmt aufgefallen das dies einem Tag nach dem EM-Finale in Paris startet, aber davon lassen wir uns nicht abschrecken. Wer’s doch nicht ganz schaffen sollte hat dann auch nochmal im November die Gelegenheit daran teilzunehmen.
In die Verlängerung geht es dann mit Scaling Puppet. Wie der Name schon sagt dreht sich hier alles um Hochverfügbarkeit und Lastverteilung der einzelnen Puppet Komponenten. Besonders große und verteilte Systeme erfordern tiefergehendes Wissen und ein paar Tipps und Tricks auf die während des 2tägigen Trainings eingegangen wird.
Auch bei uns haben sich ein paar Regeln geändert: Alle Puppet Trainings werden nun ausschließlich auf Basis der Open Source Variante durchgeführt! Natürlich gehen wir aber trotzdem noch auf die Unterschiede im Gegensatz zur Enterprise Variante ein. Außerdem sind die Schulungen auf die neue Major Version von Puppet – Puppet 4.x, fokussiert.
Ich freue mich über alle die in die nähere Auswahl für die Open Source Puppet Trainings kommen und wünsche den Fußball Begeisterten unter euch viel Spaß bei der Europameisterschaft in Frankreich, mit einem hoffentlich zufrieden stellenden Ausgang…

Markus Waldmüller
Markus Waldmüller
Lead Senior Consultant

Markus war bereits mehrere Jahre als Sysadmin in Neumarkt i.d.OPf. und Regensburg tätig. Nach Technikerschule und Selbständigkeit ist er nun Anfang 2013 bei NETWAYS als Lead Senior Consultant gelandet. Wenn er nicht gerade die Welt bereist, ist der sportbegeisterte Neumarkter mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Mountainbike oder am Baggersee zu finden.