<?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>My two ¢&#039;s &#187; puppet</title>
	<atom:link href="http://www.linuxaddicted.de/blog/tag/puppet/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.linuxaddicted.de/blog</link>
	<description>A Gentoo addict, linux admin and developer</description>
	<lastBuildDate>Wed, 31 Mar 2010 12:12:47 +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>puppetmasterd and passenger</title>
		<link>http://www.linuxaddicted.de/blog/2010/03/18/puppetmasterd-and-passenger/</link>
		<comments>http://www.linuxaddicted.de/blog/2010/03/18/puppetmasterd-and-passenger/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 17:30:16 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[passenger]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.linuxaddicted.de/blog/?p=317</guid>
		<description><![CDATA[<p>It seems like some people have trouble configuring/undestanding how to combine puppetmasterd and Passenger (aka mod_rails). Let&#8217;s get it on:</p> Install depencies <p>You need the following components on your puppetmaster server:</p> Phusion Passenger (http://modrails.com/) Rack (http://rubyforge.org/projects/rack) Configure puppetmaster <p>Your puppet package should contain a config.ru. I found mine in /usr/share/doc/puppet-0.25.4-r1/ext/rack/files/config.ru.bz2 (Gentoo).</p> <p></p> mkdir /etc/puppet/rack <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.linuxaddicted.de/blog/2010/03/18/puppetmasterd-and-passenger/">puppetmasterd and passenger</a></span>]]></description>
			<content:encoded><![CDATA[<p>It seems like some people have trouble configuring/undestanding how to combine puppetmasterd and Passenger (aka mod_rails). Let&#8217;s get it on:</p>
<h2>Install depencies</h2>
<p>You need the following components on your puppetmaster server:</p>
<ul>
<li>Phusion Passenger (<a href="http://modrails.com/">http://modrails.com/</a>)</li>
<li>Rack (<a href="http://rubyforge.org/projects/rack">http://rubyforge.org/projects/rack</a>)</li>
</ul>
<h2>Configure puppetmaster</h2>
<p>Your puppet package should contain a config.ru. I found mine in /usr/share/doc/puppet-0.25.4-r1/ext/rack/files/config.ru.bz2 (Gentoo).</p>
<p><span id="more-317"></span></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>puppet<span style="color: #000000; font-weight: bold;">/</span>rack
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>puppet<span style="color: #000000; font-weight: bold;">/</span>rack<span style="color: #000000; font-weight: bold;">/</span>public
<span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>YOUR_CONFIG.RU<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>puppet<span style="color: #000000; font-weight: bold;">/</span>rack
<span style="color: #c20cb9; font-weight: bold;">chown</span> puppet:root <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>puppet<span style="color: #000000; font-weight: bold;">/</span>rack<span style="color: #000000; font-weight: bold;">/</span>config.ru</pre></div></div>

<p>The final chown line is important! This way rack determines under which user to run the puppetmaster processes.</p>
<p>Add the following lines to your puppet.conf:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>puppetmasterd<span style="color: #7a0874; font-weight: bold;">&#93;</span>
...
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY</pre></div></div>

<h2>Apache config</h2>
<p>You can keep your passenger config as is and modify it when required. Here&#8217;s a example vhost config:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Listen <span style="color: #000000;">8140</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;</span>VirtualHost <span style="color: #000000; font-weight: bold;">*</span>:<span style="color: #000000;">8140</span><span style="color: #000000; font-weight: bold;">&gt;</span>
    ServerName puppet
    DocumentRoot <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>puppet<span style="color: #000000; font-weight: bold;">/</span>rack<span style="color: #000000; font-weight: bold;">/</span>public<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
    CustomLog <span style="color: #ff0000;">&quot;|/usr/sbin/rotatelogs /var/www/puppet/logs/access_log.%Y%m%d-%H%M 86400&quot;</span> common
    ErrorLog  <span style="color: #ff0000;">&quot;|/usr/sbin/rotatelogs /var/www/puppet/logs/error_log.%Y%m%d-%H%M 86400&quot;</span>
&nbsp;
    PassengerHighPerformance on
    PassengerMaxPoolSize <span style="color: #000000;">15</span>
    PassengerPoolIdleTime <span style="color: #000000;">300</span>
    PassengerUseGlobalQueue on
    PassengerStatThrottleRate <span style="color: #000000;">120</span>
    RackAutoDetect Off
    RailsAutoDetect Off
&nbsp;
    RackBaseURI <span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
    SSLEngine on
    SSLProtocol <span style="color: #660033;">-ALL</span> +SSLv3 +TLSv1
    SSLCipherSuite ALL:<span style="color: #000000; font-weight: bold;">!</span>ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP
    SSLCertificateFile <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>puppet<span style="color: #000000; font-weight: bold;">/</span>ssl<span style="color: #000000; font-weight: bold;">/</span>certs<span style="color: #000000; font-weight: bold;">/</span>XXXXXXXXXXXX.pem
    SSLCertificateKeyFile <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>puppet<span style="color: #000000; font-weight: bold;">/</span>ssl<span style="color: #000000; font-weight: bold;">/</span>private_keys<span style="color: #000000; font-weight: bold;">/</span>XXXXXXXXXXXX.pem
    SSLCertificateChainFile <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>puppet<span style="color: #000000; font-weight: bold;">/</span>ssl<span style="color: #000000; font-weight: bold;">/</span>ca<span style="color: #000000; font-weight: bold;">/</span>ca_crt.pem
    SSLCACertificateFile <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>puppet<span style="color: #000000; font-weight: bold;">/</span>ssl<span style="color: #000000; font-weight: bold;">/</span>ca<span style="color: #000000; font-weight: bold;">/</span>ca_crt.pem
    SSLCARevocationFile <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>puppet<span style="color: #000000; font-weight: bold;">/</span>ssl<span style="color: #000000; font-weight: bold;">/</span>ca<span style="color: #000000; font-weight: bold;">/</span>ca_crl.pem
    SSLVerifyClient optional
    SSLVerifyDepth <span style="color: #000000;">1</span>
    SSLOptions +StdEnvVars
&nbsp;
    <span style="color: #000000; font-weight: bold;">&lt;</span>Directory <span style="color: #ff0000;">&quot;/etc/puppet/rack/public/&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span>
        Options None
        AllowOverride None
&nbsp;
        Order allow,deny
        Allow from all
    <span style="color: #000000; font-weight: bold;">&lt;/</span>Directory<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;/</span>Virtualhost<span style="color: #000000; font-weight: bold;">&gt;</span></pre></div></div>

<p>Restart apache and when clients connect are are triggered via puppetrun you may see something like this with passenger-status:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">passenger-status
<span style="color: #660033;">-----------</span> General information <span style="color: #660033;">-----------</span>
max      = <span style="color: #000000;">20</span>
count    = <span style="color: #000000;">9</span>
active   = <span style="color: #000000;">0</span>
inactive = <span style="color: #000000;">9</span>
Waiting on global queue: <span style="color: #000000;">0</span>
&nbsp;
<span style="color: #660033;">-----------</span> Domains <span style="color: #660033;">-----------</span>
<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>puppet<span style="color: #000000; font-weight: bold;">/</span>rack:
  PID: <span style="color: #000000;">19160</span>   Sessions: <span style="color: #000000;">0</span>    Processed: <span style="color: #000000;">39</span>      Uptime: 20s
  PID: <span style="color: #000000;">19202</span>   Sessions: <span style="color: #000000;">0</span>    Processed: <span style="color: #000000;">70</span>      Uptime: 17s
  PID: <span style="color: #000000;">18934</span>   Sessions: <span style="color: #000000;">0</span>    Processed: <span style="color: #000000;">95</span>      Uptime: 45s
  PID: <span style="color: #000000;">18977</span>   Sessions: <span style="color: #000000;">0</span>    Processed: <span style="color: #000000;">66</span>      Uptime: 42s
  PID: <span style="color: #000000;">19008</span>   Sessions: <span style="color: #000000;">0</span>    Processed: <span style="color: #000000;">63</span>      Uptime: 40s
  PID: <span style="color: #000000;">19184</span>   Sessions: <span style="color: #000000;">0</span>    Processed: <span style="color: #000000;">2</span>       Uptime: 19s
  PID: <span style="color: #000000;">19103</span>   Sessions: <span style="color: #000000;">0</span>    Processed: <span style="color: #000000;">8</span>       Uptime: 28s
&nbsp;
<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>puppet-dashboard<span style="color: #000000; font-weight: bold;">/</span>htdocs:
  PID: <span style="color: #000000;">19158</span>   Sessions: <span style="color: #000000;">0</span>    Processed: <span style="color: #000000;">6</span>       Uptime: 22s
  PID: <span style="color: #000000;">19236</span>   Sessions: <span style="color: #000000;">0</span>    Processed: <span style="color: #000000;">3</span>       Uptime: 10s</pre></div></div>

<p>Also refer to the offical puppet documentation on passenger <a href="http://docs.puppetlabs.com/guides/passenger.html">here</a>.</p>
<p>That&#8217;s it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxaddicted.de/blog/2010/03/18/puppetmasterd-and-passenger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Puppet addons</title>
		<link>http://www.linuxaddicted.de/blog/projects/puppet-addons/</link>
		<comments>http://www.linuxaddicted.de/blog/projects/puppet-addons/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 21:26:57 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[facter]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.linuxaddicted.de/blog/?page_id=267</guid>
		<description><![CDATA[<p>I have made some extension for Facter to match my requirements. Most of these extensions are only useful for Gentoo installations. Please leave a comment if you like the addons.</p> <p></p> gcc_profile.rb <p>&#160;</p> <p>Facter plugin to get the currently active GCC profile on Gentoo installations. It may work on other distributions too.</p> <p></p> <p>&#160;</p> <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.linuxaddicted.de/blog/projects/puppet-addons/">Puppet addons</a></span>]]></description>
			<content:encoded><![CDATA[<p>I have made some extension for <a href="http://projects.reductivelabs.com/projects/facter">Facter</a> to match my requirements. Most of these extensions are only useful for Gentoo installations. Please leave a comment if you like the addons.</p>
<p><!-- more --></p>
<h2>gcc_profile.rb</h2>
<p>&nbsp;</p>
<p>Facter plugin to get the currently active GCC profile on <a href="http://www.gentoo.org">Gentoo</a> installations. It may work on other distributions too.</p>
<p><img class="aligncenter size-full wp-image-274" title="gcc_profile screenshot" src="http://www.linuxaddicted.de/blog/wp-content/uploads/2010/01/Picture-20.png" alt="gcc_profile screenshot" width="421" height="43" /></p>
<p>&nbsp;</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">Facter.<span style="color:#9900CC;">add</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:gcc_profile</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
    confine <span style="color:#ff3333; font-weight:bold;">:operatingsystem</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#ff3333; font-weight:bold;">:Gentoo</span>
    setcode <span style="color:#9966CC; font-weight:bold;">do</span>
        profile = <span style="color:#0000FF; font-weight:bold;">nil</span>
        output = <span style="color:#006600; font-weight:bold;">%</span>x<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">/</span>usr<span style="color:#006600; font-weight:bold;">/</span>bin<span style="color:#006600; font-weight:bold;">/</span>gcc<span style="color:#006600; font-weight:bold;">-</span>config <span style="color:#006600; font-weight:bold;">-</span>c<span style="color:#006600; font-weight:bold;">&#125;</span>
        profile = output.<span style="color:#CC0066; font-weight:bold;">chop!</span>
        profile
    <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<h2>system_profile.rb</h2>
<p>&nbsp;</p>
<p>Facter plugin to get the currently active <a href="http://www.gentoo.org">Gentoo</a> system profile. Plugin uses eselect so you need to have it installed.</p>
<p><img class="aligncenter size-full wp-image-285" title="system profile" src="http://www.linuxaddicted.de/blog/wp-content/uploads/2010/01/Picture-21.png" alt="system profile" width="312" height="55" /></p>
<p>&nbsp;</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">Facter.<span style="color:#9900CC;">add</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:system_profile</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
    confine <span style="color:#ff3333; font-weight:bold;">:operatingsystem</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#ff3333; font-weight:bold;">:Gentoo</span>
    setcode <span style="color:#9966CC; font-weight:bold;">do</span>
        profile = <span style="color:#0000FF; font-weight:bold;">nil</span>
        output = <span style="color:#006600; font-weight:bold;">%</span>x<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">/</span>usr<span style="color:#006600; font-weight:bold;">/</span>bin<span style="color:#006600; font-weight:bold;">/</span>eselect <span style="color:#006600; font-weight:bold;">--</span>brief <span style="color:#006600; font-weight:bold;">--</span>no<span style="color:#006600; font-weight:bold;">-</span>color profile show <span style="color:#006600; font-weight:bold;">|</span> tr <span style="color:#006600; font-weight:bold;">-</span>d <span style="color:#996600;">' '</span><span style="color:#006600; font-weight:bold;">&#125;</span>
        profile = output.<span style="color:#CC0066; font-weight:bold;">chop!</span>
        profile
    <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<h2>default_gw.rb</h2>
<p>&nbsp;</p>
<p>Facter plugin to return the deault gw set in systems routing table. Requires iproute2 package installed.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">Facter.<span style="color:#9900CC;">add</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:default_gw</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
    confine <span style="color:#ff3333; font-weight:bold;">:kernel</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#ff3333; font-weight:bold;">:linux</span>
    setcode <span style="color:#9966CC; font-weight:bold;">do</span>
        gw = <span style="color:#0000FF; font-weight:bold;">nil</span>
        output = <span style="color:#006600; font-weight:bold;">%</span>x<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">/</span>sbin<span style="color:#006600; font-weight:bold;">/</span>ip route show<span style="color:#006600; font-weight:bold;">&#125;</span>
&nbsp;
        output.<span style="color:#9900CC;">each</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>line<span style="color:#006600; font-weight:bold;">|</span>
            <span style="color:#9966CC; font-weight:bold;">if</span> line =~ <span style="color:#006600; font-weight:bold;">/</span>^default\s<span style="color:#006600; font-weight:bold;">+</span>via\s<span style="color:#006600; font-weight:bold;">+</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">-</span><span style="color:#006666;">9</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">1</span>,<span style="color:#006666;">3</span><span style="color:#006600; font-weight:bold;">&#125;</span>\.<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">-</span><span style="color:#006666;">9</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">1</span>,<span style="color:#006666;">3</span><span style="color:#006600; font-weight:bold;">&#125;</span>\.<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">-</span><span style="color:#006666;">9</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">1</span>,<span style="color:#006666;">3</span><span style="color:#006600; font-weight:bold;">&#125;</span>\.<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">-</span><span style="color:#006666;">9</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">1</span>,<span style="color:#006666;">3</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">/</span>
                gw = $<span style="color:#006666;">1</span>
                <span style="color:#9966CC; font-weight:bold;">break</span>
            <span style="color:#9966CC; font-weight:bold;">end</span>
        <span style="color:#006600; font-weight:bold;">&#125;</span>
        gw
    <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.linuxaddicted.de/blog/projects/puppet-addons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Short review: Puppet for Gentoo servers</title>
		<link>http://www.linuxaddicted.de/blog/2009/12/18/short-review-puppet-for-gentoo-servers/</link>
		<comments>http://www.linuxaddicted.de/blog/2009/12/18/short-review-puppet-for-gentoo-servers/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 10:51:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.linuxaddicted.de/blog/?p=246</guid>
		<description><![CDATA[<p>I recently started to integrate Puppet with my company&#8217;s OS installer to build custom Gentoo servers in almost no time. The install/build system reached a stable state and i want to share some information&#8217;s on what i did to get it working. The Gentoo support of puppet is not perfect but sufficient for my <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.linuxaddicted.de/blog/2009/12/18/short-review-puppet-for-gentoo-servers/">Short review: Puppet for Gentoo servers</a></span>]]></description>
			<content:encoded><![CDATA[<p>I recently started to integrate <a href="http://reductivelabs.com/trac/puppet/" target="_blank">Puppet</a> with my company&#8217;s OS installer to build custom Gentoo servers in almost no time. The install/build system reached a stable state and i want to share some information&#8217;s on what i did to get it working. The Gentoo support of puppet is not perfect but sufficient for my use case. There are still some issues to solve:</p>
<ul>
<li>Slots don&#8217;t work (I&#8217;m working on a patch for the portage provider to address this issue)</li>
<li>No nice way to manage /etc/conf.d/net</li>
<li>Only the runlevel &#8220;default&#8221; can be managed (This is sufficient for most cases)</li>
<li>No built in USE flag support (i use a binhost so this doesn&#8217;t really affect my setup). Check this <a href="http://log.onthebrink.de/2008/05/using-puppet-on-gentoo.html" target="_blank">site</a> for a possible solution</li>
</ul>
<p>The missing slots integration is especially important when it comes to Tomcat. Tomcat requires sun-jdk-1.5 and sun-jdk-1.6. I solved this by adding sun-jdk-1.5 to our install image. Apart from this problems it works very well.<span id="more-246"></span></p>
<h2>Binhost setup</h2>
<p>The easiest way to ensure that all systems run the same software (version, use flags) is to setup a portage binhost and force all clients to use this server as only package source. There are a lot of howto&#8217;s out there on creating a binhost so i won&#8217;t explain it detail. To force all clients to use only binary packages set the following statements in make.conf (Puppet distribution!):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">PORTAGE_BINHOST</span>=<span style="color: #ff0000;">&quot;http://192.168.1.1/x86_64&quot;</span>
<span style="color: #007800;">EMERGE_DEFAULT_OPTS</span>=<span style="color: #ff0000;">&quot;--getbinpkgonly --usepkgonly&quot;</span></pre></div></div>

<p>The parameter EMERGE_DEFAULT_OPTS is important because Puppet will run the command &#8220;emerge xxx/yyy&#8221; so you can&#8217;t specify extra parameters. This parameter setup ensures that the package cannot be installed when the binary package is missing on the binhost.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxaddicted.de/blog/2009/12/18/short-review-puppet-for-gentoo-servers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

