<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>debian on head /dev/log</title>
    <link>https://www.lamy.im/tags/debian/</link>
    <description>Recent content in debian on head /dev/log</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 19 Oct 2015 08:39:05 +0000</lastBuildDate><atom:link href="https://www.lamy.im/tags/debian/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>HAproxy 1.6 sur debian 8 avec keepalived</title>
      <link>https://www.lamy.im/posts/haproxy-1-6-sur-debian-8-avec-keepalived/</link>
      <pubDate>Mon, 19 Oct 2015 08:39:05 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/haproxy-1-6-sur-debian-8-avec-keepalived/</guid>
      <description>HAproxy 1.6 is out !
Parlons de son installation avec keepalived qui va gerer noter bascule de VIP.
Keepalived va s’occuper de la bascule de VIP via VRRP.
installation des paquets
Installons HAproxy 1.6 grace aux dépots de http://haproxy.debian.net/
$ apt install keepalived haproxy Autorisons linux à utiliser une adresse non localement configurée
$ echo &amp;#34;net.ipv4.ip_nonlocal_bind=1&amp;#34; &amp;gt;&amp;gt; /etc/sysctl.conf $ sysctl -p keepalived configuration, /etc/keepalived/keepalived.conf
Le fichier de configuration est commenté avec les information de la manpage que je vous invite a lire.</description>
      <content>&lt;p&gt;HAproxy 1.6 is out !&lt;br&gt;
Parlons de son installation avec keepalived qui va gerer noter bascule de VIP.&lt;br&gt;
Keepalived va s’occuper de la bascule de VIP via VRRP.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;installation des paquets&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Installons HAproxy 1.6 grace aux dépots de &lt;a href=&#34;http://haproxy.debian.net/&#34;&gt;http://haproxy.debian.net/&lt;/a&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ apt install keepalived haproxy
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Autorisons linux à utiliser une adresse non localement configurée&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
$ echo &amp;#34;net.ipv4.ip_nonlocal_bind=1&amp;#34; &amp;gt;&amp;gt; /etc/sysctl.conf
$ sysctl -p
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;keepalived configuration, /etc/keepalived/keepalived.conf&lt;/strong&gt;&lt;br&gt;
Le fichier de configuration est commenté avec les information de la manpage que je vous invite a lire.&lt;/p&gt;
&lt;p&gt;Sur le noeud maître:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
# global definitions
global_defs {
}

# healthcheck of HAproxy
vrrp_script check_haproxy {
        script &amp;#34;killall -0 haproxy&amp;#34; # killall is faster
        interval 2 # in sec
        weight 2   #
}

# vrrp instance definition
vrrp_instance vrrp_01 {
        state MASTER
        interface eth0
        virtual_router_id 10 # used to differentiate multiple instances of vrrpd running on the same NI
        priority 150         # to be MASTER, make 50 more than other machines. priority 100
        use_vmac             # Use VRRP Virtual MAC - will create a vrrp.10 iface
        # authentication to access vrrpd
        authentication {
                auth_type PASS
                auth_pass testpass
        }
        # vip on wich HAproxy run
        virtual_ipaddress {
                192.168.122.10
                192.168.122.9
        }
        # healthcheck to use
        track_script {
                check_haproxy
        }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Peu de différences pour la configuration du noeud esclave (slave state et priority):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
 definitions
global_defs {
}

# healthcheck of HAproxy
vrrp_script check_haproxy {
    script &amp;#34;killall -0 haproxy&amp;#34; # killall is faster
    interval 2 # in sec
    weight 2   #
}

# vrrp instance definition
vrrp_instance vrrp_01 {
    state SLAVE
    interface eth0
    virtual_router_id 10 # used to differentiate multiple instances of vrrpd running on the same NI
    priority 50          # to be MASTER, make 50 more than other machines. priority 100
    use_vmac             # Use VRRP Virtual MAC - will create a vrrp.10 iface
    # authentication to access vrrpd
    authentication {
        auth_type PASS
        auth_pass testpass
    }
    # vip on wich HAproxy run
    virtual_ipaddress {
        192.168.122.10
        192.168.122.9
    }
    # healthcheck to use
    track_script {
        check_haproxy
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;HAproxy configuration&lt;/strong&gt;&lt;br&gt;
Utiliser la même configuration sur tous vos noeuds est chaudement recommandé ;-)&lt;/p&gt;
&lt;p&gt;Je vous laisse découvrir HAproxy si vous ne connaissez pas déjà ce formidable logiciel !&lt;br&gt;
Je décris ici une configuration simpliste pour tester notre configuration de keepalived:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;frontend f_vrrp10_svc
 bind 192.168.122.10:80
 default_backend b_webfarm
 
backend b_webfarm
 server srv1 192.168.122.21:80 check
 server srv2 192.168.122.22:80 check
 server srv3 192.168.122.23:80 check
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ce post est inspiré par cet article.&lt;br&gt;
&lt;a href=&#34;http://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/&#34;&gt;http://dasunhegoda.com/how-to-setup-haproxy-with-keepalived/833/&lt;/a&gt;&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>burp : la sauvegarde simple qui juste marche</title>
      <link>https://www.lamy.im/posts/burp-la-sauvegarde-simple-qui-juste-marche/</link>
      <pubDate>Sat, 12 Sep 2015 22:53:22 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/burp-la-sauvegarde-simple-qui-juste-marche/</guid>
      <description>Cette fois, je vais parler sauvegarde avec le logiciel burp. Je vous laisse vous référer au site officiel pour en apprendre plus sur les raisons du démarrage de ce projet par Graham Keeling. Burp est basé sur librsync, ce qui lui permet d’être très efficace sur les sauvegardes différentielles.
Des points intéressants de ce logiciel sont que le client fonctionne sur linux/mac/windows, qu’il est très simple à mettre en place. Par exemple, le client et le serveur sont dans le même binaire, il y a très peu de dépendances etc.</description>
      <content>&lt;p&gt;Cette fois, je vais parler sauvegarde avec le logiciel &lt;strong&gt;burp&lt;/strong&gt;. Je vous laisse vous référer au &lt;a href=&#34;http://burp.grke.org&#34;&gt;site officiel&lt;/a&gt; pour en apprendre plus sur les raisons du démarrage de ce projet par Graham Keeling. Burp est basé sur librsync, ce qui lui permet d’être très efficace sur les sauvegardes différentielles.&lt;/p&gt;
&lt;p&gt;Des points intéressants de ce logiciel sont que le client fonctionne sur linux/mac/windows, qu’il est très simple à mettre en place. Par exemple, le client et le serveur sont dans le même binaire, il y a très peu de dépendances etc.&lt;/p&gt;
&lt;p&gt;Autre point important pour mon cas d’usage qui comprend des ordinateurs portables qui ne sont pas toujours présents sur le réseau: c’est le client qui vient demander au serveur s’il est temps pour lui de se sauvegarder.&lt;/p&gt;
&lt;p&gt;Concrètement, il s’agit d’un cron qui se lance régulierement pour interroger le serveur. Selon la politique de sauvegarde définie et la date de la dernière sauvegarde, le serveur autorise la sauvegarde ou non. Le script de calcul coté serveur est bien sur configurable et modifiable.&lt;/p&gt;
&lt;p&gt;Je vais rapidement dérouler l’installation et la sauvegarde du premier client sur Debian.&lt;/p&gt;
&lt;p&gt;Installation du server et du client :&lt;br&gt;
&lt;code&gt;apt install burp&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Sur le serveur, autoriser le démon à se lancer en mettant &lt;strong&gt;RUN=yes&lt;/strong&gt; dans &lt;strong&gt;/etc/default/burp&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La configuration du serveur se fait dans &lt;strong&gt;/etc/burp/burp-server.conf&lt;/strong&gt;&lt;br&gt;
L’ajout d’un client se passe simplement, il faut une configuration sur le serveur et une sur le client avec un mot de passe commun.&lt;/p&gt;
&lt;p&gt;Exemple sur le serveur dans &lt;strong&gt;/etc/burp/clientconfdir/client_test&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;password = passbkp&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Exemple sur le client dans &lt;strong&gt;/etc/burp/burp.conf&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;mode = client 
port = 4971
server = 10.0.0.1
password = passbkp
cname = client_test
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Bien sur il ne faut pas oublier de modifier le reste du fichier pour limiter le débit si necessaire et ajuster les inclusions et exclusions.&lt;/p&gt;
&lt;p&gt;A la première communication, le serveur va verifier le mot de passe puis signer le certificat X509 généré par le client, cela servira à chiffrer les communications par la suite.&lt;/p&gt;
&lt;p&gt;un rapide &lt;code&gt;burp -a b&lt;/code&gt; pour lancer la premiere sauvegarde, puis l’ajout de &lt;code&gt;burp -a t&lt;/code&gt; en cron et c’est fini !&lt;/p&gt;
&lt;p&gt;Après la première sauvegarde, cela va assez vite car burp inventorie les metadonnées des fichiers à sauvegarder puis les compare aux métadonnées de la derniere sauvegarde du serveur.&lt;br&gt;
Cela lui permet de ne sauvegarder que les fichiers ajoutés et pour les fichiers modifiés, seuls les blocs modifiés sont transmis.&lt;/p&gt;
&lt;p&gt;Une interface de visualisation est disponible depuis le serveur :&lt;br&gt;
&lt;code&gt;burp -c /etc/burp/burp-server.conf -a s&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Ziirish à lancé un projet d’interface web de monitoring et de configuration pour burp. Ça se passe ici pour ceux qui veulent tester : &lt;a href=&#34;https://git.ziirish.me/ziirish/burp-ui&#34;&gt;https://git.ziirish.me/ziirish/burp-ui&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Au moment de tester les restaurations, c’est amusant de voir que les regex sont utilisées pour selectioner les fichiers ou repertoires à remonter. C’est vraiment pratique.&lt;/p&gt;
&lt;p&gt;Exemple pour restaurer un fichier depuis le backup numéro 1 dans le repertoire /tmp/&lt;br&gt;
&lt;code&gt;burp -a r -b 1 -r fichier$ -d /tmp/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;C’est &lt;a href=&#34;https://en.wikipedia.org/wiki/KISS_principle&#34;&gt;KISS&lt;/a&gt; non ? 🙂&lt;/p&gt;
&lt;p&gt;En bonus voici les infos qu’on trouve pour résumer l’état d’un backup.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;--------------------------------------------------------------------------------&amp;lt;
Start time: 2015-09-11 19:27:01
End time: 2015-09-11 19:28:08
Time taken: 01:07
                         New   Changed Unchanged   Deleted     Total |  Scanned
                   ------------------------------------------------------------
            Files:        15        59         0         0        74 |    48610
        Meta data:         0         0         0         0         0 |        1
      Directories:         0         0         0         0         0 |     6002
       Soft links:         0         0         0         0         0 |       56
    Special files:         0         0         0         0         0 |        2
      Grand total:        15        59         0         0        74 |    54671
                   ------------------------------------------------------------

 Warnings: 1

 Bytes estimated: 213898414380 (199.21 GB)  
 Bytes in backup: 110569423 (105.45 MB)  
 Bytes received: 0  
 Bytes sent: 23859722 (22.75 MB)  
--------------------------------------------------------------------------------
&lt;/code&gt;&lt;/pre&gt;</content>
    </item>
    
    <item>
      <title>debian wheezy dpkg: error processing forked-daapd</title>
      <link>https://www.lamy.im/posts/debian-wheezy-dpkg-error-processing-forked-daapd/</link>
      <pubDate>Thu, 09 May 2013 17:40:48 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/debian-wheezy-dpkg-error-processing-forked-daapd/</guid>
      <description>Une machine sous debian testing fraichement passée en wheezy a quelques soucis de mise à jour à cause de forked-daapd.
Setting up forked-daapd (0.19gcd-dmo1) ... Starting RSP and DAAP media server: invoke-rc.d: initscript forked-daapd, action &amp;#34;start&amp;#34; failed. dpkg: error processing forked-daapd (--configure): subprocess installed post-installation script returned error exit status 1 Errors were encountered while processing: forked-daapd E: Sub-process /usr/bin/dpkg returned an error code (1) A package failed to install. Trying to recover: Setting up forked-daapd (0.</description>
      <content>&lt;p&gt;Une machine sous debian testing fraichement passée en wheezy a quelques soucis de mise à jour à cause de forked-daapd.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Setting up forked-daapd (0.19gcd-dmo1) ...
Starting RSP and DAAP media server: invoke-rc.d: initscript forked-daapd, action &amp;#34;start&amp;#34; failed.
dpkg: error processing forked-daapd (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
forked-daapd
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install.  Trying to recover:
Setting up forked-daapd (0.19gcd-dmo1) ...
Starting RSP and DAAP media server: invoke-rc.d: initscript forked-daapd, action &amp;#34;start&amp;#34; failed.
dpkg: error processing forked-daapd (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
forked-daapd
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Il a suffit de killer le processus &lt;em&gt;/usr/sbin/forked-daapd&lt;/em&gt; et de relancer l’installation du paquet pour que tout soit OK.&lt;/p&gt;
&lt;p&gt;Pour une fois c’était presque trop simple.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Migration de trac vers redmine ?</title>
      <link>https://www.lamy.im/posts/migration-de-trac-vers-redmine/</link>
      <pubDate>Tue, 26 May 2009 01:00:42 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/migration-de-trac-vers-redmine/</guid>
      <description>Redmine est l&amp;rsquo;outil de gestion de projet concurrent de trac qui monte qui monte.
C&amp;rsquo;est une application qui utilise le framework RoR. J&amp;rsquo;ai voulu le tester et pour cela, j&amp;rsquo;ai importé les données du trac que j&amp;rsquo;utilise.
aptitude install rubygems rake libmysql-ruby libopenssl-ruby libsqlite3-ruby libmysql est nécessaire à Redmine pour utiliser mysql, sqlite3 pour faire l&amp;rsquo;import de trac. Voici à quoi ressemble la migration de trac vers Redmine, l&amp;rsquo;outil fonctionne sans problème.</description>
      <content>&lt;p&gt;Redmine est l&amp;rsquo;outil de gestion de projet concurrent de trac qui monte qui monte.&lt;br&gt;
C&amp;rsquo;est une application qui utilise le framework RoR. J&amp;rsquo;ai voulu le tester et pour cela, j&amp;rsquo;ai importé les données du trac que j&amp;rsquo;utilise.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;aptitude install rubygems rake libmysql-ruby libopenssl-ruby libsqlite3-ruby
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;libmysql est nécessaire à Redmine pour utiliser mysql, sqlite3 pour faire l&amp;rsquo;import de trac.
Voici à quoi ressemble la migration de trac vers Redmine, l&amp;rsquo;outil fonctionne sans problème.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ rake redmine:migrate_from_trac RAILS_ENV=&amp;#34;production
WARNING: a new project will be added to Redmine during this process.
Are you sure you want to continue ? [y/N] Y
Trac directory []: /home/trac/blahblah/
Trac database adapter (sqlite, sqlite3, mysql, postgresql) [sqlite]: sqlite3
Trac database encoding [UTF-8]:
Target project identifier []: blahblah
This project already exists in your Redmine database.
Are you sure you want to append data to this project ? [Y/n] y
Migrating components
Migrating milestones
Migrating custom fields
Migrating tickets
Migrating wiki
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Tout est présent, les utilisateurs sont fonctionnels.
Après un rapide tour du propriétaire, voici mes premières impressions sur Redmine :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Supporte nativement multiprojets&lt;/li&gt;
&lt;li&gt;Il permet d&amp;rsquo;utiliser un forum, joindre des documents par projet&lt;/li&gt;
&lt;li&gt;Il se comporte comme un client svn distant et n&amp;rsquo;a pas besoin d&amp;rsquo;avoir accès au FS comme trac&lt;/li&gt;
&lt;li&gt;Interface d&amp;rsquo;administration très complete&lt;/li&gt;
&lt;li&gt;Diagramme de Gantt automatique&lt;/li&gt;
&lt;/ul&gt;
</content>
    </item>
    
    <item>
      <title>la tête d&#39;oeuf refuse le background !</title>
      <link>https://www.lamy.im/posts/eggdrop-background-debian-lenny/</link>
      <pubDate>Tue, 03 Feb 2009 17:01:28 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/eggdrop-background-debian-lenny/</guid>
      <description>La migration vers les VM Xen toutes fraiches continue.
kasimir, notre eggdrop d&amp;rsquo;amour fait son récalcitrant. Lancé en foreground, il se connecte correctement au serveur mais pas en mode background… gênant pour un bot irc 🙂
Heureusement, la solution est expliquée ici. Il faut patcher et compiler avec l’option –enable-tcl-threadsmake et roulez jeunesse.
Pour ceux qui utilisent le paquet eggdrop debian le patch est deja intégré à testing.
(oui, le bug date de plusieurs mois, et alors ?</description>
      <content>&lt;p&gt;La migration vers les VM Xen toutes fraiches continue.&lt;/p&gt;
&lt;p&gt;kasimir, notre eggdrop d&amp;rsquo;amour fait son récalcitrant. Lancé en foreground, il se connecte correctement au serveur mais pas en mode background… gênant pour un bot irc 🙂&lt;/p&gt;
&lt;p&gt;Heureusement, la solution est expliquée &lt;a href=&#34;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=487541#33&#34;&gt;ici&lt;/a&gt;. Il faut patcher et compiler avec l’option –enable-tcl-threadsmake et roulez jeunesse.&lt;/p&gt;
&lt;p&gt;Pour ceux qui utilisent le paquet eggdrop debian le patch est deja intégré à testing.&lt;br&gt;
(oui, le bug date de plusieurs mois, et alors ?)&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Debian testing hybride avec unstable</title>
      <link>https://www.lamy.im/posts/debian-testing-hybride-unstable/</link>
      <pubDate>Sat, 16 Aug 2008 02:48:24 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/debian-testing-hybride-unstable/</guid>
      <description>Encore un tip qui vient du wiki. Merci Superna 🙂
Introduction Il arrive que la debian testing soit en manque ce certains paquets qui sont disponibles en unstable.
Il faut alors mettre sa debian en Hybride, en ajoutant le repository unstable et régler apt pour donner une plus grande priorité a Testing.
Ajout de Unstable Ajoutez dans votre /etc/apt/sources.list les lignes correspondant à unstable.
Par exemple vous pouvez avoir :</description>
      <content>&lt;p&gt;&lt;em&gt;Encore un tip qui vient du wiki. Merci Superna 🙂&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Il arrive que la debian testing soit en manque ce certains paquets qui sont disponibles en unstable.&lt;br&gt;
Il faut alors mettre sa debian en Hybride, en ajoutant le repository unstable et régler apt pour donner une plus grande priorité a Testing.&lt;/p&gt;
&lt;h2 id=&#34;ajout-de-unstable&#34;&gt;Ajout de Unstable&lt;/h2&gt;
&lt;p&gt;Ajoutez dans votre &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; les lignes correspondant à unstable.&lt;/p&gt;
&lt;p&gt;Par exemple vous pouvez avoir :&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;deb http://ftp.fr.debian.org/debian/ testing main contrib
deb-src http://ftp.fr.debian.org/debian/ testing main contrib
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ajoutez a la suite :&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;deb http://ftp.fr.debian.org/debian/ unstable main contrib
deb-src http://ftp.fr.debian.org/debian/ unstable main contrib
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;régler-les-priorités&#34;&gt;Régler les priorités&lt;/h2&gt;
&lt;p&gt;Créez le fichier /etc/apt/preferences et ajoutez :&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Package: *
Pin: release a=testing
Pin-Priority: 100
Package: *
Pin: release a=unstable
Pin-Priority: 90
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Il faut que la priorité de unstable (ici 90) soit inférieure a celle de testing (ici 100)&lt;br&gt;
On aurait pu mettre 1 et 2 !&lt;/p&gt;
&lt;p&gt;Ensuite, vous aurez accés a tout les paquets de testing et en plus a ceux de unstable qui manqueraient.&lt;/p&gt;
</content>
    </item>
    
  </channel>
</rss>
