<?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>Le blog à Nono &#187; puppet</title>
	<atom:link href="http://blogs.glou.org/arnaud/tag/puppet/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.glou.org/arnaud</link>
	<description>C'est l'histoire d'un geek...</description>
	<lastBuildDate>Tue, 03 Aug 2010 16:01:04 +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>Choisir le bon /usr/sbin/sendmail avec puppet</title>
		<link>http://blogs.glou.org/arnaud/2009/09/02/choisir-le-bon-usrsbinsendmail-avec-puppet/</link>
		<comments>http://blogs.glou.org/arnaud/2009/09/02/choisir-le-bon-usrsbinsendmail-avec-puppet/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 09:43:57 +0000</pubDate>
		<dc:creator>nono</dc:creator>
				<category><![CDATA[geekeries]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[ssmtp]]></category>

		<guid isPermaLink="false">http://blogs.glou.org/arnaud/?p=141</guid>
		<description><![CDATA[Un peu de contexte
J&#8217;utilise linux-vserver sur une poignée de machines qui hébergent chacune quelques dizaines d&#8217;instances d&#8217;OS. Dans mon installation de base (CentOS), chaque isolateur fait tourner sendmail pour envoyer le mail local vers l&#8217;extérieur ; je parle essentiellement des rapports de logwatch et autres cronneries. Avec tous les problèmes habituels en cas de forte charge, [...]]]></description>
			<content:encoded><![CDATA[<h1>Un peu de contexte</h1>
<p>J&#8217;utilise linux-vserver sur une poignée de machines qui hébergent chacune quelques dizaines d&#8217;instances d&#8217;OS. Dans mon installation de base (CentOS), chaque isolateur fait tourner sendmail pour envoyer le mail local vers l&#8217;extérieur ; je parle essentiellement des rapports de logwatch et autres cronneries. Avec tous les problèmes habituels en cas de forte charge, ce qui arrive assez facilement dans ce genre de configuration.</p>
<p>Solution : installer un <em>/usr/sbin/sendmail</em> un peu plus léger, en l&#8217;occurrence <em>ssmtp</em>, sur toutes les machines sauf les vrais serveurs SMTP, qui eux font tourner Postfix.</p>
<h1>La configuration puppet</h1>
<p>Un petit extrait de ma config (nettement plus complète mais pas publiable en l&#8217;état) :</p>
<p><code>class mail{<br />
}<br />
<br />
class mail::smtp inherits mail {<br />
<br />
        package { "ssmtp": ensure => installed, }<br />
<br />
        file { "/etc/ssmtp/ssmtp.conf":<br />
                source => [<br />
                        "puppet:///files/mail/ssmtp.conf.$hostname",<br />
                        "puppet:///mail/ssmtp.conf",<br />
                ],<br />
                owner => root,<br />
                group => root,<br />
                mode => 0644,<br />
                require => Package["ssmtp"],<br />
        }<br />
<br />
        exec { "setup_mta":<br />
                command => "/usr/sbin/update-alternatives --set mta /usr/sbin/sendmail.ssmtp",<br />
                subscribe => Package["ssmtp"],<br />
                refreshonly => true,<br />
        }<br />
<br />
}<br />
<br />
class mail::postfix inherits mail::smtp {<br />
<br />
        package { ["postfix", "postfix-pflogsumm"]: ensure => installed }<br />
<br />
        service { "postfix":<br />
                enable => true,<br />
                ensure => running,<br />
                hasstatus => true,<br />
                subscribe => Package["postfix"],<br />
        }<br />
<br />
        Exec["setup_mta"] {<br />
                command => "/usr/sbin/update-alternatives --set mta /usr/sbin/sendmail.postfix",<br />
                subscribe => Package["postfix"],<br />
        }<br />
<br />
}</code></p>
<p>L&#8217;intérêt de la chose : toutes les machines sont dans la classe <em>mail::smtp</em>, et Postfix est installé uniquement là où il faut, et surtout une même machine peut cumuler les rôles « serveur SMTP » et « autre chose » et tout se passera comme il faut.</p>
<p>Pour le moment, ça installe <em>ssmtp</em> même sur les machines où il n&#8217;est pas nécessaire, on verra à corriger ça dans la prochaine version. <img src='http://blogs.glou.org/arnaud/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.glou.org/arnaud/2009/09/02/choisir-le-bon-usrsbinsendmail-avec-puppet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Puppet pour les nuls</title>
		<link>http://blogs.glou.org/arnaud/2008/09/22/puppet-pour-les-nuls/</link>
		<comments>http://blogs.glou.org/arnaud/2008/09/22/puppet-pour-les-nuls/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 13:11:49 +0000</pubDate>
		<dc:creator>nono</dc:creator>
				<category><![CDATA[geekeries]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[système]]></category>

		<guid isPermaLink="false">http://www.glou.org/~arnaud/wp/?p=5</guid>
		<description><![CDATA[Après quelques temps à m&#8217;intéresser à Puppet, j&#8217;ai finalement décidé de sauter le pas et de commencer à le déployer pour remplacer notre architecture cfengine dont on commence à toucher les limites.
Après avoir passé pas mal de temps à potasser la doc et à demander plein de trucs à Google, voici donc les quelques points [...]]]></description>
			<content:encoded><![CDATA[<p>Après quelques temps à m&#8217;intéresser à <a href="http://puppet.reductivelabs.com/" target="_parent">Puppet</a>, j&#8217;ai finalement décidé de sauter le pas et de commencer à le déployer pour remplacer notre architecture <a href="http://www.cfengine.org/" target="_parent">cfengine</a> dont on commence à toucher les limites.</p>
<p>Après avoir passé pas mal de temps à potasser la doc et à demander plein de trucs à Google, voici donc les quelques points qui m&#8217;ont posé problème. Attention, tout ceci concerne une infrastructure à base de CentOS 4 et 5, avec le serveur sous CentOS 5. Puppet lui-même est installé depuis <a href="http://fedoraproject.org/wiki/EPEL" target="_parent">EPEL</a>.</p>
<h2>Organisation</h2>
<p>Dans le fichier <em>site.pp</em>, on définit juste des classes « conteneurs » comme suit :</p>
<pre>class lamp {
  include php
  include mysql
}</pre>
<p>Les autres classes sont définies dans des fichiers à part (<em>php</em> dans <em>classes/php.pp</em> et ainsi de suite). Ça, c&#8217;est une convention plus qu&#8217;autre chose mais en pratique ça aide à avoir les idées claires.</p>
<h2>LDAP</h2>
<p>J&#8217;utilise <a href="http://reductivelabs.com/trac/puppet/wiki/LDAPNodes" target="_parent">LDAP</a> pour stocker les infos relatives aux clients. Pour que ça fonctionne, il faut :</p>
<ul>
<li>installer <em>ruby-ldap</em> sur le serveur</li>
<li>ajouter, toujours sur le serveur, un fichier <em>/etc/puppet/puppetmasterd.conf</em> avec le contenu suivant :</li>
</ul>
<pre>[main]
    vardir = /var/lib/puppet
    logdir = /var/log/puppet
    rundir = /var/run/puppet
    ssldir = $vardir/ssl

[puppermasterd]
    node_terminus = ldap
    ldapserver = ldap.ircam.fr
    ldapbase = ou=Hosts,dc=ircam,dc=fr</pre>
<p>Pour les clients, tout se passe dans l&#8217;annuaire lui-même : on leur ajoute la classe <em>puppetClient</em> et un champ <em>puppetclass</em> qui contient la liste des classes.</p>
<pre>dn: cn=system.ircam.fr,ou=virtuels,ou=Hosts,dc=ircam,dc=fr
puppetclass: lamp</pre>
<p>Pour le moment, le noeud <em>default</em> est encore en dur dans <em>site.pp</em>, ça râle dans les logs de <em>puppetmasterd</em>, il faudra le pousser dans LDAP un jour ou l&#8217;autre.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.glou.org/arnaud/2008/09/22/puppet-pour-les-nuls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
