Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12
Upcoming SlideShare
Loading in...5

Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12



Julien Rottenberg, CityGrid. Presentation of the tools and workflow for our puppet setup. How puppet helps us managing 500+ servers in a hybrid environment O&O Datacenter and EC2, hands free. Watch ...

Julien Rottenberg, CityGrid. Presentation of the tools and workflow for our puppet setup. How puppet helps us managing 500+ servers in a hybrid environment O&O Datacenter and EC2, hands free. Watch the video at http://youtu.be/FPwga7HwomM

PuppetCamp LA, May '12.



Total Views
Views on SlideShare
Embed Views



1 Embed 1

https://puppetlabs.com 1


Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12 Puppet@Citygrid - Julien Rottenberg - PuppetCamp LA '12 Presentation Transcript

  • Puppet @ Citygrid PuppetCamp LA 2012
  • Who am I ?My name is Julien RottenbergRecovering System AdministratorPuppet user since 2009 (at GN)I like to write code and answer questions
  • Puppet promises No need to ssh to a server to understand how it worksLook at the puppet code
  • "Those who cannot remember thepast are condemned to repeat it." George Santayanaliterally... go to a server, run `history` as root.
  • Puppet promisesGuarantee that a server is setup exactly thesame way on all environments
  • Puppet promises
  • Puppet promisesAll the building stepsare auditable - SDLCDrift managementOpen knowledge, noblackbox
  • Puppet promises and finally...
  • Toolset Open source tools : ● No need to reinvent the wheel ● You are not alone with that problem, get help
  • Toolset
  • Toolset puppet doc ● validate code (puppet parser validate) ● produce html doc Running on commit through Jenkins ~ 10 sec
  • Toolset
  • Toolset puppet-lint == coding standard Takes ~ 2 min Part of the Ci-Game
  • Toolsettrunk = work in progress - could break but fixASAPproduction = tested code - do not break
  • Toolset Trunk --> Production (CherryPicking) We use svnmerge.py Code in progress = technical debt It needs to be merged and deployed or reverted Fail the build if pending Cherry Picks > 30 Cant CherryPick yourself ~ code review
  • Toolset Svn even with svnmerge has limitations Git ?
  • Toolset VagrantSits on top of VirtualboxAllows to go crazyTest, experiment, share configured box$ vagrant provision == puppet apply
  • ToolsetnVentoryAs an External Node ClassifierClasses: - default_install - gcd
  • Toolset nVentoryHelper to build configuration files, etc.ie replacement for Stored Config
  • ToolsetForemanApi for puppet status, visibility of puppetrun (Failed attempt on ENC - probably pebkac)
  • Toolset Man ! thats a lot of tools !1!!And its fine, design by contract.Each application does one thingand was designed to do thatthing only (so does it well)Pipe them Dennis Ritchie
  • ToolsetBoto for ● ec2 ● route53 ● elb ● sqs ● sns River dolphin native to the amazon WP
  • Culture cloudEC2 glitches, expect themIt used to `just work` : ● gmond (split view dns side effect, using gmetric) ● jmx (need to specify public name at runtime) ● ELB pseudo load balancer ● Bad neighbors
  • Culture cloud
  • Culture cloud# Build 10 nodes$ create_ec2_instance.py -e dev -s m1.medium -c thd -n 10# assign them to the hadoop::datanode class (specific install on top of our vanilla)$ nv --name aws1devthd --addtonodegroup hadoop::datanode# send traffic & enable monitoring (configs to be updated on the next puppet run)$ nv --name aws1devthd --set status=inservice One AMI to rule them all (map set per region)
  • Culture Collaborate
  • Culture Collaborate "If the companys doing well and people dont hate each other, youre probably doing ok." John Allspaw, speaking at Devopsdays 2011 MV.
  • You guys !Make it better :- Integrated function for secrets (no get_var orhiera + gpg)Something like an encrypted data luggage - puppet agent stability, puppetd vs cron ?
  • Guys !
  • Yesterday...
  • Two last things... On call rotation side effect Dont be a human keyboard
  • Shameless plugWe aggregate advertising & content from localbusinesses and distribute across our network ofweb & mobile sites ● Ingest : Hadoop & Cassandra ● Serve : Solr & MongoDb + Tomcat ● Code : Java mostly
  • Q/A This page : goo.gl/soxEspuppet doc : http://docs.puppetlabs.com/guides/style_guide.html#puppet-docpuppet-lint : http://puppet-lint.com/Jenkins : http://jenkins-ci.org/svn strategy : http://weblogs.java.net/blog/johnsmart/archive/2009/05/ci_branching_an.htmlsvnmerge.py : http://www.orcaware.com/svn/wiki/Svnmerge.pyvagrant : http://vagrantup.com/nventory : http://sourceforge.net/apps/trac/nventory/wikiforeman : http://theforeman.org/boto : https://github.com/boto/botoDont be an Ahole : http://www.hollenback.net/DevOpsMeansDontBeAnAholeDevelopers on call - Mitchell Hashimoto : http://vimeo.com/31367609Dont be a human keyboard : http://sysadvent.blogspot.com/2010/12/day-13-dont-be-human-keyboard.htmlCitygrid is hiring : http://careers.citygrid.com/Puppet Master LA User Group : http://www.meetup.com/LAPMUG/