<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
	
		<title>philpep's blog - tag jails</title>
		<atom:link href="http://blog.philpep.org/feed/tag/jails/rss2" rel="self" type="application/rss+xml" />
		<description>philpep&#39;s blog - tag jails rss</description>
	<link>http://blog.philpep.org</link>
	<language>fr</language>
		<lastBuildDate>Wed, 06 Jan 2010 20:11:03 GMT</lastBuildDate>
	<generator>Pblog</generator>
		<item>
			<title>Upgrade FreeBSD 8.0 et jails</title>
			<link>http://blog.philpep.org/post/Upgrade-FreeBSD-8.0-et-jails</link>
			<guid>http://blog.philpep.org/post/Upgrade-FreeBSD-8.0-et-jails</guid>
			<pubDate>Wed, 06 Jan 2010 20:11:03 GMT</pubDate>
			<description>&lt;p&gt;J&#39;ai upgradé ma FreeBSD (ce serveur) et ses 4 jails de FreeBSD 7.2-RELEASE vers FreeBSD 8.0-RELEASE, voilà donc le récit de ce qui est toujours une épopée.&lt;/p&gt;
&lt;p&gt;Dans un premier temps il faut récupérer les sources du système. J&#39;ai fait ça à coup de &lt;code&gt;csup&lt;/code&gt; depuis &lt;code&gt;cvsup1.fr.FreeBSD.org&lt;/code&gt; (qui n&#39;est autre que &lt;code&gt;cvsup.free.org&lt;/code&gt;).&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;# cat /usr/local/etc/stable-supfile
*default host=cvsup1.fr.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_8_0
*default delete use-rel-suffix
*default compress
src-all
# csup /usr/local/etc/stable-supfile
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Pendant ce temps au lieu de te tourner les pouces fais toi un &lt;code&gt;/etc/&lt;/code&gt;&lt;a href=&#34;http://www.freebsd.org/cgi/man.cgi?query=src.conf&#34;&gt;src.conf(5)&lt;/a&gt; pour customiser un peu ce qu&#39;on va compiler dans le world. Moi &lt;a href=&#34;/post/Ssmtp-pour-remplacer-sendmail&#34;&gt;je n&#39;utilise plus sendmail&lt;/a&gt;, authpf, bind (j&#39;ai déjà un bind sur mon routeur), bluetooth, les jeux, IPfilter (j&#39;utilise pf) ni zfs.&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;# cat /etc/src.conf
WITHOUT_AUTHPF=YES
WITHOUT_BIND=YES
WITHOUT_BLUETOOTH=YES
WITHOUT_GAMES=YES
WITHOUT_IPFILTER=YES
WITHOUT_SENDMAIL=YES
WITHOUT_ZFS=YES
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Quand &lt;code&gt;csup&lt;/code&gt; à finit son boulot on peut lancer la compilation qui tue :&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;# cd /usr/src
# make buildworld
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Bois une grosse tasse de café et attend sagement en lisant &lt;a href=&#34;http://www.freebsd.org/cgi/man.cgi?query=config&#34;&gt;config(8)&lt;/a&gt; et $EDITOR ta config kernel dans &lt;code&gt;/usr/src/sys/&amp;lt;arch&amp;gt;/conf/LAPIN&lt;/code&gt;, sinon le kernel GENERIC marche bien hein :-).&lt;/p&gt;
&lt;p&gt;Une fois le buildworld terminé lance la compilation de ton kernel :&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;# cd /usr/src/
# make buildkernel KERNCONF=LAPIN
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Pendant ce temps mettons à jours les jails. Moi j&#39;arrête complètement les jails, je préfère un service injoignable qu&#39;un service qui pourrait planter. Pour que le &lt;a href=&#34;http://www.freebsd.org/cgi/man.cgi?query=mergemaster&#34;&gt;mergemaster(1)&lt;/a&gt; soit moins long j&#39;ai mis quelques options dans &lt;code&gt;/root/.mergemasterrc&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;# cat /root/.mergemasterrc
FREEBSD_ID=yes
# /etc/rc.d/jail stop
# cd /usr/src
# make installworld DESTDIR=/path/to/jail
# mergemaster -i -C -D /path/to/jail
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Réponds aux questions de mergemaster, c&#39;est long mais nécessaire, si ça te parait trop long rajoutes &lt;code&gt;-U&lt;/code&gt; aux options de mergemaster.&lt;/p&gt;
&lt;p&gt;Refait la manip pour toutes tes jails. Enfin installe le nouveau kernel et reboot en &lt;strong&gt;Single user mode&lt;/strong&gt;.&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;# cd /usr/src
# make installkernel KERNCONF=LAPIN
# shutdown -r now
## MAINTENANT EN SINGLE USER MODE ##
# adjkerntz -i
# mount -a -t ufs
# mergemaster -p
# cd /usr/src/
# make installworld
# mergemaster -i -C
# reboot
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Nous voilà en FreeBSD 8.0-RELEASE-p1, maintenant il faut réinstaller tous les ports pour que les softs soient liés avec les libs de la 8.0. Alors là plusieurs méthodes possibles.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Par compilation =&amp;gt; portupgrade -a (va faire un tour sur google.com pour plus d&#39;info sur les options crousti de portupgrade).&lt;/li&gt;
&lt;li&gt;En binaire, c&#39;est ce que j&#39;ai fait via un hack plus crade qu&#39;un porno thaïlandais mais qui marche.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Attention lapin !&lt;/strong&gt; , ce script va t&#39;installer des packages avec les options de compilation par défaut des ports. Ça va enlever ton support PGSQL de dovecot et te rajouter toute la libx11 :-), à manipuler avec précaution donc.&lt;/p&gt;
&lt;p&gt;Mon petit script magique  &lt;code&gt;pkg_reinstall&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;&lt;span class=&#34;c&#34;&gt;#!/bin/sh&lt;/span&gt;
&lt;span class=&#34;c&#34;&gt;# Force la réinstallation des&lt;/span&gt;
&lt;span class=&#34;c&#34;&gt;# packages pour la nouvelle release&lt;/span&gt;
&lt;span class=&#34;c&#34;&gt;# http://blog.philpep.org/post/Upgrade-FreeBSD-8.0-et-jails&lt;/span&gt;
&lt;span class=&#34;c&#34;&gt;# Je ne suis pas responsable de la casse éventuelle :-)&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;# Mirroir pour choper les packages voyez pkg_add(1)&lt;/span&gt;
&lt;span class=&#34;c&#34;&gt;# section ENVIRONEMENT.&lt;/span&gt;
&lt;span class=&#34;nb&#34;&gt;export &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;PACKAGEROOT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;quot;ftp://ftp.fr.freebsd.org&amp;quot;&lt;/span&gt;

&lt;span class=&#34;c&#34;&gt;# Liste des packages sur la machine&lt;/span&gt;
&lt;span class=&#34;nv&#34;&gt;PKG_LIST&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;pkg_info | cut -d&lt;span class=&#34;s1&#34;&gt;&amp;#39; &amp;#39;&lt;/span&gt; -f1&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;

&lt;span class=&#34;k&#34;&gt;for &lt;/span&gt;pkg in &lt;span class=&#34;nv&#34;&gt;$PKG_LIST&lt;/span&gt;
&lt;span class=&#34;k&#34;&gt;do&lt;/span&gt;
    &lt;span class=&#34;c&#34;&gt;# On coupe la version du package&lt;/span&gt;
    &lt;span class=&#34;c&#34;&gt;# et on force la réinstallation&lt;/span&gt;
    pkg_add -rvF &lt;span class=&#34;s2&#34;&gt;&amp;quot;${pkg%-*}&amp;quot;&lt;/span&gt;
&lt;span class=&#34;k&#34;&gt;done&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Je lance donc mon script dans un shell de la jail (dont le JID m&#39;est donné par &lt;a href=&#34;http://www.freebsd.org/cgi/man.cgi?query=jls&#34;&gt;jls(1))&lt;/a&gt; :&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;# jexec 1 sh
# sh /root/pkg_reinstall
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Ensuite tu peux normalement supprimer les anciennes libs et anciens fichiers de ta vielle FreeBSD :&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;# cd /usr/src
# yes | make delete-old DESTDIR=/path/to/jail
# yes | make delete-old-libs DESTDIR=/path/to/jail
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Tu peux faire pareil pour l&#39;hote maintenant, un coup de &lt;code&gt;pkg_reinstall&lt;/code&gt; et &lt;code&gt;yes | make delete-old(|-libs)&lt;/code&gt; et te voilà en 8.0 avec un système super clean.&lt;/p&gt;
&lt;h3&gt;Bonus spécial pour toi lapin !&lt;/h3&gt;
&lt;p&gt;Personnellement j&#39;aime bien rester avec mes packages de RELEASE, donc je met pratiquement jamais à jours. Par contre l&#39;idée d&#39;avoir des packages avec des failles de sécurité ça m&#39;insupporte. Donc j&#39;utilise le grand &lt;code&gt;portaudit&lt;/code&gt; et si il trouve un package foireux je l&#39;upgrade vers les build de STABLE (qui sont plus récents).&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;# export PACKAGEROOT=&amp;quot;ftp://ftp.fr.freebsd.org&amp;quot;
# pkg_add -r portaudit
# /usr/local/sbin/portautit -Fda
Problem found with phplol see http://machintruc.com/64867/php/6764
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Et pour tous les packages faillibles :&lt;/p&gt;
&lt;div class=&#34;codehilite&#34;&gt;&lt;pre&gt;# export PACKAGESITE=&amp;quot;ftp://ftp.fr.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/&amp;quot;
# pkg_add -rF phplol
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Te voilà avec un système très nice nice qui te laissera dormir jusqu&#39;au prochain local root voir même jusqu&#39;à la prochaine release.&lt;/p&gt;</description>
		</item>
	</channel>
</rss>

