<?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>Zoin &#187; adminsys</title>
	<atom:link href="http://www.zoin.fr/category/adminsys/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zoin.fr</link>
	<description></description>
	<lastBuildDate>Thu, 10 Dec 2009 09:00:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Git et Redmine pour les adminsys</title>
		<link>http://www.zoin.fr/adminsys/git-et-redmine-pour-les-adminsys-281/</link>
		<comments>http://www.zoin.fr/adminsys/git-et-redmine-pour-les-adminsys-281/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 08:45:57 +0000</pubDate>
		<dc:creator>flo</dc:creator>
				<category><![CDATA[adminsys]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[outils]]></category>
		<category><![CDATA[Redmine]]></category>
		<category><![CDATA[versionning]]></category>

		<guid isPermaLink="false">http://www.zoin.fr/?p=281</guid>
		<description><![CDATA[Cette semaine, je me suis aperçu avec horreur que je ne me souviens plus du tout de la façon dont sont installées et configurées les 3/4 des applications de mon serveur perso.
La faute en revient à plusieurs éléments pas très glorieux :

 Bah ! ça marche bien comme ça, je toucherais plus de toute façon [...]]]></description>
			<content:encoded><![CDATA[<p>Cette semaine, je me suis aperçu avec horreur que je ne me souviens plus du tout de la façon dont sont installées et configurées les 3/4 des applications de mon serveur perso.<br />
La faute en revient à plusieurs éléments pas très glorieux :</p>
<ul>
<li> <em>Bah !</em> ça marche bien comme ça, je toucherais plus de toute façon !</li>
<li> <em>Pff !</em> ça me broute de commenter mon installation dans un wiki !</li>
</ul>
<p>(Pour le second argument, le fait est qu&#8217;à chaque modification d&#8217;un fichier de configuration, il faudrait le remettre à jour sur le Wiki&#8230; très contraignant pour un informaticien qui se doit d&#8217;être flemmard !)</p>
<p>Après en avoir discuté avec les rigolos de <a href="http://www.gnoulibre.org/">Gnoulibre.org</a>, je me suis laissé convaincre de tester une de leurs solutions à ce problème.</p>
<p><center><a href="http://www.gnoulibre.org/"><img title="Gnoulibre.org" src="http://www.gnoulibre.org/services/GnouLibre_logo.png" alt="Gnoulibre.org" width="32" height="32" /></a></center></p>
<h2>Git + Redmine</h2>
<p>Je pensais ce genre de solution destinée exclusivement aux affreux développeurs d&#8217;applications, alors que non, un administrateur système peut également y trouver son compte !</p>
<div class="wp-caption aligncenter" style="width: 210px"><a href="http://www.flickr.com/photos/leader_maximo/2974206217/"><img title="Berk ! un développeur Web !" src="http://farm4.static.flickr.com/3070/2974206217_6962bda3c9.jpg" alt="Berk ! Un développeur Web !" width="200" height="267" /></a><p class="wp-caption-text">Berk ! un développeur Web !</p></div>
<p><em>Note :</em> La combinaison <em>Git</em> + <em>Redmine</em> n&#8217;est pas la seule solution. Il est possible de faire globalement la même chose en combinant au choix, SVN/Git/Mercurial avec Trac/Redmine/GForge.<br />
<a href="http://subversion.tigris.org/">SVN</a>, <a href="http://git-scm.com/">Git</a> et <a href="http://mercurial.selenic.com/wiki/">Mercurial</a> sont des systèmes de gestion de versions.<br />
<a href="http://trac.edgewall.org/">Trac</a>, <a href="http://www.redmine.org/">Redmine</a> et <a href="http://gforge.org/gf/project/gforge/">GForge</a> sont des applications Web de gestion de projets capables de fonctionner avec les systèmes de gestion de versions.</p>
<p>Le but n&#8217;est pas ici d&#8217;expliquer en détail le fonctionnement de ces outils qui servent normalement à des projets de développement de logiciels, mais globalement :</p>
<ul>
<li> Les fichiers sources sont affichés sur l&#8217;application web.</li>
<li> Tous les collaborateurs peuvent participer à la rédaction d&#8217;un Wiki pour expliquer le fonctionnement du programme.</li>
<li> Les utilisateurs peuvent poster des tickets pour signaler des problèmes ou faire des demandes d&#8217;ajout de fonctionnalités.</li>
<li> L&#8217;avantage de ces outils étant que les fichiers sources sont toujours à jour à l&#8217;aide du système de gestion de version.</li>
<li> &#8230;</li>
</ul>
<p>Les raisons d&#8217;utiliser Git pour vos fichiers de configuration :</p>
<ul>
<li> &laquo;&nbsp;Sauvegarde&nbsp;&raquo; des fichiers</li>
<li> Versionning des fichiers avec possibilité d&#8217;afficher les modifications entre deux versions d&#8217;un même fichier</li>
<li> Possibilité de propager les fichiers de configuration sur une autre machine</li>
</ul>
<h2>Git</h2>
<p>L&#8217;installer à l&#8217;aide du gestionnaire de paquet.<br />
Ensuite les commandes de base :<br />
Se mettre dans le répertoire contenant les fichiers à suivre puis :</p>
<p>Initialiser le dépôt Git :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ git init</pre></div></div>

<p>Ajouter des fichiers à l&#8217;index du dépôt :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ git add nom_fichier</pre></div></div>

<p>Faire un commit :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ git commit <span style="color: #660033;">-a</span> <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;commentaire décrivant le commit&quot;</span></pre></div></div>

<p>Puisqu&#8217;il s&#8217;agit de surveiller des fichiers de configuration, il peut être bon de lancer un commit régulièrement. Un p&#8217;tit cron, ça fait pas de mal :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ crontab <span style="color: #660033;">-e</span></pre></div></div>

<p>Dans l&#8217;éditeur de texte qui s&#8217;ouvre, sous la ligne de commentaire, entrer la ligne :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">00 05 <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>chemin<span style="color: #000000; font-weight: bold;">/</span>vers<span style="color: #000000; font-weight: bold;">/</span>le<span style="color: #000000; font-weight: bold;">/</span>rep <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> git commit <span style="color: #660033;">-a</span> <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;Cron autocommit&quot;</span></pre></div></div>

<p>Enregistrer et quitter.<br />
Comme ça, quoi qu&#8217;il arrive, un commit des fichiers sera fait quotidiennement à 5h du matin (à condition que le PC soit allumé).</p>
<h2>Redmine</h2>
<p>Maintenant, il faut mettre en place Redmine,  je ne détaillerais pas la mise en place <a href="http://blog.vectoris.fr/2009/07/23/installation-redmine-sous-debian-lenny-50/">car d&#8217;autres</a> <a href="http://thelogic.org/blog/2009/02/04/installation-of-redmine-on-debian-with-ruby-and-apache-integration/">s&#8217;en chargent</a> <a href="http://www.d-sites.com/2009/08/17/installer-ruby-on-rails-passenger-pour-apache2-sur-debian/">mieux que moi</a>. Une note tout de même, j&#8217;ai pour l&#8217;instant abandonné temporairement l&#8217;idée de le faire tourner avec Apache en utilisant Mongrel, Passenger ou Fast-CGI, n&#8217;ayant pas réussi à obtenir de résultat digne de ce nom après deux journées de bidouillage. (Oui, je suis mauvais !)</p>
<p>Personnellement je me contente de lancer Redmine avec Webrick :<br />
Depuis le répertoire d&#8217;installation de Redmine :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ ruby script<span style="color: #000000; font-weight: bold;">/</span>server <span style="color: #660033;">-e</span> production</pre></div></div>

<p>Commande à lancer dans un <a href="http://www.zoin.fr/cli/screen-loutil-magique-200/">screen</a> ou en mode daemon.</p>
<p>J&#8217;accède ensuite à l&#8217;application en entrant l&#8217;adresse <em>http://ADRESSE_DE_MON_SERVEUR:3000</em> sur mon navigateur Web.</p>
<p>Il peut être sympa de rendre cette page disponible depuis l&#8217;extérieur histoire de ne pas y avoir accès qu&#8217;en local. Il faut bien sur pour cela ajouter une règle sur le firewall du serveur pour autoriser le port 3000 en TCP et faire de même sur la box qui relie votre serveur à Internet.</p>
<p>Pour iptables, rajouter la ligne suivante à votre liste de règle :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">-i</span> eth0 <span style="color: #660033;">--dport</span> <span style="color: #000000;">3000</span> <span style="color: #660033;">-j</span> ACCEPT</pre></div></div>

<p>Bon, c&#8217;est une solution <em>un peu crade</em> &laquo;&nbsp;en attendant&nbsp;&raquo; de me débloquer avec mon Apache qui semble faché avec tout ce qui est Ruby on Rails&#8230;</p>
<p>Mais bon, peu importe, on peut enfin accéder à Redmine ! <em>Joie !</em><br />
(Si, si : Joie ! Après avoir suivi un tuto d&#8217;installation et configuration, quand ça marche, on peut être content !)</p>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://www.flickr.com/photos/stuckincustoms/2942922817/"><img title="Youpi, c'est la fête !" src="http://farm4.static.flickr.com/3172/2942922817_955b727a91.jpg" alt="Youpi, c'est la fête !" width="500" height="347" /></a><p class="wp-caption-text">Youpi, C&#39;est la fête !</p></div>
<p>Pour la première connexion, les identifiants par défaut sont :</p>
<ul>
<li><em>login :</em> admin</li>
<li><em>mdp :</em> admin</li>
</ul>
<p>Merci de modifier rapidement le mot de passe dans l&#8217;interface de l&#8217;application, surtout si Redmine est accessible depuis l&#8217;extérieur&#8230;</p>
<h2>Un test pour se faire la main</h2>
<p>Pour se familiariser avec Redmine, je conseille de se créer un dépôt Git de test dans un dossier test avec des fichiers de test (et le mot du jour est&#8230;&#8230;.. TEST !)</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: #7a0874; font-weight: bold;">test</span>
$ <span style="color: #7a0874; font-weight: bold;">cd</span> test<span style="color: #000000; font-weight: bold;">/</span>
$ <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;pouet&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> toto.txt <span style="color: #666666; font-style: italic;"># creation des fichiers</span>
$ <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;color : blue&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> watchmenbigdong.conf
$ git init
$ git add toto.txt
$ git add watchmenbigdong.conf
$ git commit <span style="color: #660033;">-a</span> <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;Premier commit&quot;</span>
$ <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;color : red&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> watchmenbigdong.conf <span style="color: #666666; font-style: italic;"># modification d'un des fichiers</span>
$ git commit <span style="color: #660033;">-a</span> <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;Second commit : Watchmen pour daltoniens&quot;</span></pre></div></div>

<p>Puis, dans Redmine, créer un projet test. Ensuite dans ce projet, aller sur <em>Configuration</em>, puis <em>Dépôt</em>. Dans <em>SCM</em>, choisir <em>Git</em> et dans le champs en dessous, mettre le chemin complet vers le répertoire <em>.git</em>. Exemple : <em>/home/utilisateurtest/test/.git</em></p>
<div id="attachment_313" class="wp-caption aligncenter" style="width: 457px"><img class="size-full wp-image-313" title="Configuration du dépôt dans Redmine" src="http://www.zoin.fr/wp-content/uploads/2009/10/depot-redmine2.png" alt="Configuration du dépôt dans Redmine" width="447" height="161" /><p class="wp-caption-text">Configuration du dépôt dans Redmine</p></div>
<p>Enfin, cliquer sur <em>Créer</em>.</p>
<p>Explorer au passage tous les onglets du volet <em>Configuration</em> pour bien mettre sa sauce. Puis cliquer sur <em>Dépôt</em> (celui à côté de Configuration) pour voir la liste des fichiers et leurs &laquo;&nbsp;commit&nbsp;&raquo; respectifs. On voit bien que le fichier <em>watchmenbigdong.conf</em> a été modifié depuis le premier commit mais pas le fichier <em>toto.txt</em>.</p>
<p>Il est possible à partir de cette fenêtre de comparer les différentes versions d&#8217;un même fichier.</p>
<p>Pour bien saisir l&#8217;intérêt de Redmine, il est bon de farfouiller tous les onglets. Le plus intéressant à mes yeux après l&#8217;onglet Dépôt est l&#8217;onglet <em>Wiki</em>. Ce wiki permet de s&#8217;étendre sur les explications d&#8217;installation et configuration de la machine et de différents programmes !</p>
<h2>Redmine pour gérer sa configuration</h2>
<p>Lors de la création de projets, bien décocher la case <em>&laquo;&nbsp;Public&nbsp;&raquo;</em> si le projet doit contenir des fichiers de configurations&#8230;</p>
<p>Pour l&#8217;instant, je me sers de cette solution avec deux projets :</p>
<ul>
<li> /home : qui contient les fichiers de conf du dossier /home de l&#8217;utilisateur :
<ul>
<li>.gnupg/</li>
<li>.irssi/</li>
<li>.ssh/</li>
<li>.bashrc</li>
<li>.vimrc</li>
<li>&#8230;</li>
</ul>
</li>
<li> /etc : qui contient les fichiers de conf :
<ul>
<li>/apt/sources.list</li>
<li>fstab</li>
<li>irssi.conf</li>
<li>mpd.conf</li>
<li>screenrc</li>
<li>&#8230;</li>
</ul>
</li>
</ul>
<div id="attachment_312" class="wp-caption aligncenter" style="width: 507px"><img class="size-full wp-image-312" title="Oui, j'ai des choses à cacher !" src="http://www.zoin.fr/wp-content/uploads/2009/10/home-flo-redmine2.png" alt="Oui, j'ai des choses à cacher !" width="497" height="296" /><p class="wp-caption-text">mon home dans Redmine</p></div>
<p>En bref, tous les fichiers de configuration que je peux être amené à modifier moi-même ! (et pour lesquels je souhaite un suivi)<br />
Si un logiciel venait à ne plus marcher, je pourrais ainsi rapidement savoir si cela vient d&#8217;une mauvaise configuration et je pourrais rapidement revenir en arrière !</p>
<p>Pour finir, il peut être bon de clôner vos dépôt Git sur d&#8217;autres PC ou des supports externes. Si le serveur plante complètement et devient incapable de lancer Redmine, il sera possible de voir les modifications depuis un autre PC.</p>
<h2>La petite pelle de liens utiles</h2>
<ul>
<li> <a href="http://linux-attitude.fr/post/Git-à-tous-les-étages">Introduction à Git</a></li>
<li> <a href="http://linux-attitude.fr/post/Git-pour-tous">Utilisation de Git pour des fichiers de configuration</a></li>
<li> <a href="http://www.unixgarden.com/index.php/administration-systeme/git-pour-les-futurs-barbus">Guide sur Git</a></li>
<li> <a href="http://www.redmine.org/wiki/redmine/FrGuide">Guide sur Redmine</a></li>
<li> <a href="http://www.fohguild.org/forums/attachments/screenshots/103610d1237188968-funny-strange-random-pics-watchmen.png">Pour bien saisir la référence au film Watchmen</a></li>
</ul>
<p>Un bon informaticien se doit de faire des blagues de bit<del datetime="2009-10-09T08:34:02+00:00">(e)</del>&#8230; hum, pas tip top après un diplôme Blague+3 en informatique.</p>
<p>Bon versionning à tous !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zoin.fr/adminsys/git-et-redmine-pour-les-adminsys-281/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

