how hudson hit puppet with a cucumber
DESCRIPTION
What sysadmins can learn from developer practices. Use Cucumber a Behavior Driven Test tool to test your puppet recipes. And automate it with CI tool Hudson. Talks was given at UKUUG by Julian Simpson (http://www.builddoctor.com) and Patrick Debois (http://jedi.be/blog)TRANSCRIPT
Hudson,Puppet,
Cucumber
Patrick DeboisJulian Simpson
23-25 March 2010http://www.ukuug.org/
Thursday 25 March 2010
Patrick:Belgian
http://www.flickr.com/photos/bookeditor/
Thursday 25 March 2010
Julian: New Zealand
http://www.flickr.com/photos/glutnix/
Thursday 25 March 2010
http://www.flickr.com/photos/timmygunz/213619310/sizes/l/
A story about an IT companynot so far away
Thursday 25 March 2010
Meet the manager http://www.flickr.com/photos/thomashawk/31562846/sizes/l/
Thursday 25 March 2010
http://www.flickr.com/photos/praziquantel/32023792/sizes/o/
Project Managers
Thursday 25 March 2010
http://www.flickr.com/photos/mikeygottawa/400926090/sizes/o/
Rock-Stardevelopers
Thursday 25 March 2010
http://www.flickr.com/photos/auntylaurie/2486555769/sizes/l/
Rock-Starsysadmins
Thursday 25 March 2010
Stubborn guys from operations
Thursday 25 March 2010
Typicalchain of command
http://www.flickr.com/photos/keepwaddling1/3088388506/sizes/l/
Thursday 25 March 2010
http://www.flickr.com/photos/anjibarton/3115066604/sizes/l/
Ops and Sysadmins usually get along
Thursday 25 March 2010
http://www.flickr.com/photos/charles_nouyrit/3102079345/sizes/o/
But devs and
sysadmins
oftendebate about
‘quality’
Thursday 25 March 2010
http://www.flickr.com/photos/poenaru/1304953088/sizes/o/
Devs:“You should
be able to make changes
faster in production”
Thursday 25 March 2010
http://www.flickr.com/photos/cenz/15108117/sizes/o/
Sysadmins: “You should Test More”
Thursday 25 March 2010
http://www.flickr.com/photos/timmygunz/213619310/sizes/l/
Fight!
Usually results in ....
Thursday 25 March 2010
http://www.flickr.com/photos/bulldogsrule/35701005/sizes/o/
Then the managers created silos
Thursday 25 March 2010
http://www.flickr.com/photos/elsie/3577264876/sizes/l/
Now only some deploysget through
Thursday 25 March 2010
But over time developers evolved
Thursday 25 March 2010
http://www.flickr.com/photos/gigijin/2400999295/sizes/o/
They looked on the internet
Thursday 25 March 2010
http://www.flickr.com/photos/dvorscak/498914813/sizes/l/
Found new ways
to automatethe tests
TDD, BDD
Thursday 25 March 2010
http://www.flickr.com/photos/eiriknewth/282275178/sizes/l/
New ways ofautomating
delivery
Thursday 25 March 2010
Solved theirfocus problem
Thursday 25 March 2010
http://www.flickr.com/photos/squeakywheel/264379350/
Kept operations on a leash
Thursday 25 March 2010
And what about the sysadmins?
http://www.flickr.com/photos/24443965@N08/2893354732/sizes/o/
Thursday 25 March 2010
http://www.flickr.com/photos/31525296@N06/2951515346/sizes/o/
Whenever a customer wanted some new server
Thursday 25 March 2010
http://www.flickr.com/photos/maistora/485092742/sizes/l/
They would go off and do their manual
installs
Thursday 25 March 2010
http://www.flickr.com/photos/brianatwebbmoto/3096643650/sizes/l/
Even in terrible conditions
Thursday 25 March 2010
http://www.flickr.com/photos/s9500/2490150854/sizes/l/
http://www.flickr.com/photos/fmpgoh/4123201107/
http://www.flickr.com/photos/eelcoc/809648617/sizes/l/
Just like their role models
Thursday 25 March 2010
http://www.flickr.com/photos/alanhogan/3094280494/sizes/o/
Then they startedto use kickstarts
Thursday 25 March 2010
http://www.flickr.com/photos/donpezzano/2061429048/sizes/o/
Automatedit with ‘ugly’ custom scripting
Thursday 25 March 2010
http://www.flickr.com/photos/extraketchup/408727662/sizes/o/
config mgt v1 =
Lcfg, CFEngine
Thursday 25 March 2010
What’s a DSL?
http://strongdogz.com/wp-content/uploads/2009/11/dog-1.png
Thursday 25 March 2010
Puppet is a DSL for systems administration
http://www.flickr.com/photos/schockwellenreiter/2184781281/sizes/l/
http://reductivelabs.com/products/puppet/
Thursday 25 March 2010
# verify owner & permissionsclass base_etc { file { "/etc/passwd": owner => root, group => root, mode => 644} file { "/etc/sudoers": owner => root, group => root, mode => 440}} # install apacheclass apache2 { # using the local package manager, install the reqd pkg package { "apache2": ensure => installed } service { "apache2": ensure => running, hasstatus => true, hasrestart => true, require => Package["apache2"], }} # default node is applied by _all_ connecting puppet clientsnode default { include base_etc} # specific config for host www01node www01 { # load the corresponding class defined above include apache2}
Read more: http://www.agileweboperations.com/configuration-management-introduction-to-puppet/#ixzz0iyVDqF89
Example Puppet Recipehttp://www.flickr.com/photos/paguma/4282178983/
Thursday 25 March 2010
http://www.flickr.com/photos/pmtorrone/65245861/sizes/l/
Chef
PuppetSysadmin
Config Management is evolving
http://www.opscode.com/chef/
Thursday 25 March 2010
http://www.flickr.com/photos/deannas_pics/3071841122/sizes/l/
Deploy new systems more often, faster and better reproducible
Thursday 25 March 2010
congruence
rebuild the whole node
convergence
making systemssimilar over time
http://www.flickr.com/photos/keirmoffatt/35306073/sizes/o/
http://www.infrastructures.org/papers/turing/turing.html
Models
http://www.flickr.com/photos/xjy/2269150356/sizes/o/
http://resources.metapress.com/pdf-preview.axd?code=yuce6e26a51dx9nh&size=largest
Thursday 25 March 2010
http://www.flickr.com/photos/richtpt/2173590295/sizes/l/
Provisioning Different Environments
Production
http://www.flickr.com/photos/idan586/3570542251/sizes/l/
Dev
Test
Thursday 25 March 2010
http://www.pet-dog-cat-supply-store.com/shop/shop_image/product/ad41a25245cbb895fbfbc950b1a0a3f5.jpg
Becoming agile
Thursday 25 March 2010
http://www.flickr.com/photos/stopbeingcarbon/231737755/sizes/o/
Cloud for testing configuration systems
Thursday 25 March 2010
http://www.flickr.com/photos/utherpendragonsphotos/14010402/sizes/o/
Sysadmins should look at problems from a development perspective
Thursday 25 March 2010
Devs should view it from operational point of view
Thursday 25 March 2010
Infrastructure is becoming code
http://www.flickr.com/photos/briandewitt/534143047/sizes/o/
Thursday 25 March 2010
So I’m a programmer now?
http://c0424311.cdn.cloudfiles.rackspacecloud.com/perfect-pet.jpg
Thursday 25 March 2010
If you’re a programmer, be a good one
http://www.flickr.com/photos/zippy/199990105/sizes/l/
Thursday 25 March 2010
http://www.flickr.com/photos/thelifeofshannon/385604955/sizes/o/
Version your scripts
Thursday 25 March 2010
Use a repository
http://www.flickr.com/photos/jeffreygutermanflickr/2674219854/Thursday 25 March 2010
http://www.flickr.com/photos/ideonexus/2897085942/sizes/l/
Testing
Thursday 25 March 2010
You might like
http://www.flickr.com/photos/the_harry_philes/217927389/sizes/l/
http://cukes.info/
Thursday 25 March 2010
Results
Thursday 25 March 2010
Gherkin
http://www.flickr.com/photos/lawriecate/2543688459/Thursday 25 March 2010
Validating Apache config
Thursday 25 March 2010
Mail Scenarios
http://github.com/albanpeignier/tryphon-puppet
TestTest
TestTest
TestTest
Thursday 25 March 2010
MailStep definitions
http://www.flickr.com/photos/sziliotti/3787189858/sizes/o/
Thursday 25 March 2010
http://www.flickr.com/photos/-konayuki-/3986635994/sizes/l/
Testingwill make the pains visible
Thursday 25 March 2010
http://www.flickr.com/photos/schneelocke/467551426/sizes/l/
Things will get dirty
Thursday 25 March 2010
It requires a strong stomach to keep it up
http://www.flickr.com/photos/82213449@N00/68608360/sizes/o/
Thursday 25 March 2010
http://www.flickr.com/photos/showbizsuperstar/4033321314/sizes/l/
Extra bonus
http://auxesis.github.com/cucumber-nagios/
: Cucumber-Nagios
$ cucumber-nagios ukuug.featurecritical: 0, warning: 0, 2 okay | passed=2, failed=0
Thursday 25 March 2010
Keep an overview on your changes
Thursday 25 March 2010
http://www.flickr.com/photos/sugarpond/2851411809/sizes/l/
Don’t change your infrastructure all at once
Thursday 25 March 2010
One pieceat a time
http://www.flickr.com/photos/lumpy_golightly/3479956609/sizes/l/
Thursday 25 March 2010
It’sstill a human
process
http://www.flickr.com/photos/shehal/2725353884/sizes/l/
Thursday 25 March 2010
http://www.flickr.com/photos/cvr/2914455499/
Tools help
Story!
Thursday 25 March 2010
http://www.flickr.com/photos/clofresh/3384877145/
Hudson facilitates the process
http://hudson-ci.org/
Thursday 25 March 2010
Puppet manifestsare tested
runs tests
invokes
Hudson
Puppet
Cucumber
provisions
=
OS
http://www.flickr.com/photos/tupwanders/89267092/sizes/l/
Thursday 25 March 2010
Tools are only a means to an end
http://images0.cafepress.com/product/36081430v1_225x225_Front.jpg
Thursday 25 March 2010
http://www.flickr.com/photos/42614915@N00/104222743/sizes/o/
Devs and Ops working together
Thursday 25 March 2010
Ops-Ops working together
Operating System
Network
Database
Thursday 25 March 2010
http://www.phantompub.com/images/CDPanel_Page_1.jpg
It’s about the business
Thursday 25 March 2010
http://www.flickr.com/photos/stephenpoff/2852616498/sizes/l/
Devops:a bit of everything
businessdeveloperssysadmins
Thursday 25 March 2010
http://www.devopsdays.org/http://planet.devops.info/http://www.devops.info/
#devops - twitter#infra-talk - irc
agile-system-administration - googlegroups
Puppetcamp Europe 2010 : Ghent, Belgium , on 27&28 May, 2010
Devopsdays US: Mountain View, California, US on Friday, June 25, 2010
Devopsdays Europe coming somewhere in October/November
Thursday 25 March 2010
http://www.flickr.com/photos/rosslittle/161718033/sizes/l/
Questions?
Thursday 25 March 2010
Patrick Debois@patrickdebois
[email protected]://jedi.be/blog
Julian [email protected]
@builddoctorhttp://www.build-doctor.com
Thank you!
http://www.flickr.com/photos/caliope-olga/4247576011/sizes/o/
Thursday 25 March 2010