<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Jonas Genannt</title>
    <link>http://blog.brachium-system.net/</link>
    <description>Weblog of an System Engineer</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.5.1 - http://www.s9y.org/</generator>
    
    <image>
        <url>http://blog.brachium-system.net/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Jonas Genannt - Weblog of an System Engineer</title>
        <link>http://blog.brachium-system.net/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Git - pre-receive hook - validate tag names</title>
    <link>http://blog.brachium-system.net/archives/127-Git-pre-receive-hook-validate-tag-names.html</link>
            <category>work</category>
    
    <comments>http://blog.brachium-system.net/archives/127-Git-pre-receive-hook-validate-tag-names.html#comments</comments>
    <wfw:comment>http://blog.brachium-system.net/wfwcomment.php?cid=127</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.brachium-system.net/rss.php?version=2.0&amp;type=comments&amp;cid=127</wfw:commentRss>
    

    <author>nospam@example.com (Jonas Genannt)</author>
    <content:encoded>
    I have written an git hook to validate tag names. We deploy our software with git tags. &lt;br /&gt;
&lt;br /&gt;
These tags needs to fit our guidelines like &quot;prod/2012-04-01_d1&quot; this could be checked with my pre-receive hook available at &lt;a href=&quot;https://github.com/hggh/stuff/blob/master/git-hooks/pre-receive&quot;&gt;github&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
After installing it into your hooks/ directory, you need to set the regular expression for the tag names:&lt;br /&gt;
&lt;blockquote&gt;git config hooks.receivetagregexp &#039;^prod\/[0-9]{4}-[0-9]{2}-[0-9]{2}_d[0-9]+$&#039;&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Sat, 07 Apr 2012 12:11:48 +0200</pubDate>
    <guid isPermaLink="false">http://blog.brachium-system.net/archives/127-guid.html</guid>
    
</item>
<item>
    <title>MCollective accepted into Debian sid/unstable</title>
    <link>http://blog.brachium-system.net/archives/126-MCollective-accepted-into-Debian-sidunstable.html</link>
    
    <comments>http://blog.brachium-system.net/archives/126-MCollective-accepted-into-Debian-sidunstable.html#comments</comments>
    <wfw:comment>http://blog.brachium-system.net/wfwcomment.php?cid=126</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.brachium-system.net/rss.php?version=2.0&amp;type=comments&amp;cid=126</wfw:commentRss>
    

    <author>nospam@example.com (Jonas Genannt)</author>
    <content:encoded>
    More than one year, after the ITP of &lt;a href=&quot;http://projects.puppetlabs.com/projects/mcollective&quot;&gt;MCollective&lt;/a&gt; was submitted, &lt;a href=&quot;http://packages.qa.debian.org/m/mcollective/news/20110913T213316Z.html&quot;&gt;MCollective&lt;/a&gt; enters Debian unstable. (See &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=563951&quot;&gt;#563951&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
Thanks to Damien Raude-Morvan who upload ActiveMQ to Debian and applied my patch for running multiple instances of ActiveMQ with one Initscript. (See &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=634868&quot;&gt;#634868&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
Also thanks to micah anderson from the Puppet Debian PKG team who checked my package and uploaded it into Debian.&lt;br /&gt;
&lt;br /&gt;
If you are running Debian sid you can simple install MCollective:&lt;br /&gt;
&lt;br /&gt;
apt-get install mcollective-client # installes the client stuff&lt;br /&gt;
&lt;br /&gt;
apt-get install mcollective # installes the MCollective Server&lt;br /&gt;
&lt;br /&gt;
You can use debconf to configure the MCollective options. The packages also suppports preseeding - so you can configure your MCollective on installation.&lt;br /&gt;
&lt;br /&gt;
Use Debconf to configure STOMP stuff: dpkg-reconfigure -plow mcollective-common mcollective-client mcollective&lt;br /&gt;
&lt;br /&gt;
Please see default preseed file at /usr/share/doc/mcollective-common/examples/mcollective.preseed included into mcollective-common package.&lt;br /&gt;
&lt;br /&gt;
An example ActiveMQ configuration is also included in the mcollective package. See /usr/share/doc/mcollective/examples/activemq.xml.&lt;br /&gt;
&lt;br /&gt;
For more information, please have a look at /usr/share/doc/mcollective/README.Debian. 
    </content:encoded>

    <pubDate>Wed, 14 Sep 2011 08:29:32 +0200</pubDate>
    <guid isPermaLink="false">http://blog.brachium-system.net/archives/126-guid.html</guid>
    
</item>
<item>
    <title>3DM2: Etch repository removed</title>
    <link>http://blog.brachium-system.net/archives/125-3DM2-Etch-repository-removed.html</link>
            <category>debian</category>
            <category>work</category>
    
    <comments>http://blog.brachium-system.net/archives/125-3DM2-Etch-repository-removed.html#comments</comments>
    <wfw:comment>http://blog.brachium-system.net/wfwcomment.php?cid=125</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.brachium-system.net/rss.php?version=2.0&amp;type=comments&amp;cid=125</wfw:commentRss>
    

    <author>nospam@example.com (Jonas Genannt)</author>
    <content:encoded>
    The repository 3DM2/CLI  for Etch was removed from &lt;a href=&quot;http://jonas.genannt.name&quot;&gt;http://jonas.genannt.name&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Thanks to &lt;a href=&quot;http://www.ip-exchange.de/de/none/unternehmen/unser_business.html&quot;&gt;IP Exchange GmbH&lt;/a&gt; for sponsoring my Debian packages. 
    </content:encoded>

    <pubDate>Tue, 30 Aug 2011 14:53:15 +0200</pubDate>
    <guid isPermaLink="false">http://blog.brachium-system.net/archives/125-guid.html</guid>
    
</item>
<item>
    <title>create documentation on-the-fly with puppet stored configuration</title>
    <link>http://blog.brachium-system.net/archives/124-create-documentation-on-the-fly-with-puppet-stored-configuration.html</link>
    
    <comments>http://blog.brachium-system.net/archives/124-create-documentation-on-the-fly-with-puppet-stored-configuration.html#comments</comments>
    <wfw:comment>http://blog.brachium-system.net/wfwcomment.php?cid=124</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.brachium-system.net/rss.php?version=2.0&amp;type=comments&amp;cid=124</wfw:commentRss>
    

    <author>nospam@example.com (Jonas Genannt)</author>
    <content:encoded>
    I have an define &lt;em&gt;backup::directory() {}&lt;/em&gt; within my puppet catalog.&lt;br /&gt;
&lt;br /&gt;
This define is used to backup an directory with rsnapshot from an production server onto an backup server:&lt;blockquote&gt;backup::directory { &quot;/home/web/example.com&quot;: }&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
For our internal sysadmin documentation we need to add this to our wiki. This is done via an script that generates an html overview:&lt;blockquote&gt;server.example.com&lt;br /&gt;
         /home/web/example.com&lt;br /&gt;
&lt;br /&gt;
server2.example.com&lt;br /&gt;
        /home/web/foo/bar&lt;br /&gt;
        /var/www&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
If we add in our puppet configuration an new directory to backup, the documentation will be updated on-the-fly without any action from us.&lt;br /&gt;
&lt;br /&gt;
That&#039;s pretty cool - we also can use this to generate an overview of &lt;em&gt;apache::sites::vhost {}&lt;/em&gt;. So every guy knows where an apache vhost is configured.&lt;br /&gt;
&lt;br /&gt;
You can get that code on &lt;a href=&quot;https://github.com/hggh/stuff/commit/9776a03eb27905e69d1ed3d83a034f2dcb7e4bbc&quot;&gt;github.com&lt;/a&gt;.&lt;br /&gt;
&lt;blockquote&gt;./puppet_documentation.rb --resource Backup::Directory --name &quot;Directory Backup System&quot; &lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Thu, 23 Jun 2011 22:43:39 +0200</pubDate>
    <guid isPermaLink="false">http://blog.brachium-system.net/archives/124-guid.html</guid>
    
</item>
<item>
    <title>SSH public key distribution with puppet</title>
    <link>http://blog.brachium-system.net/archives/123-SSH-public-key-distribution-with-puppet.html</link>
            <category>debian</category>
            <category>puppet</category>
            <category>work</category>
    
    <comments>http://blog.brachium-system.net/archives/123-SSH-public-key-distribution-with-puppet.html#comments</comments>
    <wfw:comment>http://blog.brachium-system.net/wfwcomment.php?cid=123</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.brachium-system.net/rss.php?version=2.0&amp;type=comments&amp;cid=123</wfw:commentRss>
    

    <author>nospam@example.com (Jonas Genannt)</author>
    <content:encoded>
    The last years I have used several tools to distribute the public ssh keys of my users across the servers but they don&#039;t fit anymore. I use puppet for my infrastructure but the build in puppet feature &lt;em&gt;ssh_authorized_key&lt;/em&gt; does not fit.&lt;br /&gt;
&lt;br /&gt;
I have different users across my servers and same users on many servers (e.g. web farms).&lt;br /&gt;
&lt;br /&gt;
One public ssh key can be an member of:&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;an ssh public key group that is mapped to an user on an server&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;an ssh public key group that is mapped to an user on an sever group&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;an user mapped to an server&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;an user mapped to an server group&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;a class=&quot;serendipity_image_link&quot;  href=&#039;http://blog.brachium-system.net/uploads/sshkeys1.jpeg&#039;&gt;&lt;!-- s9ymdb:55 --&gt;&lt;img class=&quot;serendipity_image_left&quot; width=&quot;512&quot; height=&quot;257&quot;  src=&quot;http://blog.brachium-system.net/uploads/sshkeys1.jpeg&quot;  alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br clear=&quot;both&quot;/&gt;&lt;br /&gt;
I have created an &lt;a href=&quot;https://github.com/hggh/servermgmt&quot; title=&quot;ServerMGMT&quot;&gt;Webapp&lt;/a&gt; with an ajax interface. You can drag &amp;amp; drop the ssh key groups or ssh keys to an user.&lt;br /&gt;
&lt;br /&gt;
The key will be deployed via an puppet parser function, you need the storeconfig feature in puppet.&lt;br /&gt;
&lt;br /&gt;
The webapp has got an own database (postgres) but you can merge the puppet storeconfig database to the server manager database (via an rake task). If you specify an regular expression on your server groups, an new merged server will be automatically added to the group and on the next run of puppet the keys from the server group will be deployed without any action from you.&lt;br /&gt;
&lt;br /&gt;
Puppet stuff:&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/hggh/servermgmt/blob/master/doc/puppet/modules/ssh/manifests/init.pp&quot; title=&quot;Puppet SSH module&quot;&gt;puppet module&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/hggh/servermgmt/blob/master/extra/puppet/lib/ssh_public_keys.rb&quot;&gt;puppet function to fetch the keys from the webapp&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/hggh/servermgmt/blob/master/extra/facter/users.rb&quot;&gt;fact to fetch existing users on the servers&lt;/a&gt; (not needed, but features auto complete in the app) &lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;a class=&quot;serendipity_image_link&quot;  href=&#039;http://blog.brachium-system.net/uploads/sgmt_sshkey.jpg&#039;&gt;&lt;!-- s9ymdb:56 --&gt;&lt;img class=&quot;serendipity_image_left&quot; width=&quot;330&quot; height=&quot;213&quot;  src=&quot;http://blog.brachium-system.net/uploads/sgmt_sshkey.jpg&quot;  alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br clear=&quot;both&quot;/&gt;&lt;br /&gt;
drag &amp;amp; drop the ssh keys or the ssh key groups from right to left into the users on the servers or server groups&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;iframe src=&quot;http://player.vimeo.com/video/24034056?title=0&amp;amp;byline=0&amp;amp;portrait=0&quot; width=&quot;400&quot; height=&quot;300&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;p&gt;&lt;a href=&quot;http://vimeo.com/24034056&quot;&gt;public ssh key distribution with puppet and ajax interface&lt;/a&gt; from &lt;a href=&quot;http://vimeo.com/user3233269&quot;&gt;Jonas&lt;/a&gt; on &lt;a href=&quot;http://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sat, 21 May 2011 03:51:00 +0200</pubDate>
    <guid isPermaLink="false">http://blog.brachium-system.net/archives/123-guid.html</guid>
    
</item>
<item>
    <title>Using Nagios for Wordpress Version Checks</title>
    <link>http://blog.brachium-system.net/archives/122-Using-Nagios-for-Wordpress-Version-Checks.html</link>
            <category>control</category>
            <category>puppet</category>
            <category>work</category>
    
    <comments>http://blog.brachium-system.net/archives/122-Using-Nagios-for-Wordpress-Version-Checks.html#comments</comments>
    <wfw:comment>http://blog.brachium-system.net/wfwcomment.php?cid=122</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.brachium-system.net/rss.php?version=2.0&amp;type=comments&amp;cid=122</wfw:commentRss>
    

    <author>nospam@example.com (Jonas Genannt)</author>
    <content:encoded>
    &lt;!-- s9ymdb:52 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;949&quot; height=&quot;140&quot;  src=&quot;http://blog.brachium-system.net/uploads/wordpress_check.jpg&quot;  alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
I&#039;m using Nagios to check for Wordpress Version updates and plugin updates - it&#039;s really nice. You don&#039;t need to login to wp-admin and check for version. An single PHP Cli script, that puppet installs and configures the nagios for every wordpress installation.&lt;br /&gt;
&lt;br /&gt;
Next step: create an all in wonder script that will upgrade wordpress and all plugins &lt;img src=&quot;http://blog.brachium-system.net/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Update: Script: &lt;a href=&quot;https://github.com/hggh/wordpress-nagios&quot; title=&quot;check_wordpress&quot; target=&quot;_blank&quot;&gt;check_wordpress&lt;/a&gt; 
    </content:encoded>

    <pubDate>Thu, 24 Feb 2011 00:35:49 +0100</pubDate>
    <guid isPermaLink="false">http://blog.brachium-system.net/archives/122-guid.html</guid>
    
</item>
<item>
    <title>Updated 3dm2/CLI packages from 3Ware</title>
    <link>http://blog.brachium-system.net/archives/121-Updated-3dm2CLI-packages-from-3Ware.html</link>
    
    <comments>http://blog.brachium-system.net/archives/121-Updated-3dm2CLI-packages-from-3Ware.html#comments</comments>
    <wfw:comment>http://blog.brachium-system.net/wfwcomment.php?cid=121</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://blog.brachium-system.net/rss.php?version=2.0&amp;type=comments&amp;cid=121</wfw:commentRss>
    

    <author>nospam@example.com (Jonas Genannt)</author>
    <content:encoded>
    I have updated my 3Ware 3dm2 debian packages.&lt;br /&gt;
&lt;br /&gt;
Now version 10.2 is available on &lt;a href=&quot;http://jonas.genannt.name&quot;&gt;jonas.genannt.name&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Since debian squeeze is now stable, I provide also squeeze packages. The debian etch packages will be removed soon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;**UPDATE**&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
The 10.2 3md2 program on amd64 has got an problem:&lt;blockquote&gt;3dm2: relocation error: /lib/libnss_files.so.2: symbol __rawmemchr, version GLIBC_2.2.5 not defined in file libc.so.6 with link time reference&lt;/blockquote&gt;&lt;br /&gt;
An workaround is, to use an IP address for the mailserver name: &lt;a href=&quot;https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/574726/comments/12&quot; &gt;Bug #574726&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Thanks Mourik! 
    </content:encoded>

    <pubDate>Tue, 15 Feb 2011 18:35:17 +0100</pubDate>
    <guid isPermaLink="false">http://blog.brachium-system.net/archives/121-guid.html</guid>
    
</item>
<item>
    <title>Nagios parents hosts with Puppet</title>
    <link>http://blog.brachium-system.net/archives/120-Nagios-parents-hosts-with-Puppet.html</link>
    
    <comments>http://blog.brachium-system.net/archives/120-Nagios-parents-hosts-with-Puppet.html#comments</comments>
    <wfw:comment>http://blog.brachium-system.net/wfwcomment.php?cid=120</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.brachium-system.net/rss.php?version=2.0&amp;type=comments&amp;cid=120</wfw:commentRss>
    

    <author>nospam@example.com (Jonas Genannt)</author>
    <content:encoded>
    I&#039;m using my &lt;a href=&quot;http://projects.puppetlabs.com/issues/4989&quot;&gt;fact&lt;/a&gt; and stored configurations in puppet to get the running Xen domU in my system.&lt;br /&gt;
&lt;br /&gt;
I also maintain my nagios configuration with puppet, with the Xendomains fact, I automatically set in the nagios configuration the parents for an domU system.&lt;br /&gt;
&lt;br /&gt;
The running domU on node1.fra.example.com is web1.fra.example.com. &lt;br /&gt;
&lt;br /&gt;
The nagios configuration will look like:&lt;blockquote&gt;define host{&lt;br /&gt;
         use                generic-host&lt;br /&gt;
         host_name    web1.fra.example.com &lt;br /&gt;
         alias              web1 - amd64&lt;br /&gt;
         address         3.3.3.3&lt;br /&gt;
   	 parents         node1.fra.example.com&lt;br /&gt;
	 hostgroups   XXX,XXX&lt;br /&gt;
        }&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
Using this &lt;a href=&quot;https://github.com/hggh/puppetstuff/blob/master/puppet/lib/get_parent_host.rb&quot;&gt; puppet parser&lt;/a&gt; function to fetch the dom0 for an domU system from the database.&lt;br /&gt;
&lt;br /&gt;
After calling that function I can build the nagios configuration and using virtual resources in puppet to transfer that information to my nagios server.&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Thu, 11 Nov 2010 21:51:17 +0100</pubDate>
    <guid isPermaLink="false">http://blog.brachium-system.net/archives/120-guid.html</guid>
    
</item>
<item>
    <title>documentation of running domUs in Xen with puppet</title>
    <link>http://blog.brachium-system.net/archives/119-documentation-of-running-domUs-in-Xen-with-puppet.html</link>
            <category>work</category>
            <category>xen</category>
    
    <comments>http://blog.brachium-system.net/archives/119-documentation-of-running-domUs-in-Xen-with-puppet.html#comments</comments>
    <wfw:comment>http://blog.brachium-system.net/wfwcomment.php?cid=119</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.brachium-system.net/rss.php?version=2.0&amp;type=comments&amp;cid=119</wfw:commentRss>
    

    <author>nospam@example.com (Jonas Genannt)</author>
    <content:encoded>
    If you are running some servers with Xen, you have the problem to figure out, where an domU is running.&lt;br /&gt;
&lt;br /&gt;
If you are using puppet with &lt;a href=&quot;http://projects.puppetlabs.com/projects/1/wiki/Using_Stored_Configuration&quot;&gt;stored configurations&lt;/a&gt; you need to install only the xendomains fact, that will be &lt;a href=&quot;http://projects.puppetlabs.com/issues/4989&quot;&gt;soon available&lt;/a&gt; in facter.&lt;br /&gt;
&lt;br /&gt;
With this data, I create the following graph on-the-fly - documentation done!&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;serendipity_image_link&quot;  href=&#039;http://blog.brachium-system.net/uploads/puppetcreatexendomainsgraph.rb.png&#039;&gt;&lt;!-- s9ymdb:51 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;109&quot; height=&quot;74&quot;  src=&quot;http://blog.brachium-system.net/uploads/puppetcreatexendomainsgraph.rb.serendipityThumb.png&quot;  alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Script is available on &lt;a href=&quot;https://github.com/hggh/puppetstuff/blob/master/puppetcreatexendomainsgraph.rb&quot;&gt;github&lt;/a&gt;.  
    </content:encoded>

    <pubDate>Wed, 10 Nov 2010 18:54:05 +0100</pubDate>
    <guid isPermaLink="false">http://blog.brachium-system.net/archives/119-guid.html</guid>
    
</item>
<item>
    <title>Postfix as backup MX with Postgrey</title>
    <link>http://blog.brachium-system.net/archives/118-Postfix-as-backup-MX-with-Postgrey.html</link>
            <category>debian</category>
            <category>spam</category>
            <category>xen</category>
    
    <comments>http://blog.brachium-system.net/archives/118-Postfix-as-backup-MX-with-Postgrey.html#comments</comments>
    <wfw:comment>http://blog.brachium-system.net/wfwcomment.php?cid=118</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.brachium-system.net/rss.php?version=2.0&amp;type=comments&amp;cid=118</wfw:commentRss>
    

    <author>nospam@example.com (Jonas Genannt)</author>
    <content:encoded>
    For keeping that stuff in my mind:&lt;blockquote&gt;&lt;br /&gt;
smtpd_client_restrictions = check_policy_service inet:127.0.0.1:60000&lt;br /&gt;
smtpd_recipient_restrictions =  permit_mynetworks,permit_mx_backup, reject_unauth_destination&lt;br /&gt;
permit_mx_backup_networks = 10.0.0.0/16&lt;br /&gt;
&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Thu, 09 Sep 2010 21:42:34 +0200</pubDate>
    <guid isPermaLink="false">http://blog.brachium-system.net/archives/118-guid.html</guid>
    
</item>
<item>
    <title>Samba: Automatic printer driver download to Windows</title>
    <link>http://blog.brachium-system.net/archives/117-Samba-Automatic-printer-driver-download-to-Windows.html</link>
            <category>debian</category>
    
    <comments>http://blog.brachium-system.net/archives/117-Samba-Automatic-printer-driver-download-to-Windows.html#comments</comments>
    <wfw:comment>http://blog.brachium-system.net/wfwcomment.php?cid=117</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.brachium-system.net/rss.php?version=2.0&amp;type=comments&amp;cid=117</wfw:commentRss>
    

    <author>nospam@example.com (Jonas Genannt)</author>
    <content:encoded>
    There are tons of manuals, howtos and blog posts, but they all depend on old samba versions.&lt;br /&gt;
&lt;br /&gt;
I have get it working with Samba 3.3.7 and CUPS 1.3.8 on an Debian Lenny system.&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
smb.conf&lt;/strong&gt;:&lt;blockquote&gt;[global]   &lt;br /&gt;
     security = user&lt;br /&gt;
       load printers = yes&lt;br /&gt;
        printing = CUPS&lt;br /&gt;
        printcap name = CUPS&lt;br /&gt;
        printcap = CUPS&lt;br /&gt;
        force printername = yes&lt;br /&gt;
        enable privileges = yes&lt;br /&gt;
&lt;br /&gt;
[printers]&lt;br /&gt;
        comment = All Printers&lt;br /&gt;
        browseable = no&lt;br /&gt;
        guest ok = yes&lt;br /&gt;
        path = /var/spool/samba&lt;br /&gt;
        public = yes&lt;br /&gt;
        printable = yes&lt;br /&gt;
        writable = no&lt;br /&gt;
        use client driver = no&lt;br /&gt;
&lt;br /&gt;
[print$]&lt;br /&gt;
        comment = Printer Driver Download Area&lt;br /&gt;
        path = /var/lib/samba/printers&lt;br /&gt;
        browseable = no&lt;br /&gt;
        guest ok = yes&lt;br /&gt;
        read only = yes&lt;br /&gt;
        write list = @printeradms root&lt;br /&gt;
        directory mask = 0775&lt;br /&gt;
        create mask = 0664&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Tasks&lt;/strong&gt;&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
  &lt;li&gt;create an group named &lt;em&gt;printeradms&lt;/em&gt;&lt;/li&gt;&lt;br /&gt;
  &lt;li&gt;add users to the group&lt;/li&gt;&lt;br /&gt;
  &lt;li&gt;/var/lib/samba/printers: writeable for the group &lt;em&gt;printeradms&lt;/em&gt;&lt;/li&gt;&lt;br /&gt;
  &lt;li&gt;set printer rights for the group: &lt;em&gt;net rpc rights grant &#039;DOMAINNAME\printeradms&#039; SePrintOperatorPrivilege&lt;/em&gt;&lt;/li&gt;&lt;br /&gt;
  &lt;li&gt;add first printer to cups&lt;/li&gt;&lt;br /&gt;
  &lt;li&gt;restart samba&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Login to an Windows computer&lt;/strong&gt;&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
  &lt;li&gt;connect to the samba server \\servername&lt;/li&gt;&lt;br /&gt;
  &lt;li&gt;go to subfolder &lt;em&gt;printers&lt;/em&gt;&lt;/li&gt;&lt;br /&gt;
  &lt;li&gt;right click on you printer&lt;/li&gt;&lt;br /&gt;
  &lt;li&gt;klick on option&lt;/li&gt;&lt;br /&gt;
  &lt;li&gt;there will be an error message about missing driver. &lt;strong&gt;CANCEL&lt;/strong&gt; here!&lt;/li&gt;&lt;br /&gt;
  &lt;li&gt;install new driver in the option dialog&lt;/li&gt;&lt;br /&gt;
  &lt;li&gt;done!&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
Your printer queue will now blow up, because windows printer queue shows also the completed cups printer jobs. You have to add the following lines to cupsd.conf:&lt;blockquote&gt;PreserveJobFiles No&lt;br /&gt;
PreserveJobHistory No&lt;/blockquote&gt; 
    </content:encoded>

    <pubDate>Mon, 22 Mar 2010 19:48:17 +0100</pubDate>
    <guid isPermaLink="false">http://blog.brachium-system.net/archives/117-guid.html</guid>
    
</item>
<item>
    <title>Server Manager with Puppet</title>
    <link>http://blog.brachium-system.net/archives/116-Server-Manager-with-Puppet.html</link>
            <category>control</category>
            <category>debian</category>
    
    <comments>http://blog.brachium-system.net/archives/116-Server-Manager-with-Puppet.html#comments</comments>
    <wfw:comment>http://blog.brachium-system.net/wfwcomment.php?cid=116</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.brachium-system.net/rss.php?version=2.0&amp;type=comments&amp;cid=116</wfw:commentRss>
    

    <author>nospam@example.com (Jonas Genannt)</author>
    <content:encoded>
    &lt;a class=&quot;serendipity_image_link&quot;  href=&#039;http://blog.brachium-system.net/uploads/server_manager_debian_interfaces.jpg&#039;&gt;&lt;!-- s9ymdb:50 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;110&quot; height=&quot;67&quot;  src=&quot;http://blog.brachium-system.net/uploads/server_manager_debian_interfaces.serendipityThumb.jpg&quot;  alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I have added an new feature to my &lt;a href=&quot;http://github.com/hggh/servermgmt&quot;&gt;Server Manager&lt;/a&gt;. You can now use that manager to maintain the &lt;i&gt;/etc/network/interfaces&lt;/i&gt; file on debian.&lt;br /&gt;
&lt;br /&gt;
&lt;object width=&quot;500&quot; height=&quot;400&quot;&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;movie&quot; value=&quot;http://vimeo.com/moogaloop.swf?clip_id=10292527&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1&quot; /&gt;&lt;embed src=&quot;http://vimeo.com/moogaloop.swf?clip_id=10292527&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;400&quot; height=&quot;300&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;&lt;a href=&quot;http://vimeo.com/10292527&quot;&gt;Server Manager - Debian Interfaces configuration&lt;/a&gt; from &lt;a href=&quot;http://vimeo.com/user3233269&quot;&gt;Jonas&lt;/a&gt; on &lt;a href=&quot;http://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Fri, 19 Mar 2010 22:00:40 +0100</pubDate>
    <guid isPermaLink="false">http://blog.brachium-system.net/archives/116-guid.html</guid>
    
</item>
<item>
    <title>Updated 3dm2/CLI packages from 3Ware</title>
    <link>http://blog.brachium-system.net/archives/115-Updated-3dm2CLI-packages-from-3Ware.html</link>
            <category>control</category>
            <category>debian</category>
    
    <comments>http://blog.brachium-system.net/archives/115-Updated-3dm2CLI-packages-from-3Ware.html#comments</comments>
    <wfw:comment>http://blog.brachium-system.net/wfwcomment.php?cid=115</wfw:comment>

    <slash:comments>6</slash:comments>
    <wfw:commentRss>http://blog.brachium-system.net/rss.php?version=2.0&amp;type=comments&amp;cid=115</wfw:commentRss>
    

    <author>nospam@example.com (Jonas Genannt)</author>
    <content:encoded>
    I have updated my 3Ware 3dm2 debian packages.&lt;br /&gt;
&lt;br /&gt;
Now version 10.0 is available on &lt;a href=&quot;http://jonas.genannt.name&quot;&gt;jonas.genannt.name&lt;/a&gt;. The CLI tools 10.0 are also available.&lt;br /&gt;
&lt;br /&gt;
An Debian Repository is also &lt;a href=&quot;http://blog.brachium-system.net/archives/77-Debian-Repository-for-3Ware-packages.html&quot;&gt;available&lt;/a&gt;.  
    </content:encoded>

    <pubDate>Fri, 19 Mar 2010 19:31:26 +0100</pubDate>
    <guid isPermaLink="false">http://blog.brachium-system.net/archives/115-guid.html</guid>
    
</item>
<item>
    <title>Added DNS Interface to Server Manager</title>
    <link>http://blog.brachium-system.net/archives/114-Added-DNS-Interface-to-Server-Manager.html</link>
    
    <comments>http://blog.brachium-system.net/archives/114-Added-DNS-Interface-to-Server-Manager.html#comments</comments>
    <wfw:comment>http://blog.brachium-system.net/wfwcomment.php?cid=114</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.brachium-system.net/rss.php?version=2.0&amp;type=comments&amp;cid=114</wfw:commentRss>
    

    <author>nospam@example.com (Jonas Genannt)</author>
    <content:encoded>
    &lt;a class=&quot;serendipity_image_link&quot;  href=&#039;http://blog.brachium-system.net/uploads/dns_interface.jpg&#039;&gt;&lt;!-- s9ymdb:49 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;109&quot; height=&quot;62&quot;  src=&quot;http://blog.brachium-system.net/uploads/dns_interface.serendipityThumb.jpg&quot;  alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I have added an DNS Interface to my Server Manager. The nameservers pulls the configuration via http.&lt;br /&gt;
&lt;br /&gt;
The nameserver interface can handle:&lt;br /&gt;
&lt;br /&gt;
 -  primary nameserver only&lt;br /&gt;
 - secondary nameserver only&lt;br /&gt;
 - pri/sec nameserver&lt;br /&gt;
 - hidden primary&lt;br /&gt;
&lt;br /&gt;
Get the Bind configuration:&lt;br /&gt;
&lt;a href=&quot;http://servermgmt.demo.brachium-system.net/nameserver/getconfig/ns1.brachium-system.net/bind/config&quot;&gt;http://servermgmt.demo.brachium-system.net/nameserver/getconfig/ns1.brachium-system.net/bind/config&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Get the Bind zone configuration:&lt;br /&gt;
&lt;a href=&quot;http://servermgmt.demo.brachium-system.net/nameserver/getconfig/ns1.brachium-system.net/bind/zone&quot;&gt;http://servermgmt.demo.brachium-system.net/nameserver/getconfig/ns1.brachium-system.net/bind/zone&lt;/a&lt;br /&gt;
&lt;br /&gt;
The nameserver has to split the zone configuration and save it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can test it: &lt;a href=&quot;http://servermgmt.demo.brachium-system.net/domains&quot;&gt;http://servermgmt.demo.brachium-system.net/domains&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
user: admin&lt;br /&gt;
pass: admin&lt;br /&gt;
&lt;br /&gt;
Source code is available on &lt;a href=&quot;http://servermgmt.demo.brachium-system.net/domains&quot;&gt;github&lt;/a&gt;. 
    </content:encoded>

    <pubDate>Sun, 14 Mar 2010 17:21:19 +0100</pubDate>
    <guid isPermaLink="false">http://blog.brachium-system.net/archives/114-guid.html</guid>
    
</item>
<item>
    <title>Server Manager with Puppet configuration keys</title>
    <link>http://blog.brachium-system.net/archives/113-Server-Manager-with-Puppet-configuration-keys.html</link>
            <category>puppet</category>
    
    <comments>http://blog.brachium-system.net/archives/113-Server-Manager-with-Puppet-configuration-keys.html#comments</comments>
    <wfw:comment>http://blog.brachium-system.net/wfwcomment.php?cid=113</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.brachium-system.net/rss.php?version=2.0&amp;type=comments&amp;cid=113</wfw:commentRss>
    

    <author>nospam@example.com (Jonas Genannt)</author>
    <content:encoded>
    With this post I will explain you the Puppet Configuration Key feature at the &lt;a href=&quot;http://blog.brachium-system.net/archives/110-ServerHardware-documenation.html&quot;&gt;server manager&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
With the puppet configuration key feature you can store configuration data used in puppet classes at your database. You can also store configuration data on server groups and add servers to that group.&lt;br /&gt;
&lt;br /&gt;
Yes - it&#039;s working like ripienaar&#039;s great &lt;a href=&quot;http://www.devco.net/archives/2009/08/31/complex_data_and_puppet.php&quot;&gt;extlookup&lt;/a&gt; but with database.&lt;br /&gt;
&lt;br /&gt;
For this example I have got two hosts:&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;valentina.brachium-system.net&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;web01.brachium-system.net&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;Both hosts are saved on the server manager. &lt;br /&gt;
&lt;br /&gt;
We have some puppet configuration keys at server manager:&lt;br /&gt;
&lt;br /&gt;
&lt;!-- s9ymdb:46 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;702&quot; height=&quot;141&quot;  src=&quot;http://blog.brachium-system.net/uploads/puppet_cfg_keys.jpg&quot;  alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
The first server &lt;b&gt;valentina.brachium-system.net&lt;/b&gt; has got the following puppet key configuration:&lt;br /&gt;
&lt;br /&gt;
&lt;!-- s9ymdb:47 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;620&quot; height=&quot;156&quot;  src=&quot;http://blog.brachium-system.net/uploads/valentina_puppet_cfg_keys.jpg&quot;  alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The second server &lt;b&gt;web01.brachium-system.net&lt;/b&gt; has got the following puppet key configuration:&lt;br /&gt;
&lt;!-- s9ymdb:48 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;602&quot; height=&quot;128&quot;  src=&quot;http://blog.brachium-system.net/uploads/web01.stg_puppet_cfg_keys.jpg&quot;  alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are using this puppet manifest:&lt;br /&gt;
&lt;blockquote&gt;# Configuration for dblookup from servermgmt:&lt;br /&gt;
$dblook_host = &quot;localhost&quot;&lt;br /&gt;
$dblook_user = &quot;servermgmt&quot;&lt;br /&gt;
$dblook_pass = &quot;servermgmt&quot;&lt;br /&gt;
$dblook_db   = &quot;servermgmt&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
class ssh::server {&lt;br /&gt;
            $ssh_server_password_authentication = dblookup(&#039;ssh_server_password_authentication&#039;)&lt;br /&gt;
            $ssh_server_root_login = dblookup(&#039;ssh_server_root_login&#039;)&lt;br /&gt;
            notice(&quot;ssh_server_password_authentication: $ssh_server_password_authentication&quot;)&lt;br /&gt;
            notice(&quot;ssh_server_root_login: $ssh_server_root_login&quot;)&lt;br /&gt;
            file { &quot;/etc/ssh/sshd_config&quot;:&lt;br /&gt;
                    content =&gt; template(&quot;/home/jonas/puppet/templates/sshd_config.erb&quot;)&lt;br /&gt;
           }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
node default {&lt;br /&gt;
        $pkg_install_subversion = dblookup(&#039;pkg_install_subversion&#039;)&lt;br /&gt;
        notice(&quot;We are the server: ${fqdn}&quot;)&lt;br /&gt;
        notice(&quot;pkg_install_subversion: $pkg_install_subversion&quot;)&lt;br /&gt;
        include ssh::server&lt;br /&gt;
        package {&quot;subversion&quot;:&lt;br /&gt;
                ensure =&gt; dblookup(&#039;pkg_install_subversion&#039;)&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We run that manifest on the server &lt;b&gt;valentina&lt;/b&gt;:&lt;br /&gt;
&lt;blockquote&gt;notice: Scope(Node[default]): We are the server: valentina.brachium-system.net&lt;br /&gt;
notice: Scope(Node[default]): pkg_install_subversion: present&lt;br /&gt;
notice: Scope(Class[ssh::server]): ssh_server_password_authentication: yes&lt;br /&gt;
notice: Scope(Class[ssh::server]): ssh_server_root_login: no&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We run that manifest on the server &lt;b&gt;web01&lt;/b&gt;:&lt;br /&gt;
&lt;blockquote&gt;notice: Scope(Node[default]): We are the server: web01.stg.brachium-system.net&lt;br /&gt;
notice: Scope(Node[default]): pkg_install_subversion: absent&lt;br /&gt;
notice: Scope(Class[ssh::server]): ssh_server_password_authentication: no&lt;br /&gt;
notice: Scope(Class[ssh::server]): ssh_server_root_login: yes&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
You can see on the verbose output from puppet, the information is fetched from the database - if the server has got no own value for one key, the default value is used.&lt;br /&gt;
&lt;br /&gt;
You can get the source at &lt;a href=&quot;http://github.com/hggh/servermgmt&quot;&gt;http://github.com/hggh/servermgmt&lt;/a&gt; 
    </content:encoded>

    <pubDate>Mon, 15 Feb 2010 21:47:35 +0100</pubDate>
    <guid isPermaLink="false">http://blog.brachium-system.net/archives/113-guid.html</guid>
    
</item>

</channel>
</rss>
