<?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>dasz.at - Benutzbare Technologie &#187; Puppet</title>
	<atom:link href="http://dasz.at/index.php/category/puppet/feed/" rel="self" type="application/rss+xml" />
	<link>http://dasz.at</link>
	<description>Benutzbare Technologie</description>
	<lastBuildDate>Wed, 07 Jul 2010 06:54:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Porting Puppet to Windows</title>
		<link>http://dasz.at/index.php/2010/06/porting-puppet-to-windows/</link>
		<comments>http://dasz.at/index.php/2010/06/porting-puppet-to-windows/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 12:50:59 +0000</pubDate>
		<dc:creator>David Schmitt</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Puppet]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://dasz.at/?p=391</guid>
		<description><![CDATA[In the course of the PuppetCamp Europe, I met with many people I only knew from IRC and email and it was a great time with interesting and inspiring discussions.
Today I want to write about the work I&#8217;m currently commisioned for by puppetlabs, porting puppet to Microsoft Windows.
Current Status
After disabling some minor pieces (color, conf [...]]]></description>
			<content:encoded><![CDATA[<p>In the course of the <a href="http://puppetcamp.org/europe-2010-ghent/">PuppetCamp Europe</a>, I met with many people I only knew from IRC and email and it was a great time with interesting and inspiring discussions.</p>
<p>Today I want to write about the work I&#8217;m currently commisioned for by <a href="http://www.puppetlabs.com/">puppetlabs</a>, porting puppet to Microsoft Windows.</p>
<h2>Current Status</h2>
<p>After disabling some minor pieces (color, conf file watching) and fixing a few bugs (see the <a href="http://github.com/DavidS/puppet/tree/feature/master/windows">tree on github</a>) and a little bit hacking various parts to pass through paths with a drive letter, I was able to create the first file on windows with puppet. On the downside a few technical problems with the code surfaced, the most daunting were approximately 600 <a href="http://rspec.info/">spec</a> failures (out of 8.500 examples).</p>
<p><span id="more-391"></span><br />
<h2>The Plan</h2>
<p><a href="http://projects.puppetlabs.com/users/685">Markus Roberts</a> and myself used some of the breaks and sessions to hash out solutions for the various hurdles that I identified. After fixing those, we can move on to pushing the actual basic Microsoft Windows support to master without breaking hell loose and start implementing providers on a larger scale, while people have something in hand to start playing with.</p>
<h3>Unit Testing</h3>
<p>This one was easy. Most of the test failures are caused by examples that use <code>Puppet::Type.type(:file)</code> when they need a type to test the &#8220;other&#8221; functionality they&#8217;re testing. This legacy is a result of bad experiences with examples that did not fail after removing the &#8220;tested&#8221; code, because they were stubbing away too much. As a next step in the evolution of such examples, puppetlabs will create an simple, instrumentable type specifically to be used in tests. That way it&#8217;ll be a &#8220;real&#8221; type for the examples, without any of the complex functionality needs of &#8220;real&#8221; types.</p>
<h3>File is lacking providers</h3>
<p>In my git tree is already a start of a POSIX and a Microsoft Windows provider for file handling. This is currently only a <a href="http://www.extremeprogramming.org/rules/spike.html">spike implementation</a> and will have to be seriously expanded once the unit tests don&#8217;t blow up when touching this area.</p>
<h3>Moving to multi-valued titles</h3>
<p>I&#8217;ve started a discussion about the <a href="http://groups.google.com/group/puppet-dev/browse_thread/thread/c503799d31eb21cd">design of multi-valued titles</a> on the puppet-dev mailing list. This should make implementing the various path syntaxes much more convenient and easier to handle in the file type. Markus promised me a prototype to play with.</p>
<h3>Providing actual functionality</h3>
<p>There was discussion at the puppetcamp whether or not to use the command line tools from the resource kit to manipulate users, groups, services and what-not. While I have not looked deeply into this, as my focus until now was getting puppet to run at all, I believe those tools will be a good source of <strong>what</strong> should be possible, but no good for implementing the providers. One, the tools are another external dependency, they have localized output which will make parsing them very hard, and the output can differ from one release to the next. On the other hand, MRI has quite flexible ways to access the underlying C APIs of Microsoft Windows and those functions are documented and should be quite stable.</p>
]]></content:encoded>
			<wfw:commentRss>http://dasz.at/index.php/2010/06/porting-puppet-to-windows/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Puppet Talk @ Linux Weekend 2009: Video</title>
		<link>http://dasz.at/index.php/2009/10/puppet-talk-linux-weekend-2009-video/</link>
		<comments>http://dasz.at/index.php/2009/10/puppet-talk-linux-weekend-2009-video/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 08:40:49 +0000</pubDate>
		<dc:creator>David Schmitt</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Puppet]]></category>

		<guid isPermaLink="false">http://dasz.at/index.php/2009/10/puppet-talk-linux-weekend-2009-video/</guid>
		<description><![CDATA[Thanks to Clifford, the videos from the Linuxwochenende are available now. Here&#8217;s the direct link to my german puppet talk.
]]></description>
			<content:encoded><![CDATA[<p>Thanks to <a href="http://www.clifford.at/">Clifford</a>, the videos from the Linuxwochenende are <a href="http://mirror.chilloutzone.eu/linuxwochenende2009/">available</a> now. Here&#8217;s the direct link to my <a href="http://mirror.chilloutzone.eu/linuxwochenende2009/04-puppet.avi">german puppet talk</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://dasz.at/index.php/2009/10/puppet-talk-linux-weekend-2009-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://mirror.chilloutzone.eu/linuxwochenende2009/04-puppet.avi" length="342744608" type="video/x-msvideo" />
		</item>
		<item>
		<title>Puppet Talk @ Linux Weekend 2009</title>
		<link>http://dasz.at/index.php/2009/10/puppet-talk-linux-weekend-2009/</link>
		<comments>http://dasz.at/index.php/2009/10/puppet-talk-linux-weekend-2009/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 13:56:26 +0000</pubDate>
		<dc:creator>David Schmitt</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Puppet]]></category>

		<guid isPermaLink="false">http://dasz.at/index.php/2009/10/puppet-talk-linux-weekend-2009/</guid>
		<description><![CDATA[On Saturday the 24th, I&#8217;ll be holding a short talk about puppet at the Linuxwochenende (Linux-Weekend) in the Metalab, a hackerspace in Vienna, Austria. I&#8217;m looking forward to spreading &#8220;the message&#8221;   .
]]></description>
			<content:encoded><![CDATA[<p>On Saturday the 24th, I&#8217;ll be holding a short talk about puppet at the <a href="http://linuxwochenende2009.luga.at/">Linuxwochenende</a> (Linux-Weekend) in the <a href="http://metalab.at/">Metalab</a>, a <a href="http://en.wikipedia.org/wiki/Hackerspace">hackerspace</a> in <a href="http://maps.google.com/maps?q=Vienna,+Austria">Vienna, Austria</a>. I&#8217;m looking forward to spreading &#8220;the message&#8221; <img src='http://dasz.at/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  .</p>
]]></content:encoded>
			<wfw:commentRss>http://dasz.at/index.php/2009/10/puppet-talk-linux-weekend-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Puppet Module Repository Beta</title>
		<link>http://dasz.at/index.php/2009/08/puppet-module-repository-beta/</link>
		<comments>http://dasz.at/index.php/2009/08/puppet-module-repository-beta/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 14:08:50 +0000</pubDate>
		<dc:creator>David Schmitt</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Puppet]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://dasz.at/index.php/2009/08/puppet-module-repository-beta/</guid>
		<description><![CDATA[Finally! Luke and I took out a minute and hashed up a scheme to get the ball rolling on a central one-stop-shop for puppet modules.
Let me quote the pertinent part from Luke&#8217;s mail:


DavidS wrote:

Create a new github account to collect all modules with a repo per module.
Add devs as available to the modules/repos as collaborators [...]]]></description>
			<content:encoded><![CDATA[<p>Finally! Luke and I took out a minute and hashed up a scheme to get the ball rolling on a central one-stop-shop for puppet modules.</p>
<p>Let me quote the pertinent part from <a href="http://madstop.com/">Luke</a>&#8217;s mail:<br />
<span id="more-87"></span></p>
<blockquote><p>
DavidS wrote:</p>
<blockquote><ul>
<li>Create a new github account to collect all modules with a repo per module.</li>
<li>Add devs as available to the modules/repos as collaborators to allow them to push changes.</li>
<li>Use the issue tracker attached to each module for bug tracking.</li>
<li>Use a meta-repo to combine &#8220;matching&#8221; module versions into &#8220;releases&#8221;.</li>
<li>Encourage wide-spread collaboration.</li>
</ul>
<p>I&#8217;m willing to do all the necessary legwork to set this up. Just say the word.
</p></blockquote>
<p>That&#8217;s basically the plan.  If you make a &#8216;puppet-modules&#8217; account and want to set it up&#8230; That would be awesome.
</p></blockquote>
<p>So there we go, I&#8217;ve created a <a href="http://github.com/puppet-modules/">puppet-modules account</a> on <a href="http://github.com">github</a> where useful and maintained repos can be published. To seed the effort I&#8217;ve already committed a few of my core modules and expect to add some more at a later time when the workflow is settled in.</p>
<p>The primary entry point for local perusal is the <code><a href="http://github.com/puppet-modules/puppet-manifests">puppet-manifests</a></code> repository which contains all others as <a href="http://www.kernel.org/pub/software/scm/git/docs/git-submodule.html">submodule</a>s. This is very convenient to clone all modules at once:</p>
<pre>
$ git clone git://github.com/puppet-modules/puppet-manifests.git
$ cd puppet-manifests/
$ git submodule init
$ git submodule update
</pre>
<p>Within <code>modules/</code> you can now find git repositories for all published modules, ready to go.</p>
<p>For working on the repos, I&#8217;ve created forks of all modules in <a href="http://github.com/DavidS">my private github account</a> to avoid cluttering the &#8220;published&#8221; versions.</p>
<p>If you have any patches or modules to contribute or want to collaborate, please use github&#8217;s issue tracker of the concerned module or send a shout to puppet-users or me privately.</p>
]]></content:encoded>
			<wfw:commentRss>http://dasz.at/index.php/2009/08/puppet-module-repository-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is puppet?</title>
		<link>http://dasz.at/index.php/2009/06/what-is-puppet/</link>
		<comments>http://dasz.at/index.php/2009/06/what-is-puppet/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 14:15:27 +0000</pubDate>
		<dc:creator>David Schmitt</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Puppet]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://dasz.at/index.php/2009/06/what-is-puppet/</guid>
		<description><![CDATA[Puppet is an application to automate the configuration of UNIX systems. The puppet master defines the intended system state (packages, files, services, etc) on a central server. On the managed installations an agent regularly fetches the manifest and applies it to the system. The agent sends information (like hostname or IP address) from the system [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://reductivelabs.com/trac/puppet">Puppet</a> is an application to automate the configuration of UNIX systems. The puppet master defines the intended system state (packages, files, services, etc) on a central server. On the managed installations an agent regularly fetches the manifest and applies it to the system. The agent sends information (like hostname or IP address) from the system to the server. This can be used to parametrise the configuration.</p>
<p><span id="more-83"></span></p>
<p>Puppet doesn&#8217;t care whether it manages one or a hundred servers with the same configuration. Contrary to manual configuration, the effort scales with the number of programmed services instead of the number of administrated servers.</p>
<p>Another important factor is the organisation of configuration into modules. These can be developed, tested and deployed independently. David runs the first and <a href="http://git.black.co.at/">one of the biggest public repositories</a> of such modules under the very liberal BSD-License. Thanks to my engagement in the puppet community I was recently asked by multiple IT-departments to hold on-site trainings.</p>
<p>Finally it has to be noted that a manifest (puppet configuration) is a very detailed documentation of the (intended) system state.</p>
<p>David uses puppet for <a href="http://www.edv-bus.at/">EDV-Beratung&#038;Service</a> to run a <a href="http://www.edv-bus.at/Preise.htm">web- and mail hosting</a> system. Before the advent of puppet, each customer was configured manually, leading to all kind of errors. With puppet any error gets fixed once and for all by improving the source code of the puppet manifest. Additionally this will also fix the problem on all existing customers.</p>
]]></content:encoded>
			<wfw:commentRss>http://dasz.at/index.php/2009/06/what-is-puppet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
