<?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>Emile "iMil" Heitor 's home &#187; sysadmin</title>
	<atom:link href="http://imil.net/wp/tag/sysadmin/feed/" rel="self" type="application/rss+xml" />
	<link>http://imil.net/wp</link>
	<description>life, unix and stuff</description>
	<lastBuildDate>Wed, 08 Feb 2012 22:31:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>au-to-ma-gic</title>
		<link>http://imil.net/wp/2010/02/13/au-to-ma-gic/</link>
		<comments>http://imil.net/wp/2010/02/13/au-to-ma-gic/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 23:08:59 +0000</pubDate>
		<dc:creator>iMil</dc:creator>
				<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://imil.net/wp/?p=387</guid>
		<description><![CDATA[Au boulot, j&#8217;ai élu une solution de déploiement à haute teneur en convivialité qui m&#8217;a été suggérée par nico, j&#8217;ai nommé fabric.
Ce soft à l&#8217;utilisation simplissime permet en un tournemain de réaliser des opérations complexes en masse sur une architecture distante en utilisant le protocole SSH.
Si la documentation de la plupart des fonctions est clarissime, [...]]]></description>
			<content:encoded><![CDATA[<p>Au boulot, j&#8217;ai élu une solution de déploiement à haute teneur en convivialité qui m&#8217;a été suggérée par <a href="http://www.rottenbytes.info/">nico</a>, j&#8217;ai nommé <a href="http://docs.fabfile.org/0.9.0/">fabric</a>.</p>
<p>Ce soft à l&#8217;utilisation simplissime permet en un tournemain de réaliser des opérations complexes en masse sur une architecture distante en utilisant le protocole <a href="http://fr.wikipedia.org/wiki/Secure_Shell">SSH</a>.</p>
<p>Si la documentation de la plupart des fonctions est clarissime, l&#8217;une d&#8217;entre elles, qui pourtant me semblait avoir un fort potentiel loutresque, n&#8217;était pas très clairement exposée: <code>upload_template</code>.<br />
Cette fonction, comme son nom semble l&#8217;indiquer, permet d&#8217;envoyer sur un serveur distant un fichier &#8220;template&#8221; en ayant préalablement remplacé des variables par le contenu souhaité. Après un peu de lecture du code source de <i>fabric</i>, la subtilité de son utilisation m&#8217;est apparue.</p>
<p>Voici à quoi doit ressembler un fichier template, j&#8217;utilise ici l&#8217;exemple classique d&#8217;un <code>/etc/network/interfaces</code> à remplir avec les valeurs adéquates :</p>
<pre>
auto lo
iface lo inet loopback

auto %(iface)s
iface %(iface)s inet static
	address %(ipaddress)s
	netmask %(netmask)s
	gateway %(gateway)s
</pre>
<p>Ces variables utilisent les <i>string interpolation formatting</i> de python, que l&#8217;on renseigne à l&#8217;aide d&#8217;un <i>dict</i> de cette façon :</p>
<pre>
netinfo  = {
                'iface': 'eth0',
                'ipaddress': '10.20.30.40',
                'netmask': '255.255.255.0',
                'gateway': '10.20.30.254'
}
</pre>
<p>Et que l&#8217;on inclut finalement dans la fameuse fonction <code>upload_template</code> de cette façon :</p>
<pre>
        upload_template('etc/network/interfaces', '/etc/network/interfaces', context=netinfo, use_sudo=True)
</pre>
<p>Moyennant quoi, <i>fabric</i> enverra le fichier <i>template</i> sur sa destination puis remplacera les variables par leur valeurs définies dans le <i>dict</i> passé en paramètre.</p>
<p>Sysop, ne révèle pas à tes employeurs que tu construis aujourd&#8217;hui ta glande de demain.</p>
]]></content:encoded>
			<wfw:commentRss>http://imil.net/wp/2010/02/13/au-to-ma-gic/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: imil.net @ 2012-02-09 10:12:55 by W3 Total Cache -->
