<?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>mind the explanatory gap &#187; puppet</title>
	<atom:link href="http://explanatorygap.net/category/puppet/feed/" rel="self" type="application/rss+xml" />
	<link>http://explanatorygap.net</link>
	<description>many a slip 'twixt mind and lip...</description>
	<lastBuildDate>Thu, 11 Mar 2010 00:10:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Profiling puppetmasterd with ruby-prof</title>
		<link>http://explanatorygap.net/2010/03/11/profiling-puppetmasterd-with-ruby-prof/</link>
		<comments>http://explanatorygap.net/2010/03/11/profiling-puppetmasterd-with-ruby-prof/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 17:14:12 +0000</pubDate>
		<dc:creator>nigel kersten</dc:creator>
				<category><![CDATA[puppet]]></category>

		<guid isPermaLink="false">http://explanatorygap.net/?p=245</guid>
		<description><![CDATA[So I&#8217;m not hugely happy with the CPU consumption of puppetmasterd under heavy load, and so I&#8217;ve been trying to work out where the bottlenecks lie. 
Unfortunately I&#8217;ve yet to find a smoking gun, but here&#8217;s a reasonably simple way to produce profiles of puppetmasterd.

Install ruby-prof from gems.
Stop any apache/mongrel/nginx instances of puppetmasterd you may [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;m not hugely happy with the CPU consumption of puppetmasterd under heavy load, and so I&#8217;ve been trying to work out where the bottlenecks lie. </p>
<p>Unfortunately I&#8217;ve yet to find a smoking gun, but here&#8217;s a reasonably simple way to produce profiles of puppetmasterd.</p>
<ul>
<li>Install ruby-prof from gems.</li>
<li>Stop any apache/mongrel/nginx instances of puppetmasterd you may have running</li>
<li>Edit /usr/sbin/puppetmasterd and replace the last few lines with:
<pre>require 'rubygems'
require 'ruby-prof'

result = RubyProf.profile do
  require 'puppet/application/puppetmasterd'
  Puppet::Application[:puppetmasterd].run
end 

printer = RubyProf::GraphHtmlPrinter.new(result)

File.open('/tmp/ruby-profile.html', 'w') do |file|
  printer.print(file, {:min_percent => 10, :print_file => true})
end
</pre>
</li>
<li>Start a webrick puppetmasterd with &#8211;no-daemonize</li>
<li>Do a client run against it</li>
<li>Hit Ctrl-C to interrupt your puppetmasterd</li>
<li>wait for the html output to be generated</li>
</ul>
<p>It&#8217;s worth filtering the min_percent value. Without it, I ended up with 300+MB HTML files with no images that took my dev server a <b>long</b> time to write to disk. With it, I end up with a couple of megs.</p>
<p>You can see an example output at:<br />
<a href="http://www.explanatorygap.net/crap/ruby-profile.html">http://www.explanatorygap.net/crap/ruby-profile.html<br />
</a><br />
with the interesting thread being at:<br />
<a href="http://www.explanatorygap.net/crap/ruby-profile.html#70121801903160">http://www.explanatorygap.net/crap/ruby-profile.html#70121801903160</a></p>
<p>Interpretation suggestions welcome :)</p>
<p><b>Edit</b>:</p>
<p>Brice had a great suggestion of using CallTreePrinter instead of GraphHtmlPrinter and analysing the output with kcachegrind (which is utterly amazing). Obviously your output file shouldn&#8217;t be html then&#8230;</p>
<p>I&#8217;ve put a <a href="http://explanatorygap.net/crap/puppetmasterd-calltree-profile.txt">CallTree output up here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://explanatorygap.net/2010/03/11/profiling-puppetmasterd-with-ruby-prof/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Puppet 0.25.1 debs done&#8230; but delayed.</title>
		<link>http://explanatorygap.net/2009/10/29/puppet-0-25-1-debs-done-but-delayed/</link>
		<comments>http://explanatorygap.net/2009/10/29/puppet-0-25-1-debs-done-but-delayed/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 14:48:34 +0000</pubDate>
		<dc:creator>nigel kersten</dc:creator>
				<category><![CDATA[puppet]]></category>

		<guid isPermaLink="false">http://explanatorygap.net/?p=233</guid>
		<description><![CDATA[We&#8217;ve uploaded the 0.25.1 debs, but due to this work, it might take a little while before they appear.
http://blog.ganneff.de/blog/2009/10/27/debian-ftpmaster-meeting.html
It will appear here when done.
http://packages.debian.org/sid/puppet
Instructions for building yourself&#8230;.
$ git clone git://git.debian.org/pkg-puppet/puppet.git
$ cd puppet
$ git-buildpackage --git-upstream-branch=origin/upstream

]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve uploaded the 0.25.1 debs, but due to this work, it might take a little while before they appear.<br />
<a href="http://blog.ganneff.de/blog/2009/10/27/debian-ftpmaster-meeting.html">http://blog.ganneff.de/blog/2009/10/27/debian-ftpmaster-meeting.html</a></p>
<p>It will appear here when done.<br />
<a href="http://packages.debian.org/sid/puppet">http://packages.debian.org/sid/puppet</a></p>
<p>Instructions for building yourself&#8230;.</p>
<p><code>$ git clone git://git.debian.org/pkg-puppet/puppet.git<br />
$ cd puppet<br />
$ git-buildpackage --git-upstream-branch=origin/upstream<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://explanatorygap.net/2009/10/29/puppet-0-25-1-debs-done-but-delayed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Greg Neagle on Adobe Enterprise Toolkit/Munki/Puppet</title>
		<link>http://explanatorygap.net/2009/10/08/greg-neagle-on-adobe-enterprise-toolkitmunkipuppet/</link>
		<comments>http://explanatorygap.net/2009/10/08/greg-neagle-on-adobe-enterprise-toolkitmunkipuppet/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 14:20:58 +0000</pubDate>
		<dc:creator>nigel kersten</dc:creator>
				<category><![CDATA[macosx]]></category>
		<category><![CDATA[puppet]]></category>

		<guid isPermaLink="false">http://explanatorygap.net/?p=228</guid>
		<description><![CDATA[If you&#8217;re a Mac IT person, and you don&#8217;t know about Greg Neagle&#8217;s Managing OS X blog, you need to fix that situation now.
One of the reasons Greg is so awesome in our field is that he&#8217;s eminently pragmatic, with enough hacker mentality to make sure he simply gets the job done with a minimum [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re a Mac IT person, and you don&#8217;t know about Greg Neagle&#8217;s <a href="http://managingosx.wordpress.com">Managing OS X blog</a>, you need to fix that situation now.</p>
<p>One of the reasons Greg is so awesome in our field is that he&#8217;s eminently pragmatic, with enough hacker mentality to make sure he simply gets the job done with a minimum of fuss. His recent post on the trials and tribulations of <a href="http://managingosx.wordpress.com/2009/10/06/adobe-enterprise-deployment-toolkit-versus-disk-images/">working with the Adobe Enterprise Deployment Kit</a> is a great example.</p>
<p>Not only is he trying to come up with something flexible enough to actually use efficiently, he&#8217;s dug into the innards and explained exactly what&#8217;s going on.</p>
<p>I talked to a few people at <a href="http://reductivelabs.com/home/community/puppetcamp/">Puppet Camp</a> last week about large scale Mac management, and everyone seemed really excited about the <a href="http://code.google.com/p/munki/">Munki Project</a>, which is all Greg&#8217;s work so far. Basically the idea is to provide OS X with an actual <strong>repository</strong> for package management, using native Mac packages, and attempting to reuse vendor packages as much as is feasible.</p>
<p>If no-one else does it, I&#8217;ll end up putting together a munki type and provider for Puppet. I&#8217;m really looking forward to being able to simply do stuff like:</p>
<pre>
package { "iWork":
  ensure => latest,
}
</pre>
<p>just like other operating systems, letting the repository handle dependencies. The way it should be&#8230;.</p>
<p>This really could be one of the most important community contributions to large scale Mac management in the history of OS X in my opinion.</p>
]]></content:encoded>
			<wfw:commentRss>http://explanatorygap.net/2009/10/08/greg-neagle-on-adobe-enterprise-toolkitmunkipuppet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Facter 1.5.7 MacPorts update submitted</title>
		<link>http://explanatorygap.net/2009/10/07/facter-1-5-7-macports-update-submitted/</link>
		<comments>http://explanatorygap.net/2009/10/07/facter-1-5-7-macports-update-submitted/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 16:30:29 +0000</pubDate>
		<dc:creator>nigel kersten</dc:creator>
				<category><![CDATA[puppet]]></category>
		<category><![CDATA[facter]]></category>

		<guid isPermaLink="false">http://explanatorygap.net/?p=214</guid>
		<description><![CDATA[I&#8217;ve submitted a diff to update facter in MacPorts to 1.5.7, so it should be available soon.
Note that I&#8217;ve set the maintainer for both Puppet and Facter in MacPorts to &#8216;openmaintainer&#8217;. This means that I accept patches from anyone, and it&#8217;s really quite trivial to update either of them, as is the case with the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve submitted a diff to update facter in MacPorts to 1.5.7, so it should be available soon.</p>
<p>Note that I&#8217;ve set the maintainer for both Puppet and Facter in MacPorts to &#8216;openmaintainer&#8217;. This means that I accept patches from anyone, and it&#8217;s really quite trivial to update either of them, as is the case with the vast majority of Portfiles.</p>
<p>The process goes something like:</p>
<p><code>$ sudo port selfupdate</code> (to get the newest versions)<br />
<code>$ mkdir /tmp/facter</code><br />
<code>$ cd /tmp/facter</code><br />
<code>$ cp /opt/local/var/macports/sources/rsync.macports.org/release/ports/sysutils/facter/Portfile .</code><br />
<code>$ cp Portfile Portfile.orig</code><br />
(edit the port file to change version from 1.5.6 to 1.5.7)<br />
<code>$ port -v checksum</code> (this will print out the expected and obtained checksums. Use this info to update the &#8216;checksums&#8217; component of the Portfile)<br />
<code>$ port -v checksum</code> (this should return happily now)<br />
<code>$ sudo port -v install</code> (verify that the port is installed correctly)<br />
<code>$ diff -u Portfile Portfile.orig &gt; Portfile-facter.diff</code> (submit an update ticket on the <a href="https://trac.macports.org/">MacPorts Trac site</a> with the diff attached)</p>
]]></content:encoded>
			<wfw:commentRss>http://explanatorygap.net/2009/10/07/facter-1-5-7-macports-update-submitted/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The complexity debt</title>
		<link>http://explanatorygap.net/2009/10/02/the-complexity-debt/</link>
		<comments>http://explanatorygap.net/2009/10/02/the-complexity-debt/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 13:41:56 +0000</pubDate>
		<dc:creator>nigel kersten</dc:creator>
				<category><![CDATA[puppet]]></category>

		<guid isPermaLink="false">http://explanatorygap.net/?p=210</guid>
		<description><![CDATA[This has been flowing all over the #puppetcamp twitter tag, but it&#8217;s worth repeating.
&#8220;Think of the complexity in your environment as a form of technical debt that you&#8217;re going to have to pay down&#8221; &#8211; Paul Nasrat
This is so awesomely pithy you just know he&#8217;s a bloody Pom.
(England 3/83 in the Champions Trophy semi-final as [...]]]></description>
			<content:encoded><![CDATA[<p>This has been flowing all over the <a href="http://twitter.com/#search?q=puppetcamp">#puppetcamp</a> twitter tag, but it&#8217;s worth repeating.</p>
<blockquote><p>&#8220;Think of the complexity in your environment as a form of technical debt that you&#8217;re going to have to pay down&#8221; &#8211; <a href="http://nasrat.livejournal.com/">Paul Nasrat</a></p></blockquote>
<p>This is so awesomely pithy you just know he&#8217;s a bloody Pom.</p>
<p>(England 3/83 in the Champions Trophy semi-final <a href="http://www.cricinfo.com/iccct2009/engine/current/match/415285.html">as of right now</a>&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://explanatorygap.net/2009/10/02/the-complexity-debt/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>At Puppet Camp</title>
		<link>http://explanatorygap.net/2009/10/02/at-puppet-camp/</link>
		<comments>http://explanatorygap.net/2009/10/02/at-puppet-camp/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 18:51:20 +0000</pubDate>
		<dc:creator>nigel kersten</dc:creator>
				<category><![CDATA[puppet]]></category>

		<guid isPermaLink="false">http://explanatorygap.net/?p=208</guid>
		<description><![CDATA[Puppet Camp is on today and tomorrow.
It&#8217;s already exciting being in a room full of involved sysadmins who are concerned with making our jobs better and thinking about how the place our field will be in in the next few years&#8230;
It&#8217;s always good to put faces to IRC handles too :)
Already had a great talk [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://reductivelabs.com/home/community/puppetcamp/">Puppet Camp</a> is on today and tomorrow.</p>
<p>It&#8217;s already exciting being in a room full of involved sysadmins who are concerned with making our jobs better and thinking about how the place our field will be in in the next few years&#8230;</p>
<p>It&#8217;s always good to put faces to IRC handles too :)</p>
<p>Already had a great talk from <a href="http://theforeman.org/blogs">Ohad Levy</a> on <a href="http://theforeman.org/">The Foreman</a> and his infrastructure. I&#8217;m excited about The Foreman, even if we don&#8217;t end up using it at Google.</p>
]]></content:encoded>
			<wfw:commentRss>http://explanatorygap.net/2009/10/02/at-puppet-camp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian Puppet 0.25.x debs will be done for 0.25.1</title>
		<link>http://explanatorygap.net/2009/09/29/debian-puppet-0-25-x-debs-will-be-done-for-0-25-1/</link>
		<comments>http://explanatorygap.net/2009/09/29/debian-puppet-0-25-x-debs-will-be-done-for-0-25-1/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 15:14:45 +0000</pubDate>
		<dc:creator>nigel kersten</dc:creator>
				<category><![CDATA[puppet]]></category>

		<guid isPermaLink="false">http://explanatorygap.net/?p=202</guid>
		<description><![CDATA[In case you&#8217;ve been wondering where the debs are for Puppet 0.25.x, we&#8217;ve decided to wait until 0.25.1 to publish it to Debian unstable.
The good news is that we&#8217;ve set things up in our Alioth git repository so that you can use git-buildpackage to build 0.25.x debs. We&#8217;ll publish an article on the Debian wiki [...]]]></description>
			<content:encoded><![CDATA[<p>In case you&#8217;ve been wondering where the debs are for Puppet 0.25.x, we&#8217;ve decided to wait until 0.25.1 to publish it to Debian unstable.</p>
<p>The good news is that we&#8217;ve set things up in our Alioth git repository so that you can use git-buildpackage to build 0.25.x debs. We&#8217;ll publish an article on the Debian wiki and link to it from the Puppet wiki that will describe how to build debs for any 0.25.x branch of puppet using git-buildpackage, which should make it a lot easier for people to work on the bleeding edge.</p>
<p>If you&#8217;re already familiar with git-buildpackage, you can work against the anonymous repository  now at: <a href="git://git.debian.org/pkg-puppet/puppet.git">git://git.debian.org/pkg-puppet/puppet.git</a></p>
]]></content:encoded>
			<wfw:commentRss>http://explanatorygap.net/2009/09/29/debian-puppet-0-25-x-debs-will-be-done-for-0-25-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Puppet 0.25.0 Mac pkgs and MacPorts available</title>
		<link>http://explanatorygap.net/2009/09/11/puppet-0-25-0-mac-pkgs-and-macports-available/</link>
		<comments>http://explanatorygap.net/2009/09/11/puppet-0-25-0-mac-pkgs-and-macports-available/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 16:10:31 +0000</pubDate>
		<dc:creator>nigel kersten</dc:creator>
				<category><![CDATA[puppet]]></category>

		<guid isPermaLink="false">http://explanatorygap.net/?p=196</guid>
		<description><![CDATA[The Mac packages for Puppet 0.25.0 are done:
https://sites.google.com/a/explanatorygap.net/puppet/
and the Portfile for MacPorts is also now available.
]]></description>
			<content:encoded><![CDATA[<p>The Mac packages for Puppet 0.25.0 are done:</p>
<p><a href="https://sites.google.com/a/explanatorygap.net/puppet/">https://sites.google.com/a/explanatorygap.net/puppet/</a></p>
<p>and the Portfile for MacPorts is also now available.</p>
]]></content:encoded>
			<wfw:commentRss>http://explanatorygap.net/2009/09/11/puppet-0-25-0-mac-pkgs-and-macports-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
