<?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; Linux</title>
	<atom:link href="http://blogs.glou.org/arnaud/tag/linux/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>S&#8217;il te plaît, dessine-moi un cluster !</title>
		<link>http://blogs.glou.org/arnaud/2009/10/16/sil-te-plait-dessine-moi-un-cluster%c2%a0/</link>
		<comments>http://blogs.glou.org/arnaud/2009/10/16/sil-te-plait-dessine-moi-un-cluster%c2%a0/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 22:14:25 +0000</pubDate>
		<dc:creator>nono</dc:creator>
				<category><![CDATA[geekeries]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[heartbeat]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[openais]]></category>
		<category><![CDATA[pacemaker]]></category>

		<guid isPermaLink="false">http://blogs.glou.org/arnaud/?p=157</guid>
		<description><![CDATA[Juste un petit lien vers une doc Linux-HA que je trouve au premier abord claire et bien foutue : celle de Novell/SuSE. Claire et bien foutue, ça veut surtout dire que j&#8217;ai à peu près compris ce qu&#8217;il y a dedans, ce qui n&#8217;est pas forcément le cas de celles que j&#8217;avais pratiquées jusqu&#8217;alors.
]]></description>
			<content:encoded><![CDATA[<p>Juste un petit lien vers une doc Linux-HA que je trouve au premier abord claire et bien foutue : <a href="http://www.novell.com/documentation/sle_ha/book_sleha/?page=/documentation/sle_ha/book_sleha/data/book_sleha.html">celle de Novell/SuSE</a>. Claire et bien foutue, ça veut surtout dire que j&#8217;ai à peu près compris ce qu&#8217;il y a dedans, ce qui n&#8217;est pas forcément le cas de celles que j&#8217;avais pratiquées jusqu&#8217;alors.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.glou.org/arnaud/2009/10/16/sil-te-plait-dessine-moi-un-cluster%c2%a0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transformer un NAS NeutralNAS NE52PRO en Thecus N5200PRO</title>
		<link>http://blogs.glou.org/arnaud/2009/01/08/transformer-un-nas-neutralnas-ne52pro-en-thecus-n5200pro/</link>
		<comments>http://blogs.glou.org/arnaud/2009/01/08/transformer-un-nas-neutralnas-ne52pro-en-thecus-n5200pro/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 13:45:21 +0000</pubDate>
		<dc:creator>nono</dc:creator>
				<category><![CDATA[geekeries]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[NAS]]></category>
		<category><![CDATA[Thecus]]></category>

		<guid isPermaLink="false">http://blogs.glou.org/arnaud/?p=32</guid>
		<description><![CDATA[Transtec nous a envoyé un N5200PRO avec un firmware modifié qui s&#8217;identifiait comme un NeutralNAS NE52PRO. Du coup, les modules refusent de s&#8217;installer parce que « c&#8217;est pas la bonne machine ».
Pour contourner, il faut modifier les modules SYSUSER et SSHD pour qu&#8217;ils acceptent de s&#8217;installer ; ça veut dire passer les patches suivants et [...]]]></description>
			<content:encoded><![CDATA[<p>Transtec nous a envoyé un N5200PRO avec un firmware modifié qui s&#8217;identifiait comme un NeutralNAS NE52PRO. Du coup, les modules refusent de s&#8217;installer parce que « c&#8217;est pas la bonne machine ».</p>
<p>Pour contourner, il faut modifier les modules <em>SYSUSER</em> et <em>SSHD</em> pour qu&#8217;ils acceptent de s&#8217;installer ; ça veut dire passer les patches suivants et les recompiler :</p>
<pre>diff -urN N5200_SYSUSER_2.00.02/SYSUSER/Configure/install.rdf N5200_SYSUSER_2.00.02.ne52pro/SYSUSER/Configure/install.rdf
--- N5200_SYSUSER_2.00.02/SYSUSER/Configure/install.rdf 2007-01-31 18:11:44.000000000 +0100
+++ N5200_SYSUSER_2.00.02.ne52pro/SYSUSER/Configure/install.rdf 2009-01-08 14:17:40.846560965 +0100
@@ -18,8 +18,8 @@
                &lt;md:UI&gt;Thecus&lt;/md:UI&gt;
        &lt;/md:Install&gt;
        &lt;md:NAS&gt;
-               &lt;md:TargetNas&gt;Thecus&lt;/md:TargetNas&gt;
-               &lt;md:NasType&gt;n5200&lt;/md:NasType&gt;
+               &lt;md:TargetNas&gt;&lt;/md:TargetNas&gt;
+               &lt;md:NasType&gt;NE52&lt;/md:NasType&gt;
                &lt;md:NasVersion&gt;1.00.06.5&lt;/md:NasVersion&gt;
        &lt;/md:NAS&gt;
 &lt;/rdf:RDF&gt;</pre>
<pre>diff -urN N5200_SSHD_2.00.00/SSHD/Configure/install.rdf N5200_SSHD_2.00.00.ne52pro/SSHD/Configure/install.rdf
--- N5200_SSHD_2.00.00/SSHD/Configure/install.rdf       2007-01-17 18:17:57.000000000 +0100
+++ N5200_SSHD_2.00.00.ne52pro/SSHD/Configure/install.rdf       2009-01-08 14:18:15.080559781 +0100
@@ -18,8 +18,8 @@
                &lt;md:UI&gt;Thecus&lt;/md:UI&gt;
        &lt;/md:Install&gt;
        &lt;md:NAS&gt;
-               &lt;md:TargetNas&gt;Thecus&lt;/md:TargetNas&gt;
-               &lt;md:NasType&gt;n5200&lt;/md:NasType&gt;
+               &lt;md:TargetNas&gt;&lt;/md:TargetNas&gt;
+               &lt;md:NasType&gt;NE52&lt;/md:NasType&gt;
                &lt;md:NasVersion&gt;1.00.06.5&lt;/md:NasVersion&gt;
        &lt;/md:NAS&gt;
 &lt;/rdf:RDF&gt;</pre>
<p>Les modules acceptent maintenant de s&#8217;installer ; une fois que c&#8217;est fait, on peut se connecter en ssh sur la machine et modifier le fichier <em>/app/manifest.txt</em>. Il doit ressembler à ça :</p>
<pre>type    n5200
producer        THECUS</pre>
<p>Voilà, la boîboîte est maintenant une « vraie » Thecus N5200PRO. On peut maintenant mettre le firmware à jour et tout marche comme il faut.</p>
<p>Les modules et les firmwares sont téléchargeables depuis <a title="le wiki Thecus" href="http://onbeat.dk/thecus/index.php/N5200_Resources">le wiki Thecus</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.glou.org/arnaud/2009/01/08/transformer-un-nas-neutralnas-ne52pro-en-thecus-n5200pro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPv6 à la maison</title>
		<link>http://blogs.glou.org/arnaud/2009/01/08/ipv6-a-la-maison/</link>
		<comments>http://blogs.glou.org/arnaud/2009/01/08/ipv6-a-la-maison/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 23:20:27 +0000</pubDate>
		<dc:creator>nono</dc:creator>
				<category><![CDATA[geekeries]]></category>
		<category><![CDATA[ADSL]]></category>
		<category><![CDATA[FDN]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.glou.org/~arnaud/wp/?p=18</guid>
		<description><![CDATA[FDN propose depuis peu une connectivité IPv6 à ses abonnés. Voilà comment ça se configure sur un routeur sous Debian.  Bien entendu, les adresses IP (v4 comme v6) mentionnées ici sont les miennes, il conviendra de les adapter.
Le point de départ
Un PC x86 sous Debian Etch tout ce qu&#8217;il y a de plus banal. [...]]]></description>
			<content:encoded><![CDATA[<p>FDN propose depuis peu une connectivité IPv6 à ses abonnés. Voilà comment ça se configure sur un routeur sous Debian.  Bien entendu, les adresses IP (v4 comme v6) mentionnées ici sont les miennes, il conviendra de les adapter.</p>
<h1>Le point de départ</h1>
<p>Un PC x86 sous Debian Etch tout ce qu&#8217;il y a de plus banal. Il possède 2 interfaces ethernet (<em>eth0</em> vers le réseau local et <em>eth1</em> vers le modem ADSL) ; une interface virtuelle <em>dummy0</em> est configurée en plus pour garder l&#8217;adresse IPv4 publique accessible même quand le lien PPP est tombé.</p>
<h1>Le fichier interfaces</h1>
<p>Le fichier <em>/etc/network/interfaces</em> contient la configuration des interfaces réseau de la machine, hors PPP. On lui ajoute, pour chaque interface concernée, une section IPv6. On peut en profiter pour forcer le lancement de <em>radvd</em> (cf plus loin) quand on monte une interface ethernet (la directive <em>up</em>). Au final, il ressemble à ça :</p>
<pre>auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 192.168.62.252
        netmask 255.255.255.0
        network 192.168.62.0
        broadcast 192.168.62.255
iface eth0 inet6 static
        address 2001:910:1021::1
        netmask 64
        up /etc/init.d/radvd restart

auto eth1
iface eth1 inet static
        address 10.0.0.2
        netmask 255.255.255.0
        network 10.0.0.0
        broadcast 10.0.0.255

auto dummy0
iface dummy0 inet static
        address 80.67.176.33
        netmask 255.255.255.255
        network 80.67.176.33
        broadcast 80.67.176.33
iface dummy0 inet6 static
        address 2001:910:1021:1::1
        netmask 64</pre>
<p>L&#8217;adresse 80.67.176.33 est mon IP fixe publique. Les adresses IPv6 sont prises dans le sous-réseau /48 attribué par FDN ; chaque interface reçoit un /64.</p>
<h1>radvd</h1>
<p>Le démon <em>radvd</em> sert aux routeurs IPv6 à annoncer les préfixes locaux et un minimum de données de routage sur les différentes interfaces ethernet de la machine. Charge ensuite aux autres machines du réseau local d&#8217;ajuster leur configuration pour que « ça marche tout seul ». Sa configuration se trouve dans le fichier <em>/etc/radvd.conf</em> ; chez moi, il ressemble à ça :</p>
<pre>interface eth0 {
        AdvSendAdvert on;
        prefix 2001:910:1021:0::/64
        {
                AdvOnLink on;
                AdvAutonomous on;
        };
};
</pre>
<h1>La configuration PPP</h1>
<p>Tout d&#8217;abord il faut ajouter les deux lignes suivantes au fichier de configuration de ppp (<em>/etc/ppp/peers/fdn</em> chez moi, mais ça dépend de votre config) :</p>
<pre>ipv6 ,
ipparam fdn</pre>
<p>La première ligne force <em>pppd</em> a négocier une adresse IPv6. Il s&#8217;agira probablement d&#8217;une adresse lien-local, mais peu importe, elle servira simplement à notre machine pour dialoguer avec l&#8217;équipement de FDN.  La deuxième ligne est un paramètre qui sera passé en 6ème position au script <em>/etc/ppp/ipv6-up</em>, qui va lui-même le transmettre à ses collègues du répertoire <em>/etc/ppp/ipv6-up.d</em> sous le doux nom de <em>PPP_IPPARAM</em>. Vous voyez où je veux en venir ? Il suffit maintenant de poser un script <em>/etc/ppp/ipv6-up.d/00defaultroute</em> dont le contenu sera le suivant :</p>
<pre>#!/bin/sh

if [ "$PPP_IPPARAM" = "fdn" ];
then
    /sbin/ip -f inet6 route del ::/0
    /sbin/ip -f inet6 route add ::/0 dev $PPP_IFACE
fi</pre>
<p>Ne pas oublier de le rendre exécutable, et c&#8217;est gagné, on a une route par défaut.</p>
<h1>Le routage</h1>
<p>Maintenant, c&#8217;est la partie facile avec des petits détails à ne pas oublier. D&#8217;abord autoriser le routage IPv6 ; ça se passe dans le fichier <em>/etc/sysctl.conf</em> auquel on ajoute une ligne :</p>
<pre>net.ipv6.conf.all.forwarding=1</pre>
<p>On peut l&#8217;activer immédiatement au moyen de la commande suivante :</p>
<pre>sysctl -w net.ipv6.conf.all.forwarding=1</pre>
<p>Ensuite le firewall ; sur les noyaux Linux récents (par exemple le noyau 2.6.24-etchnhalf de Debian Etch), ça marche exactement comme en IPv4, il suffit de remplacer la commande <em>iptables</em> par <em>ip6tables</em>. Un exemple minimaliste :</p>
<pre>#!/bin/sh

ip6tbl=/sbin/ip6tables

echo -n "Setting up IPv6 filter: "

/sbin/sysctl -w net.ipv6.conf.all.forwarding=0

$ip6tbl -F
$ip6tbl -X

$ip6tbl -P INPUT DROP
$ip6tbl -P OUTPUT ACCEPT
$ip6tbl -P FORWARD DROP

# conntrack
$ip6tbl -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$ip6tbl -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

######################################################
#### local
# icmp, aucazou
$ip6tbl -A INPUT --protocol icmpv6 -j ACCEPT --match limit --limit 30/minute

# services locaux
$ip6tbl -A INPUT -p tcp --dport 22 -j ACCEPT
$ip6tbl -A INPUT -p tcp --dport 25 -j ACCEPT
$ip6tbl -A INPUT -p tcp --dport 53 -j ACCEPT
$ip6tbl -A INPUT -p udp --dport 53 -j ACCEPT
$ip6tbl -A INPUT -p tcp --dport 80 -j ACCEPT

######################################################
#### reseau interne
# on peut sortir
$ip6tbl -A FORWARD -i eth0 -o ppp+ -j ACCEPT

# ping
$ip6tbl -A FORWARD -p icmpv6 -j ACCEPT
# ssh vers les machines internes
$ip6tbl -A FORWARD -p tcp --dport 22 -j ACCEPT

/sbin/sysctl -w net.ipv6.conf.all.forwarding=1

echo "done."</pre>
<p>À adapter à vos besoins bien entendu.  Voilà, c&#8217;est prêt ! Reste à trouver ce qu&#8217;on va faire de 65534 autres sous-réseaux. <img src='http://blogs.glou.org/arnaud/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.glou.org/arnaud/2009/01/08/ipv6-a-la-maison/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>
