working with modules - henrik lindberg - puppetcamp europe '11

Post on 28-Nov-2014

3.230 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Video at http://youtu.be/vSCrLZas6to Learn More: http://puppetlabs.com/puppet/puppet-enterprise/ Henrik Lindberg - Current and Future Approaches to Working with Modules PuppetCamp Europe 2011: Amsterdam, Netherlands

TRANSCRIPT

Future Approaches to Working with Modules

Henrik Lindberg

The Vision

Starting out

Making Your Puppets

First attempt at running

Testing

Syntax Error : got ‘:’ expected ‘}’on line 1

Avoiding Complexity is Natural

Simplicity through Denial

Best Practices

• Use modules from the beginning• Use version control• Use sound design principles– think in terms of reuse– separation of concerns– organize in terms of specificity:• puppet, common, generic, application, site, instance…

A New Set of Issues

• What files goes where, and why• Manage dependencies• Collaboration within and between

organizations

Isn’t there an app for that?

Geppetto Project

• What is Geppetto?• Why did we create it?• What does it do?• How can I get it?• How can I contribute?

Geppetto Objectives

• Flatten the learning curve• Support Puppet best practices• Encourage sharing

What is in Geppetto

• Puppet Manifest editor• Module meta data editor• Incremental builders– validates puppet manifests– validates cross references (functions, types, definitions)– validates modulefiles– keeps metadata in sync (files and checksums)

• Project wizards• Streamlined module publication/consumption

to/from the Puppet Forge.

Puppet Manifest Editor

• Syntax coloring– set your own preferences

• Integrated fast validation / error markers• Quick fixes• Templates– add your own

• Code completion

Incremental Builders

• Validates Puppet Manifests• Validates cross references – functions, types, definitions, classes, parameters– understands visibility as defined by dependencies

• Validates modulefiles• Keeps metadata in sync– files and checksums in metadata.json

Project Wizards

• New Puppet Module• Get Module from Forge• Empty (blank) Puppet project• Export Module for upload to Forge

Packaging

• All in one download, ready to use– integrated with svn and git

• As Eclipse plugins• Command line interface

(enhanced puppet module tool).• Open source (Apache, EPL)

Demo

How to contribute

Collaboration / Roadmap for the Forge

• Collaboration – within and between organizations using the same mechanisms.

• Support full set of use cases– get/update, install/use, repair/modify, share/contribute

• Support additional composition patterns– Group/lineup– Fragments– Private vs. Exported (everything is API)

• Improved dependency management– install a module, also get its dependencies– only gives you latest version (problem: stability)– no version ranges

• Use of git

Resources…

Geppettohttps://github.com/cloudsmith/geppettogit@github.com:cloudsmith/geppetto.git

Geppetto Eclipse Update site http://download.cloudsmith.com/geppetto/updates

Forgehttp://forge.puppetlabs.com/

Puppetlabshttp://www.puppetlabs.com

Project Geppetto

Henrik Lindberg

top related