31
Upgrading Puppet HowTo PuppetCamp Düsseldorf Martin Alfke <[email protected]>

Upgrading Puppet CommitterConf Essen 2014

Embed Size (px)

DESCRIPTION

How to Upgrading Puppet Best practices Testing new Puppet Master version

Citation preview

  • 1. Upgrading PuppetHowToPuppetCamp DsseldorfMartin Alfke

2. Wer Martin Alfke Berlin Freelancer / Trainer Puppet @ Linuxhotel Puppet User Group Berlin 3. Poll!! Puppet 2.x? 4. Poll!! Puppet 2.x? Puppet 3.x? 5. Agenda Warum soll man Puppetaktualisieren? Funktioniert der altePuppet DSL code noch? Wie fhre ich das Upgradedurch? Was kommt in Puppet 4? 6. Warum upgraden? Sehr schneller ReleaseZyklus Best Practices Neue oder genderteFunktionalitt Endlich fallen alte Sachenraus Puppet 4 kommt! 7. Why should I upgradePuppet at all? Do you want security updates? Do you want to make use of new functionality?(e.g. automatic data bindings, environmentpath,future parser) Do you want to get support (community orenterprise)? 8. Funktionieren meineModule noch? Der eigene Puppet Code (Module)wurde vor einiger Zeit entwickeltund wird einfach benutzt. Der eigene Puppet Code basiertnoch auf alten Best Practices undfolgt nicht den neuen Style Guides Alle schauen immer in ihre PuppetLogfiles und prfen auf deprecationwarnings 9. Worauf muss man achten? 10. BADBest practice Multiple Vererbung (inherits) Verwendung von import Modifizieren von Remote Modules Benutzung von Variablen ohneAngabe des Scopes 11. Best practiceRestriktive Benutzung von Vererbung!Anstelle von Vererbung kann man oft parametrisierte Klassen verwenden.Aktuelle Best Practice ist nur noch Vererbung von params.pp!!BETTERclass ssh ($server = $ssh::params::server,$client = $ssh::params::client,$x11fwd = false,) inherits ssh::params {}!class { ssh::params::server => false,x11fwd => true,} 12. Best practiceInclude verwenden!Nutzt den Puppet Autoloader.!# ssh/manifests/init.ppclass ssh {include ssh::server}!# ssh/manifests/serverclass ssh::server {}!BETTER 13. Best practiceRemote Modules sindOpen-Source -> helft beimBesser machen.!Erstelle ein Issue oder PR wenneine Verbesserung rein soll.!Sorge dafr, dass die RemoteModules upgradefhig bleiben.BETTER 14. Best practiceSetze beim Verwenden von Variablenden Scope.!class ssh ($server) {}!class ssh::server {notify { $ssh::server: }}BETTER 15. Best practiceNutzt die Scope function inTemplates!!BETTERkey = !oder!key = !oder!key = true anstatt false) Environmentpath Funktionen in Puppet DSL Neue API fr Ruby Funktionen 31. Upgrading PuppetHowTo!Thank you.!Martin Alfke