際際滷

際際滷Share a Scribd company logo
Adding
                                                Forge modules
                                                          to

                             Puppet Enterprise


http://www.rankpop.com/you-need-to-start-structuring-your-blog-posts-asap/
Puppet Camp Ghent 2013
+15TB / mth
+1bn docs /mth
2-5k inserts/s @ 3ms
12K RPM @ 140ms
Servers

HTTP Load Balancer C 4x
Apache - 14x
Build - 2x
MongoDB - 20x data,
          12x routing,
          6x configuration,
          1x arbiter,
HTTP Load Balancer
             from Pound to nginx
New product : new load balancer

nginx :
- WebSockets
- SPDY standard

keep :
- manifests pulled from our Gihub repo by
the puppet master
- use of Puppet Console and Live Management
to trigger transient changes
Reinventing the wheel
                                              (don't)



Writing our nginx manifest?
- add yet another one to the collection


community reach?
- whether our problem had already been solved
- or a kick start where we could stand on

http://www.flickr.com/photos/conskeptical/
Going to the Forge
Going to the Forge
Integration

A) get the actual code in
puppet?module?install?puppetlabs/nginx
(or)
git?submodule?add?https://github.com/puppetlabs/puppetlabs?nginx.git?




B) run it on existing nodes

no parameterised classes on PE Console
(or)
merge our site.pp (which is empty) and the console,
it being an ENC and all - (how-merging-works)
Integration

Our solution


class?serverdensity?nginx
{
????class?{?'nginx':?}
????nginx::resource::upstream?{
???????'socky_rack':
??????????ensure?=>?present,
??????????members?=>?split(?$lbTargetHostsSocky,?','?),
????}
(...)
nginx 'on-the-fly' update




class?serverdensity?nginx
{
????class?{?'nginx':?}
????nginx::resource::upstream?{
???????'socky_rack':
??????????ensure?=>?present,
??????????members?=>?split(?$lbTargetHostsSocky,?','?),
????}
(...)
nginx 'on-the-fly' update
nginx 'on-the-fly' update
nginx 'on-the-fly' update
nginx 'on-the-fly' update
Alternatives


Puppet Labs nginx module:
https://github.com/serverdensity/puppetlabs-nginx
forked James Fryman's module:
https://github.com/jfryman/puppet-nginx

pick the later? Puppet Labs last update - 30th June
2011.

Forge namespace Puppet Labs (kick off early 2013?):
- best-in-class
- actively maintained


https://github.com/serverdensity/puppetlabs-nginx
Pedro Pessoa

pessoa@serverdensity.com




http://serverdensity.com/puppetcamp/

More Related Content

Puppet Camp Ghent 2013