Simple DevOps using
Jenkins (and more)
Ashok Modi (BTMash)
LA Drupal Meetup - Nov 2012
● About Jenkins
● Why not Jenkins?
● Why Jenkins?
○ Who is it for?
● Q & A
● Written in Java.
● Continuous Integration Software
○ Way to test code / functionality changes as they are
introduced to your software.
○ Send out test results on pass/fail/other criteria.
● Gradually evolved into software to also help
● Tons of plugins
○ Selenium, Phing
Why not Jenkins
● Resource heavy
○ Better to have a separate server for it.
● Setup heavy
○ Setup server, ssh keys, etc.
● Code heavy
○ Code your deployment steps.
● Need to learn another language
○ Shell scripting
○ Python (Fabric)
■ Drush (aegir, drush_deploy)
○ Ruby (capistrano, whiskey_disk)
● Use other deployment tool
○ Chef/Puppet (Ruby? create deb/rpm packages?)
● Create test builds easily.
○ No need to ssh into the server(s).
○ No need to remember steps.
● Run tests easily
○ Get emails / web reports of results.
○ Sent out to entire team.
● Create production builds easily.
○ See points above.
○ Also allow for other team members to deploy changes without actually
requiring server credentials.
● Easily create the builds.
○ Push of a button.
○ Cron task.
○ Only on code changes (automated).
Who is it for?
● If you host your own websites.
○ Own set of servers (on hand, vps, dedicated, etc)
● Even if you're on Pantheon/Acquia, useful
since you can test out your code locally
● Great tool regardless of actual application.
○ Drupal, Wordpress, Django...doesn't matter.
● Not scared of some code.
● Mig5 (http://mig5.net)
○ http://goo.gl/yiveJ (article)
○ https://github.com/mig5/aegir_cid (aegir)
○ http://goo.gl/1nMH9 (capistrano)
○ https://github.com/btmash/deploy_btm_aegir (aegir)
○ http://sachachua.com/blog/p/22290 (Testing)
migration-upgrade (test content migration)
○ http://goo.gl/QwtHM (additional slides with more
● About demo
○ Using Barracuda in testing/production. (http://drupal.
■ Various other things that I don't have to worry
■ ssh key to checkout git repo.
○ Jenkins / Fabric on build server.
■ Nginx for reverse-proxy and password auth.
● Only allow 'anonymous' user access to notify on git poll.
■ Small instance (256 megs)
■ ssh key to automatically log into
Q & A
Happy Diwali, New Year, and Thanksgiving :)