<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kartar.Net &#187; puppet</title>
	<atom:link href="http://www.kartar.net/tag/puppet/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kartar.net</link>
	<description>the truth about a man lies in what he hides</description>
	<lastBuildDate>Fri, 30 Jul 2010 00:25:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Puppet Camp &#8211; San Francisco 2010</title>
		<link>http://www.kartar.net/2010/07/puppet-camp-san-francisco-2010/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=puppet-camp-san-francisco-2010</link>
		<comments>http://www.kartar.net/2010/07/puppet-camp-san-francisco-2010/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 00:25:22 +0000</pubDate>
		<dc:creator>kartar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[puppetcamp]]></category>

		<guid isPermaLink="false">http://www.kartar.net/?p=2399</guid>
		<description><![CDATA[Online event registration for Puppet Camp 2010: San Francisco]]></description>
			<content:encoded><![CDATA[<div style="width:195px; text-align:center;" ><iframe  src="http://www.eventbrite.com/countdown-widget?eid=781525564" frameborder="0" height="487" width="220" marginheight="0" marginwidth="0" scrolling="no" ></iframe>
<div style="font-family:Helvetica, Arial; font-size:10px; padding:5px 0 5px; margin:2px; width:195px; text-align:center;" ><a style="color:#ddd; text-decoration:none;" target="_blank" href="http://www.eventbrite.com/features?ref=ecount" >Online event registration</a><span style="color:#ddd;" > for </span><a style="color:#ddd; text-decoration:none;" target="_blank" href="http://puppetcamp-2010-sfo.eventbrite.com?ref=ecount" >Puppet Camp 2010: San Francisco</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.kartar.net/2010/07/puppet-camp-san-francisco-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Puppet 2.6.0 Release Candidate 1 available!</title>
		<link>http://www.kartar.net/2010/07/puppet-2-6-0-release-candidate-1-available/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=puppet-2-6-0-release-candidate-1-available</link>
		<comments>http://www.kartar.net/2010/07/puppet-2-6-0-release-candidate-1-available/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 07:09:59 +0000</pubDate>
		<dc:creator>kartar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[puppet]]></category>

		<guid isPermaLink="false">http://www.kartar.net/?p=2374</guid>
		<description><![CDATA[Okay Puppeteers &#8230;. please get testing the new and much anticipated 2.6.0 release of Puppet. The 2.6.0 release is a major feature release and includes a huge variety of new features, fixes, updates and enhancements.  These include the complete cut-over from XMLRPC to the REST API, basic Windows support, numerous language enhancements, a complete rewrite of the [...]]]></description>
			<content:encoded><![CDATA[<p>Okay Puppeteers &#8230;. please get testing <a href="http://groups.google.com/group/puppet-users/browse_thread/thread/98762c2316e4e03b">the new and much anticipated 2.6.0 release of Puppet</a>.</p>
<p>The 2.6.0 release is a major feature release and includes a huge variety of new features, fixes, updates and enhancements.  These include the complete cut-over from XMLRPC to the REST API, basic Windows support, numerous language enhancements, a complete rewrite of the events and reporting system, an internal Ruby DSL, a single binary, a new HTTP report processor, and a myriad of other enhancements.</p>
<p>You can read the full release notes at:</p>
<p><a rel="nofollow" href="http://www.google.com/url?sa=D&amp;q=http://projects.puppetlabs.com/projects/puppet/wiki/Release_Notes&amp;usg=AFQjCNFiBngjoX7ha8RWQTD9zw3TTLAlmw" target="_blank">http://projects.puppetlabs.com/projects/puppet/wiki/Release_Notes</a></p>
<p>And download the RC at:</p>
<p><a rel="nofollow" href="http://www.google.com/url?sa=D&amp;q=http://puppetlabs.com/downloads/puppet/puppet-2.6.0rc1.tar.gz&amp;usg=AFQjCNFhkCADskcpqoNcJupCs4sC4soTKA" target="_blank">http://puppetlabs.com/downloads/puppet/puppet-2.6.0rc1.tar.gz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kartar.net/2010/07/puppet-2-6-0-release-candidate-1-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2010: Puppet Tutorial Pre-work</title>
		<link>http://www.kartar.net/2010/07/oscon-2010-puppet-tutorial-pre-work/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=oscon-2010-puppet-tutorial-pre-work</link>
		<comments>http://www.kartar.net/2010/07/oscon-2010-puppet-tutorial-pre-work/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 21:43:28 +0000</pubDate>
		<dc:creator>kartar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://www.kartar.net/?p=2355</guid>
		<description><![CDATA[I&#8217;m running a beginner&#8217;s introduction to Puppet at OSCON 2010 and attendees need to do some basic set-up prior to the tutorial. 1.  We&#8217;ll be using a CentOS 5.4 image as the basis for the tutorial &#8211; you can download it from here.  If you don&#8217;t want to download the image you can create your [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m running a <a title="Puppet's tutorial OSCON 2010" href="http://www.oscon.com/oscon2010/public/schedule/detail/13687">beginner&#8217;s introduction to Puppet at OSCON 2010</a> and attendees need to do some basic set-up prior to the tutorial.</p>
<p>1.  We&#8217;ll be using a CentOS 5.4 image as the basis for the tutorial &#8211; you can download it from <a title="Tutorial image" href="http://www.puppetlabs.com/downloads/training/centos-5.4-0.25.4.tar.gz">here</a>.  If you don&#8217;t want to download the image you can create your own by installing CentOS 5.4 and <a title="EPEL" href="http://fedoraproject.org/wiki/EPEL">adding the EPEL repository</a>.</p>
<p>2.  You can run it in <a href="http://www.kartar.net/tag/vmware/" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmware">VMWare</a> Player, <a href="http://www.kartar.net/tag/vmware/" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmware">VMWare</a> Fusion, etc (or <a title="VirtualBox downloads" href="http://www.virtualbox.org/wiki/Downloads">VirtualBox</a> &#8211; for <a href="http://www.kartar.net/tag/virtualbox/" class="st_tag internal_tag" rel="tag" title="Posts tagged with virtualbox">VirtualBox</a> you need to use the Virtual Media Manager to add the vmdk file and <a title="VirtualBpx" href="http://www.virtualbox.org/manual/ch01.html#gui-createvm">then create a new VirtualBox machine using that drive image</a>.)</p>
<p>NOTE: Apparently there are some issues with the image and <a href="http://www.kartar.net/tag/virtualbox/" class="st_tag internal_tag" rel="tag" title="Posts tagged with virtualbox">VirtualBox</a>.  We&#8217;re looking into it.</p>
<p>I will provide a small number of USB keys with the image on it and copies of <a href="http://www.kartar.net/tag/virtualbox/" class="st_tag internal_tag" rel="tag" title="Posts tagged with virtualbox">VirtualBox</a> but generally expect that people will download and install the requirements prior to the tutorial.</p>
<p>You can elect to use your own host but if so I can&#8217;t guarantee that you&#8217;ll be able to do everything in the tutorial or that if you have issues that we&#8217;ll be able to resolve them during the tutorial.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kartar.net/2010/07/oscon-2010-puppet-tutorial-pre-work/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Status of Puppet on Windows</title>
		<link>http://www.kartar.net/2010/06/status-of-puppet-on-windows/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=status-of-puppet-on-windows</link>
		<comments>http://www.kartar.net/2010/06/status-of-puppet-on-windows/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 15:17:22 +0000</pubDate>
		<dc:creator>kartar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[puppet]]></category>

		<guid isPermaLink="false">http://www.kartar.net/?p=2332</guid>
		<description><![CDATA[Lots of people are aware that we&#8217;re porting Puppet to Windows. David Schmitt and Markus are doing all the hard work for it and David has just provided an update on his status. If you&#8217;re interested in helping out checkout his repository on GitHub to see the current efforts and do some testing.]]></description>
			<content:encoded><![CDATA[<p>Lots of people are aware that we&#8217;re porting Puppet to Windows.  David Schmitt and Markus are doing all the hard work for it and <a href="http://dasz.at/index.php/2010/06/porting-puppet-to-windows/">David has just provided an update on his status</a>. </p>
<p>If you&#8217;re interested in helping out checkout <a href="http://github.com/DavidS/puppet/tree/feature/master/windows">his repository on GitHub to see the current efforts</a> and do some testing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kartar.net/2010/06/status-of-puppet-on-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Puppet Module Repository isn&#8217;t just for modules</title>
		<link>http://www.kartar.net/2010/06/puppet-module-repository-isnt-just-for-modules/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=puppet-module-repository-isnt-just-for-modules</link>
		<comments>http://www.kartar.net/2010/06/puppet-module-repository-isnt-just-for-modules/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 00:08:15 +0000</pubDate>
		<dc:creator>kartar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[is]]></category>
		<category><![CDATA[on]]></category>
		<category><![CDATA[provider]]></category>
		<category><![CDATA[repo]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[type]]></category>

		<guid isPermaLink="false">http://www.kartar.net/?p=2329</guid>
		<description><![CDATA[You can store more than just your modules at the Forge.   I just added my types and providers to my collection of modules at the new Puppet Module Forge.  I&#8217;d love to all those people maintaining types and providers, functions, and facts add theirs to the Forge also.  It&#8217;s a cool way to share [...]]]></description>
			<content:encoded><![CDATA[<p>You can store more than just your modules at the Forge. <img src='http://www.kartar.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   I just added my types and providers to <a title="James' modules at the Forge" href="http://forge.puppetlabs.com/users/jamtur01" target="_blank">my collection of modules</a> at the new <a title="Puppet module forge" href="http://forge.puppetlabs.com" target="_blank">Puppet Module Forge</a>.  I&#8217;d love to all those people maintaining types and providers, functions, and facts add theirs to the Forge also.  It&#8217;s a cool way to share your <a href="http://www.kartar.net/tag/code/" class="st_tag internal_tag" rel="tag" title="Posts tagged with code">code</a> (and the site allows you to provide links back to your <a href="http://www.kartar.net/tag/code/" class="st_tag internal_tag" rel="tag" title="Posts tagged with code">code</a> <a href="http://www.kartar.net/tag/repository/" class="st_tag internal_tag" rel="tag" title="Posts tagged with repository">repository</a> and ticketing system so user&#8217;s can report bugs).  In time I hope most people&#8217;s environments will consist of the core types and providers bundled with Puppet and a selection of cool <a href="http://www.kartar.net/tag/code/" class="st_tag internal_tag" rel="tag" title="Posts tagged with code">code</a> generated by the community and sourced from the Puppet Forge.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kartar.net/2010/06/puppet-module-repository-isnt-just-for-modules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Puppet Forge in beta!</title>
		<link>http://www.kartar.net/2010/05/puppet-forge-in-beta/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=puppet-forge-in-beta</link>
		<comments>http://www.kartar.net/2010/05/puppet-forge-in-beta/#comments</comments>
		<pubDate>Thu, 27 May 2010 12:14:55 +0000</pubDate>
		<dc:creator>kartar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[is]]></category>
		<category><![CDATA[on]]></category>
		<category><![CDATA[provider]]></category>
		<category><![CDATA[repo]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[type]]></category>

		<guid isPermaLink="false">http://www.kartar.net/?p=2325</guid>
		<description><![CDATA[The Puppet Forge AKA the Puppet Module Repository is live and operational.  It&#8217;s a store of Puppet modules (and types and providers) that allows you to share your awesome code and modules with others. It also comes with the puppet-module tool that allows you to build modules for, manage and install modules from the forge.  [...]]]></description>
			<content:encoded><![CDATA[<p>The Puppet Forge AKA the<a href="http://forge.puppetlabs.com/"> Puppet Module Repository</a> is live and operational.  It&#8217;s a store of Puppet modules (and types and providers) that allows you to share your awesome <a href="http://www.kartar.net/tag/code/" class="st_tag internal_tag" rel="tag" title="Posts tagged with code">code</a> and modules with others.</p>
<p>It also comes with the puppet-module tool that allows you to build modules for, manage and install modules from the forge.  You can install puppet-module via a gem:</p>
<pre>
$ sudo gem install puppet-module
</pre>
<p>Both the site and tool are in public beta right now so hammer away at it and tell us what you think!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kartar.net/2010/05/puppet-forge-in-beta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introducing Scaffold</title>
		<link>http://www.kartar.net/2010/05/introducing-scaffold/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=introducing-scaffold</link>
		<comments>http://www.kartar.net/2010/05/introducing-scaffold/#comments</comments>
		<pubDate>Tue, 04 May 2010 06:57:49 +0000</pubDate>
		<dc:creator>kartar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.kartar.net/?p=2316</guid>
		<description><![CDATA[I&#8217;ve just written and released Scaffold &#8211; a very simple Puppet scaffolding templating tool. It integrates with Puppet to create a variety of Puppet configuration and objects. You can install it via a gem currently: $ sudo gem install scaffold It requires Puppet and will install the templater gem as a dependency. You can then [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just written and released <a href="http://github.com/jamtur01/puppet-scaffold">Scaffold</a> &#8211; a very simple Puppet scaffolding templating tool.  It integrates with Puppet to create a variety of Puppet configuration and objects.</p>
<p>You can install it via a gem currently:</p>
<p><code>$ sudo gem install scaffold</code></p>
<p>It requires Puppet and will install the templater gem as a dependency.</p>
<p>You can then use it like so:</p>
<p>* Basic Puppet configuration (creates site.pp, fileserver.conf and supporting material in the Puppet configuration directory):</p>
<p><code>$ scaffold puppet</code></p>
<p>* Modules (it checks the Puppet module path and creates the module in the first module path it finds):</p>
<p><code>$ scaffold module <em>module_name</em></code></p>
<p>* Nodes (assumes you&#8217;ve created the basic Puppet configuration and creates nodes in Puppet configuration directory):</p>
<p><code>$ scaffold node <em>node_name</em></code></p>
<p>* Classes and Definitions:</p>
<p><code>$ scaffold class <em>module_name class_name</em></code></p>
<p><code>$ scaffold define <em>module_name define_name</em></code></p>
<p>* Functions:</p>
<p><code>$ scaffold function <em>module_name function_name function_type</em></code></p>
<p>The function type can be statement or rvalue and defaults to statement if omitted.</p>
<p>* Types and providers:</p>
<p><code>$ scaffold type <em>module_name type_name</em></code></p>
<p>I&#8217;d welcome feedback and ideas (and <a href="http://www.kartar.net/tag/code/" class="st_tag internal_tag" rel="tag" title="Posts tagged with code">code</a>!) on how to extend it.  The idea is that once we&#8217;ve got a strong working tool we&#8217;ll look to integrate the result into Puppet mainline as a provisioning and templating system.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kartar.net/2010/05/introducing-scaffold/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Yes Mum, still behaving</title>
		<link>http://www.kartar.net/2010/04/yes-mum-still-behaving/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=yes-mum-still-behaving</link>
		<comments>http://www.kartar.net/2010/04/yes-mum-still-behaving/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 06:18:29 +0000</pubDate>
		<dc:creator>kartar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[behavioural driven development]]></category>
		<category><![CDATA[behavioural driven infrastructure]]></category>
		<category><![CDATA[configuration management]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[test driven development]]></category>

		<guid isPermaLink="false">http://www.kartar.net/?p=2130</guid>
		<description><![CDATA[In a previous post I talked about using Cucumber and Cucumber-Nagios to do what I crudely called &#8220;Behaviour Driven Infrastructure&#8221;. In that post I gave you a very brief introduction to Cucumber&#8217;s syntax.  This post explores another piece of syntax called outlining that allows you to shortcut some of your testing scenarios. In the tests [...]]]></description>
			<content:encoded><![CDATA[<p>In <a title="Yes Mum, I'll behave" href="http://www.kartar.net/2009/12/yes-mum-ill-behave-beginning-behaviour-driven-infrastructure/" target="_blank">a previous post</a> I talked about using <a href="http://cukes.info/" target="_blank">Cucumber</a> and <a href="http://holmwood.id.au/~lindsay/2009/02/23/web-app-integration-testing-for-sysadmins-with-cucumber-nagios/" target="_blank">Cucumber-Nagios</a> to do what I crudely called &#8220;Behaviour Driven Infrastructure&#8221;. In that post I gave you a very brief introduction to Cucumber&#8217;s syntax.  This post explores another piece of syntax called outlining that allows you to shortcut some of your testing scenarios.</p>
<p>In the tests we demonstrated you could potentially end up with some quite repetitive scenarios, for example:</p>
<pre>  Scenario: Visiting home page
    When I go to http://www.google.com
    Then the request should succeed</pre>
<p>If we have multiple websites we can end up with repetitive scenarios like:</p>
<pre>  Scenario: Visiting home page
    When I go to http://www.google.com
    Then the request should succeed
  Scenario: Visiting home page
    When I go to http://www.nextsite.com
    Then the request should succeed
  Scenario: Visiting home page
    When I go to http://www.anothersite.com
    Then the request should succeed
</pre>
<p>We can summarise this series of scenarios with a nifty bit of refactoring using some Gherkin (Cucumber&#8217;s DSL) syntax called an Outline.  Using an outline we can create a kind of template like so:</p>
<pre>Scenario Outline: Home
  When I go to &lt;url&gt;
  Then the request should succeed
  Examples:
  | url            |
  | http://www.google.com |
  | http://www.nextsite.com |
  | http://www.nextsite.com |
</pre>
<p>Cucumber turns each example—each table row—into a concrete scenario before looking for matching step definitions.  And hey presto when it runs you get:</p>
<pre>
$ bin/cucumber --require features/ features/home/outline.feature
Scenario Outline: Home            # features/home/outline2.feature:1
When I go to &lt;url&gt;              # features/steps/webrat_steps.rb:1
Then the request should succeed # features/steps/result_steps.rb:13

Examples:
| url                     |
| http://www.google.com   |
| http://www.nextsite.com |
| http://www.nextsite.com |

3 scenarios (3 passed)
6 steps (6 passed)
0m3.123s
</pre>
<p><b>Update &#8211; you need cucumber-<a href="http://www.kartar.net/tag/nagios/" class="st_tag internal_tag" rel="tag" title="Posts tagged with Nagios">nagios</a> version 0.7.2 later to use outlines&#8230;</b></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kartar.net/2010/04/yes-mum-still-behaving/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RPM and DEB packages available for Puppet Dashboard</title>
		<link>http://www.kartar.net/2010/04/rpm-and-deb-packages-available-for-puppet-dashboard/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rpm-and-deb-packages-available-for-puppet-dashboard</link>
		<comments>http://www.kartar.net/2010/04/rpm-and-deb-packages-available-for-puppet-dashboard/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 07:52:22 +0000</pubDate>
		<dc:creator>kartar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.kartar.net/?p=2290</guid>
		<description><![CDATA[I&#8217;ve created RPM and DEB packages for the Puppet Dashboard 1.0.0rc1.  These are available via APT and Yum repositories hosted by Puppet Labs.  Here are some simple instructions for grabbing the packages.  These are &#8220;first release&#8221; packages and I am by no means a packaging expert with either DEBs or RPMs so any feedback or [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve created RPM and DEB packages for the Puppet Dashboard 1.0.0rc1.  These are available via APT and Yum repositories hosted by Puppet Labs.  Here are some simple instructions for grabbing the packages.  These are &#8220;first release&#8221; packages and I am by no means a packaging expert with   either DEBs or RPMs so any feedback or comments are welcomed.  I&#8217;ll   continue to update the packages as updates to the Dashboard are released.</p>
<p>Overall instructions for installing and running the Dashboard can be  found <a title="Puppet Dashboard" href="http://github.com/reductivelabs/puppet-dashboard" target="_blank">here</a>.</p>
<h3>1.  Get DEB Packages via APT</h3>
<h4>a. Add the following to your /etc/apt/sources.list file:</h4>
<pre>deb http://apt.puppetlabs.com/ubuntu lucid main
deb-src http://apt.puppetlabs.com/ubuntu lucid main
</pre>
<h4>b. Add the Puppet Labs <a href="http://www.kartar.net/tag/repository/" class="st_tag internal_tag" rel="tag" title="Posts tagged with repository">repository</a> key to APT.</h4>
<pre>$ gpg --recv-key 8347A27F
$ gpg -a --export 8347A27F | sudo apt-key add -
</pre>
<h4>c. Run apt-get update</h4>
<pre>$ sudo apt-get update
</pre>
<h4>d. Install Puppet Dashboard package</h4>
<pre>$ sudo apt-get install puppet-dashboard
</pre>
<p>The Dashboard will be installed in <code>/usr/share/puppet-dashboard</code> and you run the server from here or create a Passenger configuration.</p>
<h3>2.  Get RPM packages via Yum</h3>
<h4>a.  Create a Yum <a href="http://www.kartar.net/tag/repo/" class="st_tag internal_tag" rel="tag" title="Posts tagged with repo">repo</a> entry for Puppet Labs</h4>
<pre>$ vi /etc/yum.repos.d/puppetlabs.<a href="http://www.kartar.net/tag/repo/" class="st_tag internal_tag" rel="tag" title="Posts tagged with repo">repo</a>
[puppetlabs]
name=Puppet Labs Packages
baseurl=http://yum.puppetlabs.com/base/
enabled=1
gpgcheck=1
gpgkey=http://yum.puppetlabs.com/RPM-GPG-KEY-reductive
</pre>
<h4>b.  Install via yum</h4>
<pre>$ sudo yum install puppet-dashboard
</pre>
<p>You will be prompted to install the Puppet Labs release key as part of the installation process.</p>
<p>The Dashboard will be installed in <code>/usr/share/puppet-dashboard</code> and you run the server from here or create a Passenger configuration.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kartar.net/2010/04/rpm-and-deb-packages-available-for-puppet-dashboard/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>What DevOps means to me&#8230;</title>
		<link>http://www.kartar.net/2010/02/what-devops-means-to-me/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=what-devops-means-to-me</link>
		<comments>http://www.kartar.net/2010/02/what-devops-means-to-me/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 03:56:29 +0000</pubDate>
		<dc:creator>kartar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[cliques]]></category>
		<category><![CDATA[lifecycles]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://www.kartar.net/?p=2240</guid>
		<description><![CDATA[Over the last year or so a bunch of presumptuous European sysadmins and developers, joined by some of their American brethren and even a couple of us antipodeans (there are others too!) have been talking about a concept called DevOps.  DevOps is the merger of the realms of development and operations (and if truth be [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last year or so a bunch of <a href="http://www.jedi.be/blog/">presumptuous</a> <a href="http://blog.unixdaemon.net/">European</a> <a href="http://www.devco.net/">sysadmins</a> <a href="http://bart.vanbrabant.eu/2009/10/31/devops/">and</a> <a href="http://agilesysadmin.net/">developers</a>, joined by <a href="http://www.kitchensoap.com/2009/12/12/devops-cooperation-doesnt-just-happen-with-deployment/">some</a> <a href="http://stochasticresonance.wordpress.com/" target="_blank">of</a> <a href="http://www.thesimplelogic.com/2010/02/17/getting-started-with-devops/">their</a> <a href="http://agileoperations.net/">American</a> <a href="http://madstop.com/">brethren</a> and even a couple of <a href="http://www.kartar.net">us</a> <a href="http://holmwood.id.au/~lindsay/">antipodeans</a> (there are others too!) have been talking about a concept called DevOps.  DevOps is the merger of the realms of development and operations (and if truth be told elements of product management,QA, and *winces* even sales should be thrown into the mix too).</p>
<p><strong>The Broken</strong></p>
<p>So &#8230; why should we merge or bring together the two realms?  Well there are lots of reasons but first and foremost because what we&#8217;re doing now is broken.  Really, really broken.  In many shops the relationship between development (or engineering) and operations is dysfunctional to the point of occasional toxicity.</p>
<p>Here&#8217;s an example I think everyone will be at least partially familiar with: the minefield that is project to production software deployment.  Curse along as I explain.</p>
<p>Development builds an application, the new hotness which promises customers all the whizz-bang features and will make the company millions.  It is built using cutting edge technology and a brand new platform and it has got to be delivered right now.  Development cuts <a href="http://www.kartar.net/tag/code/" class="st_tag internal_tag" rel="tag" title="Posts tagged with code">code</a> like crazy and gets the product ready for market ahead of schedule.  They throw their masterpiece over the fence to Operations to implement and dash off to the pub for the wrap party.</p>
<p>Operations catches the deployment and is filled with horror.</p>
<p><a href="http://www.kartar.net/wp-content/uploads/2010/02/munch.scream2.jpg"><img class="aligncenter size-medium wp-image-2242" title="The Scream" src="http://www.kartar.net/wp-content/uploads/2010/02/munch.scream2-244x300.jpg" alt="" width="244" height="300" /></a></p>
<p>The Operations team summarises their horror and says one or more of:</p>
<ul>
<li>The wonder application won&#8217;t run on our infrastructure because {it&#8217;s too old, it doesn&#8217;t have capacity, we don&#8217;t support that version}</li>
<li>The architecture of the application doesn&#8217;t match our { storage, network, deployment, security } model</li>
<li>We weren&#8217;t consulted about the { reporting, security, monitoring, backup, provisioning } and it can&#8217;t be &#8220;productionised&#8221;.</li>
</ul>
<p>But Operations persevere and install the new hotness &#8211; cursing and bitching throughout.  Sadly, after forcing the application onto infrastructure and bending and twisting the architecture to get it running, the performance of the new application can be summed up as &#8220;epic fail&#8221;.</p>
<p><a href="http://www.kartar.net/wp-content/uploads/2010/02/epicfail.jpg"><img class="aligncenter size-medium wp-image-2241" title="Epic Fail" src="http://www.kartar.net/wp-content/uploads/2010/02/epicfail-300x148.jpg" alt="" width="300" height="148" /></a>Operations sighs and starts logging problems and passing issues back to the Development team.  Their responses generally come from the following pool:</p>
<ul>
<li>It&#8217;s not our fault &#8211; our <a href="http://www.kartar.net/tag/code/" class="st_tag internal_tag" rel="tag" title="Posts tagged with code">code</a> is perfect &#8211; it&#8217;s just been poorly implemented</li>
<li>Operations are stupid and don&#8217;t understand the new hotness &#8211; why can&#8217;t they implement the cutting edge technology? Why are they so backward?</li>
<li>It runs fine on my machine&#8230;</li>
</ul>
<p>The interactions between teams quickly becomes a toxic blame storm. The customers (and by extension the shareholders, investors and management) then become the losers.  The loop gets closed with the company losing bucket loads of money and everyone losing their jobs.  EPIC and FAIL.</p>
<p><strong>What&#8217;s different about DevOps?</strong></p>
<p>DevOps is all about trying to avoid that epic failure and working smarter and more efficiently at the same time. It is a framework of ideas and principles designed to foster cooperation, learning and coordination between development and operational groups. In a DevOps environment, developers and sysadmins build relationships, processes, and tools that allow them to better interact and ultimately better service the customer.</p>
<p>DevOps is also more than just  software deployment &#8211; it&#8217;s a whole new way of thinking about cooperation  and coordination between the people who make the software and the  people who run it.  Areas like automation, monitoring, capacity planning  &amp; performance, backup &amp; recovery, security, networking and  provisioning can all benefit from using a DevOps model to enhance the  nature and quality of interactions between development and operations  teams.</p>
<p>Everyone in the DevOps community has a slightly different take on &#8220;What is DevOps?&#8221;  We all bring different experiences and focuses to the problem space.  I personally see DevOps as having four quadrants:</p>
<p><em><strong>Simplicity</strong></em></p>
<p><a href="http://en.wikipedia.org/wiki/KISS_principle" target="_blank">KISS</a> is King and in that vein this section is simple too. Design simple, repeatable, and reusable solutions. Simplicity saves documentation, training, and support time.  Simplicity increases the speed of communication, avoids confusion, and helps reduces the risk of development and operational errors.  Simplicity gets you to the pub faster.</p>
<p><em><strong>Relationships</strong></em></p>
<p>Engage early, engage often. Development teams need to embed operations people into their project and development life cycles.  Invite operational people to your scrum or development meetings.  Share ideas and information about product plans and new technologies. Gather operational requirements when gathering functional ones. As a project progresses test deployment, backup, monitoring, security and configuration management as well as application functionality.  The more issues you fix during the project the less issues you expose your customers to when the application is live.  Educate operations people about the applications architecture and the <a href="http://www.kartar.net/tag/code/" class="st_tag internal_tag" rel="tag" title="Posts tagged with code">code</a> base. The more information operations people can feed you about a problem with the <a href="http://www.kartar.net/tag/code/" class="st_tag internal_tag" rel="tag" title="Posts tagged with code">code</a> the less trouble-shooting you need to perform and the faster the problem can be fixed.</p>
<p>Operations people need to bring development people into the problem and change management space. Invite developers into your team meetings. Share your roadmaps and upgrade plans.  Understand where future development is heading to better ensure infrastructure deployments match product requirements.  Developers also bring skills, knowledge and tools that can help make your environment easier to manage, more efficient and cleaner. Learn to <a href="http://www.kartar.net/tag/code/" class="st_tag internal_tag" rel="tag" title="Posts tagged with code">code</a> or if you&#8217;re a hack-n-slash systems programmer like me then learn to <a href="http://www.kartar.net/tag/code/" class="st_tag internal_tag" rel="tag" title="Posts tagged with code">code</a> better. Concepts like building tools with APIs rather than closed interfaces, distributed version control, test driven development, and methodologies like <a href="http://agilemanifesto.org" target="_blank">Agile</a> <a href="http://en.wikipedia.org/wiki/Agile_software_development" target="_blank">Development</a>, <a title="Kanban" href="http://en.wikipedia.org/wiki/Kanban" target="_blank">Kanban</a> and <a title="Scrum" href="http://en.wikipedia.org/wiki/Scrum_%28development%29" target="_blank">Scrum</a> can revolutionise operational practises in the same way they&#8217;ve changed the way <a href="http://www.kartar.net/tag/code/" class="st_tag internal_tag" rel="tag" title="Posts tagged with code">code</a> is cut.</p>
<p>Don&#8217;t be afraid of ideas and approaches from outside your domain &#8211; we can all learn things, even if it&#8217;s &#8220;let&#8217;s never do it that way again&#8230;!&#8221;, from how others do things and ultimately? Guess what? Yep, we&#8217;re all on the SAME team.</p>
<p>Remember that interactions between people rank, in decreasing order of effectiveness (in IMHO but <a title="Kathleen L. Valley" href="http://drfd.hbs.edu/fit/public/facultyInfo.do?facInfo=ovr&amp;facId=6569" target="_blank">backed by some research</a>):</p>
<ol>
<li>Face to face</li>
<li>Video conference</li>
<li>Phone</li>
<li>IM &amp; IRC</li>
<li>Email</li>
</ol>
<p><em><strong>Process</strong></em></p>
<p>Don&#8217;t underestimate the power of process and automation.  Many shops do process engineering &#8211; ranging from hand-written lists to ISO9001. Those processes generally have one key flaw: they focus on the outcome and its inevitability.  A simple process might provision a host &#8211; Step 1 install machine, Step 2 cable machine, Step 3 install OS, etc, etc. Assuming all goes to process then at the end of Step <em>x</em> you will have a fully provisioned host. But what happens if it doesn&#8217;t go right?  If your process breaks or you receive some anomalous output how does your process deal with it?  Instead think about process as a journey and map out the potential pitfalls and obstacles.  Treat your processes like applications and build error handling into them.  You can&#8217;t predict every application or operational pitfall or issue but you can ensure that if you hit one your process isn&#8217;t derailed.</p>
<p>Link process together across domains &#8211; software deployment, monitoring, capacity planning and other &#8220;operational&#8221; processes have their start in the development world.  Software deployment is the logical conclusion of the software development life cycle and should be viewed as such rather than a separate operational process. Another example is metrics and monitoring, it is hard to measure anything  without understanding the baselines and assumptions made in the development domain.  Joint processes also mean more opportunity for development and  operations interaction, understanding and joint accountability. Finally, joint process development means single repositories for documentation and other opportunities for economies of scale.</p>
<p>Automate, automate, automate. Build or make use of simple and  extensible tools (make sure they have APIs and machine readable input  and output &#8211; see <a title="Infrastructure Manifesto" href="http://loki.websages.com/ws/" target="_blank">James White&#8217;s  Infrastructure Manifesto</a>).  Use tools like <a title="Puppet" href="http://reductivelabs.com/products/" target="_blank">Puppet</a> (or others) to manage your configuration.  Remember to extend your  automation umbrella cross-domain and end-to-end in your environment &#8211;  manage development, testing, staging and production environments with  the same tools and processes.  Not only does this have economies of  scale benefits in support and management but it means you can test  deployment and management alongside functionality as your application  and new codes rolls toward production.</p>
<p>Finally, when building process and automation always keep the KISS principle in mind. Complexity breeds opportunities for error<em><strong>.</strong></em> Build simple processes and tools that are easy to implement, manage and maintain.</p>
<p><strong><em>Continuous Improvement</em></strong></p>
<p>Don&#8217;t stop innovating and learning.  Technology moves fast.  So do customer requirements. Build continuous improvement and integration into your tools and processes.  Here is a good place operations people can learn from (good) developers about practises like test-driven development.  A good example here is to build tests for your software deployment process and infrastructure.  They are often an application in their own right and should be developed and maintained correctly. Your monitoring could also be <a title="Behaviour-driven testing" href="http://www.kartar.net/2009/12/yes-mum-ill-behave-beginning-behaviour-driven-infrastructure/" target="_blank">extended with behavioural testing</a> to deliver better business value.  Look at using development domain tools, like <a title="Hudson" href="http://hudson-ci.org/" target="_blank">Hudson</a> for example, to explore and measure the operational domain.</p>
<p>Learn from mistakes and from outages.  Seek root cause aggressively AND cross-domain.  If you have an outage and a post-incident review then bring development and operational teams together to review the incident.  Sometimes some simple <a href="http://www.kartar.net/tag/code/" class="st_tag internal_tag" rel="tag" title="Posts tagged with code">code</a> refactoring can save making infrastructure changes.  Work together to fix root cause, treat it with the same process you develop to conduct project to production software deployment, rather than relegating them to incident review reports or batting issues between teams.</p>
<p><strong>Me<br />
</strong></p>
<p>Finally, for me DevOps is about people and nature of the environment you want to work in.  The best thing about the movement for me is that it is trying to foster behaviours and environments where people work together towards joint goals rather than at cross-purposes or at odds.  That&#8217;s a world I&#8217;d much rather use my skills in.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kartar.net/2010/02/what-devops-means-to-me/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
