<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="margin: 0px; font-size: 12px; ">Recap of today's DevOps Meetup</div><div style="margin: 0px; font-size: 12px; "><b><br></b></div><div style="margin: 0px; font-size: 12px; "><b><br></b></div><div style="margin: 0px; font-size: 12px; "><b>Foreman</b></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">Hannes did a recap on his experiences with Foreman so far.</div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">Foreman automates PXE/DHCP/TFTP for bare metal deployments and also has quite extensive Puppet integration.</div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">It can act as an external node classifier which replaces the usual node classification being done in the manifest files on the puppet master. On top of that it provides a nice overview of the actions done by puppet, when nodes have been updated, etc. including PHB-compatible pie charts ;)</div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">For all the things you can configure in there it offers an audit interface to see what has been changed by whom and when.</div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">One killer feature was a fast and flexible search interface for puppet facts - that can be real handy when you're digging around in your infrastructure.</div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; "><a href="http://theforeman.org/projects/foreman/wiki/Foreman_Architecture">http://theforeman.org/projects/foreman/wiki/Foreman_Architecture</a></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; "><b>Rundeck</b></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">He also showed rundeck a bit which is basically a web-based pssh with rudimentary workflow support, flags and puppet classes as classifier for servers on which commands should be run. Auditing is also part of the package allowing people to review what has been done on the servers on a (semi-)automatic fashion.</div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; "><a href="http://rundeck.org/">http://rundeck.org/</a></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; "><b>Puppet</b></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; "><u>Testing</u></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">To test changes in puppet modules he uses a combination of Jenkins, rspec-puppet and puppet-lint. He's got one repository and job per module, automating creation of new Jenkins jobs by taking inspiration from jenkins-debian-glue ;)</div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; "><a href="http://rspec-puppet.com/">http://rspec-puppet.com/</a></div><div style="margin: 0px; font-size: 12px; "><a href="http://puppet-lint.com/">http://puppet-lint.com/</a></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; "><u>Interesting stuff</u></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">The standard library:</div><div style="margin: 0px; font-size: 12px; "><a href="https://github.com/puppetlabs/puppetlabs-stdlib">https://github.com/puppetlabs/puppetlabs-stdlib</a></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">facts-dot-d:</div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">Supply whatever you want as fact!</div><div style="margin: 0px; font-size: 12px; "><a href="https://github.com/ripienaar/facter-facts/tree/master/facts-dot-d">https://github.com/ripienaar/facter-facts/tree/master/facts-dot-d</a></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">noop:</div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">Don't do stuff automatically, merely report that It Is Necessary</div><div style="margin: 0px; font-size: 12px; "><a href="http://www.puppetcookbook.com/posts/remove-all-unmanaged-host-entries.html">http://www.puppetcookbook.com/posts/remove-all-unmanaged-host-entries.html</a></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">review of changes:</div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">Puppet lacks support for flagging changes as needing interactive approval on the server.</div><div style="margin: 0px; font-size: 12px; "><a href="http://projects.puppetlabs.com/projects/1/wiki/Change_Management">http://projects.puppetlabs.com/projects/1/wiki/Change_Management</a></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; "><b>Random things:</b></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">Easy fix for the mysql swap insanity problem:</div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">Fix: <a href="http://blog.wl0.org/2011/03/how-to-start-mysqld-using-numactl/">http://blog.wl0.org/2011/03/how-to-start-mysqld-using-numactl/</a></div><div style="margin: 0px; font-size: 12px; ">Problem: <a href="http://blog.jcole.us/2010/09/28/mysql-swap-insanity-and-the-numa-architecture/">http://blog.jcole.us/2010/09/28/mysql-swap-insanity-and-the-numa-architecture/</a></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">Automatically create Jenkins jobs for feature branches - currently only github support</div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; "><a href="https://github.com/pxlpnk/kraken-build">https://github.com/pxlpnk/kraken-build</a></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; "><b>Interesting conferences in October:</b></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">Velocity EU in London, 2nd to 4th</div><div style="margin: 0px; font-size: 12px; "><a href="http://velocityconf.com/velocityeu2012/">http://velocityconf.com/velocityeu2012/</a></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">Highlight: <a href="http://velocityconf.com/velocityeu2012/public/schedule/grid/2012-10-02">http://velocityconf.com/velocityeu2012/public/schedule/grid/2012-10-02</a></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">Open Source Monitoring Conference in Nuremberg, 17th to 18th</div><div style="margin: 0px; font-size: 12px; "><a href="http://www.netways.de/osmc/osmc_2012/programm/">http://www.netways.de/osmc/osmc_2012/programm/</a></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">Highlight: <a href="http://www.netways.de/index.php?id=3442">http://www.netways.de/index.php?id=3442</a> ;)</div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">PostgreSQL conference in Prague, 23rd to 26th</div><div style="margin: 0px; font-size: 12px; "><a href="http://2012.pgconf.eu/">http://2012.pgconf.eu/</a></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">Highlight: <a href="http://www.postgresql.eu/events/schedule/pgconfeu2012/session/331-multimaster-replication-applications-comparison-implementation/">http://www.postgresql.eu/events/schedule/pgconfeu2012/session/331-multimaster-replication-applications-comparison-implementation/</a></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; min-height: 14px; "><br></div><div style="margin: 0px; font-size: 12px; ">And finally - the other 50% of internet traffic: <a href="http://www.nanog.org/meetings/nanog54/presentations/Tuesday/Labovitz.pdf">http://www.nanog.org/meetings/nanog54/presentations/Tuesday/Labovitz.pdf</a></div><div style="margin: 0px; font-size: 12px; "><br></div><div style="margin: 0px; font-size: 12px; ">Thanks to Maciej for organising everything, Hanndes for the thorough presentations and Michi for keeping notes :)</div><div style="margin: 0px; font-size: 12px; "><br></div><div style="margin: 0px; font-size: 12px; "><br></div><div style="margin: 0px; font-size: 12px; ">all the best,</div><div style="margin: 0px; font-size: 12px; ">Michael</div></body></html>