Puppet Camp Ghent 2013

Post on 21-Jan-2015

4,014 views 0 download

Tags:

description

Deploying Nginx with Puppet - Pedro Pessoa http://www.serverdensity.com/puppetcamp/

transcript

Adding Adding Forge modulesForge modules

to to

http://www.rankpop.com/you-need-to-start-structuring-your-blog-posts-asap/

Puppet EnterprisePuppet Enterprise

+15TB / mth

+1bn docs /mth

2-5k inserts/s @ 3ms

12K RPM @ 140ms

Servers

HTTP Load Balancer – 4x

Apache - 14x

Build - 2x

MongoDB - 20x data, 12x routing, 6x configuration, 1x arbiter,

HTTP Load Balancerfrom 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)

http://www.flickr.com/photos/conskeptical/

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

Going to the Forge

Going to the Forge

A) get the actual code in

Integration

puppet module install puppetlabs/nginx(or)git submodule add https://github.com/puppetlabs/puppetlabs­nginx.git 

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)

B) run it on existing nodes

class serverdensity­nginx{    class { 'nginx': }    nginx::resource::upstream {       'socky_rack':          ensure => present,          members => split( $lbTargetHostsSocky, ',' ),    }(...)

Integration

Our solution

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

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

Alternatives

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

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

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

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

Pedro Pessoa

pessoa@serverdensity.com

http://serverdensity.com/puppetcamp/