Linux Quimper

Réseau libre d'utilisateurs manchots.

Vous n'êtes pas identifié.

Annonce

Lundi 27 septembre 2010 18:00 : Last lundi (Café des arts, Quimper)

: Install party de cloture JFL2010 (Sans horaire !!!) (Centre social des Abeilles, Quimper)

Passés et à venir : Liste des évènements

#1 12-07-2007 21:40:59

Fanch
Où ça ???
Lieu: Ben devant mon pc !
Date d'inscription: 14-01-2007
Messages: 710
Site web

Un serveur pour les futures installs party

Bonjour à vous,

Certains le savaient déjà, Linux Quimper utilise un serveur pour ses installs-party pour faciliter les installs, mises à jours et téléchargements.

Ce serveur devrait prendre en charge :
- Un cache web et http pour les gros téléchargements en toute transparance avec Squid
- L'installation d'Ubuntu par le réseau exclusivement grace à PXE
- Les dépots courants (ubuntu, debian, slitaz et archlinux) en toute transparance afin d'alléger le trafic internet
- Un connexion gigabit
- La distribution d'ip de 10.9.0.50 à 10.9.3.254 et la résolution locale des noms en .lq
- L'accès au serveur où qu'il soit par tunnel SSH
- Un enregistrement par webcam de l'install sur toute la journée
- Un espace de stockage (web et samba) pour les dépots et distributions à télécharger mis à jour juste avant l'install.

Page du projet : http://www.linuxquimper.org/wiki/doku.p … tall_party

Fanch

[édit par piero : wiki]

Dernière modification par piero (19-06-2010 16:25:37)


http://www.april.org/files/association/documents/bannieres/bouton_web_soutien_88x31.gif ==> Mon blog : Quick Troll Hosted

Hors ligne

 

#2 12-07-2007 22:04:02

Fanch
Où ça ???
Lieu: Ben devant mon pc !
Date d'inscription: 14-01-2007
Messages: 710
Site web

Re: Un serveur pour les futures installs party

Le dépot local

J'ai actuelement le depot de Feisty, et toute demande des depots ubuntu est redirigée sur le depot du serveur (où il n'y a que feisty). Vous l'aurez compris, mon souci est pour les autres distribution, car un depot contient plusieurs distribution (dapper, edgy...).

Comment faire en sorte que le poste client soit redirigé sur le dépot internet ubuntu lorsque les fichiers ne sont pas sur le serveur local ?

PS; Actuelement, j'utilise juste bind pour rediriger les client (qui demandent archive.ubuntu.com) vers l'ip local du serveur. Le depot local est accessible en http comme en ftp.

A vos idées smile

Fanch


http://www.april.org/files/association/documents/bannieres/bouton_web_soutien_88x31.gif ==> Mon blog : Quick Troll Hosted

Hors ligne

 

#3 16-07-2007 12:21:20

Fanch
Où ça ???
Lieu: Ben devant mon pc !
Date d'inscription: 14-01-2007
Messages: 710
Site web

Re: Un serveur pour les futures installs party

Bon, il semblerait qu'une solution de base ai été trouvée.

Il s'agit d'utiliser un proxy pour apt (apt-proxy) en plus de apt-mirror , en effet les deux systèmes utilisent une arboresence identique aux depots.

Il me reste plus qu'a utiliser ce proxy de façon transparente uniquement pour les adresses des dépots. (peut-être avec shorewall)

Fanch


http://www.april.org/files/association/documents/bannieres/bouton_web_soutien_88x31.gif ==> Mon blog : Quick Troll Hosted

Hors ligne

 

#4 17-07-2007 12:45:34

AddiKT1ve
Sale Jeune™
Lieu: Dans Ton GUL
Date d'inscription: 10-12-2006
Messages: 2309
Site web

Re: Un serveur pour les futures installs party

Tiens, c'est ingénieux ça. On va voir si ça fonctionne bien big_smile.


http://addikt1ve.free.fr/images/signature.gif
addikt1ve@pouet:~$ citation --artiste-mort --contexte-valable
"Ce qui compte c'est pas l'issue mais c'est le combat !" - Mano Solo
_
##hippie irc.freenode.net

Hors ligne

 

#5 17-07-2007 18:08:58

Fanch
Où ça ???
Lieu: Ben devant mon pc !
Date d'inscription: 14-01-2007
Messages: 710
Site web

Re: Un serveur pour les futures installs party

Non ça fonctionne pas AddiKt1ve !! big_smile

Mais qu'est ce que je m'amuse !! hmm

J'ai décidé de passer le systeme ( / ) en raid 5 sur des partitions des 500Go. (Au lieu d'utiliser 2 disques 4Go supplemantaires).
Mais maintenant je parviens plus à installer le systeme d'amorce (grub ou lilo)... hmm

A suivre... wink

Fanch


http://www.april.org/files/association/documents/bannieres/bouton_web_soutien_88x31.gif ==> Mon blog : Quick Troll Hosted

Hors ligne

 

#6 03-12-2007 18:52:07

infothema
Mqnchot qwerty
Date d'inscription: 23-09-2007
Messages: 73

Re: Un serveur pour les futures installs party

Salut Fanch,

Souhaitant également monter un serveur de dépots pour Ubuntu, pourrais-tu m'indiquer la syntaxe de cette belle commande de rapatriment :-)

Hors ligne

 

#7 03-12-2007 20:16:17

Fanch
Où ça ???
Lieu: Ben devant mon pc !
Date d'inscription: 14-01-2007
Messages: 710
Site web

Re: Un serveur pour les futures installs party

Bonjour infothema,

En realité j'utilise pluieurs chose pour le dépot local qui sert aux installs party :

1) APT-MIRROR
- apt-mirror pour récuperer toute l'arborecence d'un dépot (ou presque)
- Un modification du script apt-miror pour recuperer certains fichiers supplémentaires

Avec ce programme, on a les dépots souhaités.


2) SQUID
- Ce proxy va permetre de capter le flux http pour le cache en autre mais aussi pour pouvoir utiliser jesred

3) JESRED
- Ce script va permettre de rediriger suivant l'url, la requete squid vers un script php (comme de l'url rewritting)

4) Script php http://127.0.0.1/repository.php
- Ce script maison va retourner le fichier local ou distant suivant sa disponnibilité et sa date

5) Redirection grace à iptable de toutes les requetes http vers squid.


http://www.april.org/files/association/documents/bannieres/bouton_web_soutien_88x31.gif ==> Mon blog : Quick Troll Hosted

Hors ligne

 

#8 03-12-2007 21:22:18

staif
Sgueg
Lieu: Plogonnec
Date d'inscription: 08-03-2007
Messages: 236
Site web

Re: Un serveur pour les futures installs party

Y'a pas à dire Fanch, t'es mon dieu !!! :-)


Fier de faire parti de Linux Quimper

Santé Bonheur, Santé Bonne Humeur

Le Jour viendra ou il n'y aura plus assez de Geeks sur Terre pour satisfaire toutes les Femmes

Hors ligne

 

#9 04-12-2007 11:07:15

irimi
Master of the Muppet
Date d'inscription: 12-12-2006
Messages: 255

Re: Un serveur pour les futures installs party

Super initiative ! J'ai hâte de voir ça en action, ça doit dégommer sec les install en gigabit !


----
"OOOM NOM NOM NOM NOM"
"C is for Cookie, that's good enough for me"

Hors ligne

 

#10 04-12-2007 15:35:47

AddiKT1ve
Sale Jeune™
Lieu: Dans Ton GUL
Date d'inscription: 10-12-2006
Messages: 2309
Site web

Re: Un serveur pour les futures installs party

Bah il était en place à Landrévarzec ; mais en wifi le débit ne dépassait pas les 2Mo/s très peu stables (j'étais plutôt à 17ko/s la plupart du temps ; serveur saturé ?).

Sinon Fanch, tu peux mettre à disposition le script pour infothema smile ?


http://addikt1ve.free.fr/images/signature.gif
addikt1ve@pouet:~$ citation --artiste-mort --contexte-valable
"Ce qui compte c'est pas l'issue mais c'est le combat !" - Mano Solo
_
##hippie irc.freenode.net

Hors ligne

 

#11 04-12-2007 20:09:30

infothema
Mqnchot qwerty
Date d'inscription: 23-09-2007
Messages: 73

Re: Un serveur pour les futures installs party

Merci AddiKT1ve de relancer sur le script ;-)  ... c'est le genre de truc hyper utile

Hors ligne

 

#12 04-12-2007 23:37:29

Fanch
Où ça ???
Lieu: Ben devant mon pc !
Date d'inscription: 14-01-2007
Messages: 710
Site web

Re: Un serveur pour les futures installs party

Qui vous fait croire que c'est open source ? tongue

Code:

<?
/******************************************************

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    
    
    APT-PROXY-FANCH (LINUXQUIMPER)
    Le 21/11/2007
    Par Fanch pour LinuxQuimper.org
    
    Ce script est à appeler ainsi :
    http://127.0.0.1/repository.php/?http://archive.ubuntu.com/ubuntu/dists/gutsy/Contents-i386.gz
    ou
    http://127.0.0.1/repository.php/?archive.ubuntu.com/ubuntu/dists/gutsy/Contents-i386.gz

******************************************************/

/******************************************************

    Variables de configuration

******************************************************/
$start_script = time();
$numberaleatoire = rand(0,99);
$i=1;
$repositories[$i] = Array(
    "name" => "Depot Ubuntu",
    "url" => "http://archive.ubuntu.com/", //Ne pas oublier le / à la fin
    "path" => "/mnt/storage-secure/repositories/mirror/archive.ubuntu.com/", //Ne pas oublier le / à la fin
    "active" => true
);
$i++;


$config = Array(
    "sendRemoteAlways" => false,
    "sendLocalAlways" => false,
    "checkRemotly" => true, //Verifier le fichier distant
    "checkRemoteIfLocalAge" => 0, //Age du fichier local maximum avant vérification distante
    "checkLocal" => true //Verifier le fichier local
);

define("DEBUG_ON", false);
define("FILE_DEBUG", "/var/log/proxyaptfanch.log");
register_shutdown_function ("shutdown_script");

/*******************************************************
        Recuperation de l'url
*******************************************************/
$urlInput = $_ENV["QUERY_STRING"];
if(substr($urlInput,0,7) != "http://")
    $urlInput = "http://".$urlInput;
$urlInput = parseUrl($urlInput);
/******************************************************/

logg("###> ".date("d-m-Y H:i:s")."<### Demande de l'url ".$urlInput["url"]);

//Recuperation de l'id du repository
$idRepo = findRepository($urlInput["url"]);
logg("Repository correspondant trouvé : ".$idRepo." (".$repositories[$idRepo]["name"].")" );

//Recuperation des info locales
if($config["checkLocal"]){
    $infoFileLocal = getInfoFileLocal();
    logg("Récuperation des information du fichier local (time:".date("d-m-Y H:i:s",$infoFileLocal['time'])." ".$infoFileLocal['time']." size:".$infoFileLocal['size']." type:".$infoFileLocal['type'].")");
}
//Recuperation des info distants
if($config["checkRemotly"]){
    $infoFileDistant = getInfoFileDistant();
    logg("Récuperation des information du fichier distant (time:".date("d-m-Y H:i:s",$infoFileDistant['time'])." ".$infoFileDistant['time']." size:".$infoFileDistant['size']." type:".$infoFileDistant['type'].")");
}



//Toujours envoyer le fichier distant ?
if($config["sendRemoteAlways"]){
    streamFileDistant();

//Toujours envoyer le fichier local ?
}elseif($config["sendLocalAlways"]){
    streamFileLocal();

//Rien trouvé
}elseif((empty($infoFileLocal["time"]) && empty($infoFileDistant["time"]))){
    logg("!!!!!!!!! 404 Fichier introuvable distant et local !!!!!!!!!!!!");
    header("HTTP/1.0 404 Not Found");

//Repertoire ou fichier texte
}elseif(is_dir($repositories[$idRepo]["path"].$urlInput['filepath']) || $infoFileDistant['size']==0 ||$infoFileDistant['time']==-1 || $infoFileDistant["type"] == "text/html; charset=UTF-8"){
    streamWebUrl();

//Fichier distant plus recent
}elseif( (time()-$infoFileLocal["time"]) > $config["checkRemoteIfLocalAge"] && $infoFileDistant["time"] > $infoFileLocal["time"]){
    streamFileDistant();

//Sinon envoyer fichier local
}else{
    streamFileLocal();
}
logg(date("d-m-Y H:i:s")." ------ Fin d'envoi");
exit;







function streamWebUrl(){
    global $urlInput;
    logg(date("d-m-Y H:i:s")." ------ Debut de l'envoi du flux URL (".$urlInput["url"].")");
    readfile($urlInput["url"]);
}

function streamFileLocal(){
    global $urlInput,$repositories,$infoFileLocal,$idRepo;
    if(empty($idRepo))
        $idRepo=findRepository($urlInput["url"]);
    if(empty($idRepo))
        return false; //Interdit, ce fichier n'est pas le mirroir
    if(empty($infoFileLocal))
        $infoFileLocal=getInfoFileLocal($urlInput['filepath'],$idRepo);
    logg(date("d-m-Y H:i:s")." ------ Debut de l'envoi du fichier local (".$repositories[$idRepo]["path"].$urlInput['filepath'].")");
    header("Content-Type: ".$infoFileLocal['type']."\n" );
    header('Content-Description: File Transfer');
    header('Content-Length: '. $infoFileLocal['size']);
    header('Content-Disposition: attachment; filename="'.$urlInput['file'].'"'); 
    header('Pragma: no-cache'); 
    header('Expires: 0');

    readfile($repositories[$idRepo]["path"].$urlInput['filepath']);
}


function streamFileDistant(){
    global $urlInput,$repositories,$infoFileDistant,$idRepo;
    if(empty($idRepo))
        $idRepo=findRepository($urlInput["url"]);
    if(empty($infoFileDistant))
        $infoFileDistant=getInfoFileDistant($urlInput["url"],$idRepo);

    logg(date("d-m-Y H:i:s")." ------ Debut de l'envoi du fichier distant (".$urlInput["url"].")");
    header("Content-Type: ".$infoFileDistant['type']."\n" );
    header('Content-Description: File Transfer');
    header('Content-Length: '. $infoFileDistant['size']);
    header( "Content-Disposition: attachment; filename='".$urlInput['file']."'" ); 
    header('Pragma: no-cache'); 
    header('Expires: 0');

    readfile($urlInput["url"]);
}







function getInfoFileDistant(){
    global $urlInput,$repositories,$idRepo;
    if(empty($idRepo))
        $idRepo=findRepository($urlInput["url"]);
    $repo = $repositories[$idRepo];
    $ch = curl_init(); // create cURL handle (ch)
    if (!$ch) {
    die("Couldn't initialize a cURL handle");
    }
    // set some cURL options
    curl_setopt($ch, CURLOPT_URL,            $urlInput["url"]);
    curl_setopt($ch, CURLOPT_HEADER,         0);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
    curl_setopt($ch, CURLOPT_TIMEOUT,        30);
    curl_setopt($ch, CURLOPT_FILETIME,     true);
    curl_setopt($ch, CURLOPT_NOBODY, TRUE);
    // execute
    curl_exec($ch);
    
    $curl_return = curl_getinfo($ch);
    if($curl_return['http_code']==200){
        //Le fichier existe
        $ret['path'] = $urlInput["url"];
        $ret['time'] = $curl_return['filetime'];
        $ret['type'] = $curl_return['content_type'];
        $ret['size'] = $curl_return['download_content_length'];

        return $ret;
    }else{
        return $curl_return['http_code'];
    }
}


function getInfoFileLocal(){
    global $urlInput,$repositories,$idRepo;
    if(empty($idRepo))
        $idRepo=findRepository($urlInput["url"]);

    $pathFile = $repositories[$idRepo]["path"].str_replace($repositories[$idRepo]["url"],"",$urlInput["url"]);
    if(file_exists($pathFile) && !is_dir($pathFile)){
        //Le fichier existe
        $ret['path'] = $pathFile;
        $ret['time'] = filemtime($pathFile);
        $ret['type'] = mime_content_type($pathFile);
        $ret['size'] = filesize($pathFile);
        return $ret;
    }else{
        return false;
    }
}



function findRepository($url){
    global $repositories;
    if(!empty($repositories)){
        foreach($repositories as $idRepo => $repo){
            if(preg_match("|^".$repo["url"]."|",$url))
                return $idRepo;
        }
    }
    return false;
}


function parseUrl($url){
    if(!preg_match('|^http://.+$|', $url))
        return false;
    preg_match('|^((http://)?([^/]+))/((.*)/)?(([^\.]+)(\.([^\.]+(\.[^\.]+)*))?)$|', $url, $matches);
    $ret['url'] = $matches[0];
    $ret['server'] = $matches[3];
    $ret['urlserver'] = $matches[1];
    $ret['folder'] = $matches[5];
    $ret['file'] = $matches[6];
    $ret['filepath'] = $matches[4].$matches[6];
    $ret['filename'] = $matches[7];
    $ret['ext'] = $matches[9];
    return $ret;
}
function shutdown_script(){
    $statut = connection_status();

    if($statut==2){
        logg(date("d-m-Y H:i:s")." ------ Timeout liaison perdu entre le demandeur et ce script");
    }elseif($statut==1){
        logg(date("d-m-Y H:i:s")." ------ Arret volontaire par l'utilisateur demandeur");
    }elseif($statut==0){

    }

}

function logg($texte){
    global $start_script,$numberaleatoire;
    if(!empty($_ENV['HTTP_X_FORWARDED_FOR']))
        $ip = $_ENV['HTTP_X_FORWARDED_FOR'];
    else
        $ip = $_ENV['REMOTE_ADDR'];
    $flog = fopen(FILE_DEBUG,"a"); //concatene au fichier
    $rc  = fputs($flog,"[".$ip.".".$numberaleatoire."] ".$texte."
");
    $rc  = fclose($flog);
    if(DEBUG_ON)
        echo $texte;
}


?>

C'est libre ! Faites en ce que vous voulez wink
Fanch


http://www.april.org/files/association/documents/bannieres/bouton_web_soutien_88x31.gif ==> Mon blog : Quick Troll Hosted

Hors ligne

 

#13 05-12-2007 15:48:43

irimi
Master of the Muppet
Date d'inscription: 12-12-2006
Messages: 255

Re: Un serveur pour les futures installs party

Du coup mets le code en GPL ! Au moins ce script sera libre et le restera !

Comment faire :

http://www.gnu.org/licenses/gpl-howto.fr.html

En gros, tu dois mettre au tout début du commentaire un texte de Copyright (eh oui !), que tu fais suivre d'un truc du genre :

Code:

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

Tu peux mettre le lien officiel vers la GPL :

http://www.gnu.org/licenses/gpl.txt

ça permet aux gens de savoir à quoi ils s'engagent en utilisant/modifiant/échangeant le script.

Dans le cas d'un programme compilé, il faut obligatoirement adjoindre le code source aux binaires, ou au moins l'URL où on peut trouver ce code source. C'est obligatoire.

Luxe : lorsque le script démarre, mettre un texte indiquant qu'il est en GNU GPL (ou au moins "free software").

On prône le libre, autant faire les choses dans les règles de l'art wink

Dernière modification par irimi (05-12-2007 15:52:45)


----
"OOOM NOM NOM NOM NOM"
"C is for Cookie, that's good enough for me"

Hors ligne

 

#14 05-12-2007 22:02:41

Fanch
Où ça ???
Lieu: Ben devant mon pc !
Date d'inscription: 14-01-2007
Messages: 710
Site web

Re: Un serveur pour les futures installs party

Merci Irimi pour l'info !

Voila une bonne chose de faite. wink


http://www.april.org/files/association/documents/bannieres/bouton_web_soutien_88x31.gif ==> Mon blog : Quick Troll Hosted

Hors ligne

 

#15 19-12-2008 18:13:47

Fanch
Où ça ???
Lieu: Ben devant mon pc !
Date d'inscription: 14-01-2007
Messages: 710
Site web

Re: Un serveur pour les futures installs party

Mise à zero du serveur suite au nouveau materiel généreusement offert par René et Piero.

1. Le serveur propose en PXE le live d'ubuntu Intrepid et permet son installation
2. Le serveur met en cache le trafic internet (jusqu'a 800Mo par fichiers)

A suivre.

Fanch


http://www.april.org/files/association/documents/bannieres/bouton_web_soutien_88x31.gif ==> Mon blog : Quick Troll Hosted

Hors ligne

 

#16 19-12-2008 18:14:25

AddiKT1ve
Sale Jeune™
Lieu: Dans Ton GUL
Date d'inscription: 10-12-2006
Messages: 2309
Site web

Re: Un serveur pour les futures installs party

Manque plus que les dépôts locaux smile...


http://addikt1ve.free.fr/images/signature.gif
addikt1ve@pouet:~$ citation --artiste-mort --contexte-valable
"Ce qui compte c'est pas l'issue mais c'est le combat !" - Mano Solo
_
##hippie irc.freenode.net

Hors ligne

 

#17 19-12-2008 20:50:27

saitMoh
B.O.F.H.
Date d'inscription: 13-12-2006
Messages: 124

Re: Un serveur pour les futures installs party

Est-ce que le serveur a suffisamment de port USB pour brancher un disque externe ? Si oui, on pourrait y brancher mon disque qui contient un miroir de Debian (i386/amd64) et rediriger ftp.*.debian.org sur le dépôt local mais en désactivant le script qui vérifie le serveur distant. Mon miroir est mis à jour à 04h30 tous les jours et comme je ne prends pas security.debian.org, les paquets ne sont pas troués.

PS: Il serait bien que ceux utilisent/(veulent installer) d'autres distribution viennent avec un miroir de celles-ci ou suffisamment de DVD pour faire l'installation sans réseau.


The cause of the problem is: overflow error in /dev/null

Hors ligne

 

#18 20-12-2008 11:52:31

AddiKT1ve
Sale Jeune™
Lieu: Dans Ton GUL
Date d'inscription: 10-12-2006
Messages: 2309
Site web

Re: Un serveur pour les futures installs party

J'ai ça pour ArchLinux, mais il n'est ni complet, ni à jour. Faudrait que je relance le truc smile.


http://addikt1ve.free.fr/images/signature.gif
addikt1ve@pouet:~$ citation --artiste-mort --contexte-valable
"Ce qui compte c'est pas l'issue mais c'est le combat !" - Mano Solo
_
##hippie irc.freenode.net

Hors ligne

 

#19 20-12-2008 13:51:22

Fanch
Où ça ???
Lieu: Ben devant mon pc !
Date d'inscription: 14-01-2007
Messages: 710
Site web

Re: Un serveur pour les futures installs party

Donc pour squid, la methode reste simple enfin je crois.
On redirige toutes les URL demandées par squid vers un script php (ou python ou...)

Ce dernier recoit en entrée l'url demandé
Il en revoit en retour à squid, la nouvelle URL en fonction de la présence local (et/ou distante)

L'utilisation de caches USB sera tout à fait possible en préparant au préalable le script de reecriture/redirection d'URL squid

A suivre.


http://www.april.org/files/association/documents/bannieres/bouton_web_soutien_88x31.gif ==> Mon blog : Quick Troll Hosted

Hors ligne

 

#20 28-09-2009 14:33:02

AddiKT1ve
Sale Jeune™
Lieu: Dans Ton GUL
Date d'inscription: 10-12-2006
Messages: 2309
Site web

Re: Un serveur pour les futures installs party

Plop Fanch.

Si tu trouves le temps, tu pourrais nous poster les divers fichiers de conf. utiles au serveur ? On en a récupéré un qui pourrait faire office de serveur de secours au cas où tu ne puisses pas te déplacer lors d'une install smile.


http://addikt1ve.free.fr/images/signature.gif
addikt1ve@pouet:~$ citation --artiste-mort --contexte-valable
"Ce qui compte c'est pas l'issue mais c'est le combat !" - Mano Solo
_
##hippie irc.freenode.net

Hors ligne

 

#21 28-09-2009 17:24:57

Fanch
Où ça ???
Lieu: Ben devant mon pc !
Date d'inscription: 14-01-2007
Messages: 710
Site web

Re: Un serveur pour les futures installs party

haha, justement, je me remet là dessus vue la connexion que l'on aura, ce sera surement utile.

Je code mon premier programme en python : un redirector d'url pour squid. Car le précedant en bash a été perdu lors d'une reinstall roll
Je vais les mettre en ligne ce soir ou demain.

Fanch


http://www.april.org/files/association/documents/bannieres/bouton_web_soutien_88x31.gif ==> Mon blog : Quick Troll Hosted

Hors ligne

 

#22 28-09-2009 19:56:06

René
Penn Bleo Kozh
Lieu: Quimper
Date d'inscription: 29-03-2007
Messages: 1235
Site web

Re: Un serveur pour les futures installs party

Fanch a écrit:

haha, justement, je me remet là dessus vue la connexion que l'on aura, ce sera surement utile.

Comme toi je le crois
Merci d'avance de booster les Abeilles smile


Reunig Kozh °¿°
Les JFL2010, une étape essentielle pour le développement des logiciels libres en Cornouaille.
Pour participer, il y a le wiki

Hors ligne

 

#23 29-09-2009 16:33:22

AddiKT1ve
Sale Jeune™
Lieu: Dans Ton GUL
Date d'inscription: 10-12-2006
Messages: 2309
Site web

Re: Un serveur pour les futures installs party

Fanch a écrit:

haha, justement, je me remet là dessus vue la connexion que l'on aura, ce sera surement utile.

Je code mon premier programme en python : un redirector d'url pour squid. Car le précedant en bash a été perdu lors d'une reinstall roll
Je vais les mettre en ligne ce soir ou demain.

Fanch

http://www.linuxquimper.org/forum/viewt … 3595#p3595 ?


http://addikt1ve.free.fr/images/signature.gif
addikt1ve@pouet:~$ citation --artiste-mort --contexte-valable
"Ce qui compte c'est pas l'issue mais c'est le combat !" - Mano Solo
_
##hippie irc.freenode.net

Hors ligne

 

#24 29-09-2009 19:50:40

Fanch
Où ça ???
Lieu: Ben devant mon pc !
Date d'inscription: 14-01-2007
Messages: 710
Site web

Re: Un serveur pour les futures installs party

Non

Version 0.1

Code:

#!/usr/bin/env python

#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
#               
#                  
#    Author : Fanch317 (fanch@linuxquimper.org)
#
#    Date : 2009-09-27
#    Updated : 2009-09-29
#
#    Description : Ce script est un redirecteur pour squid.
#                  Il est destinne a faire passer toute requete de depots de 
#                  distributions vers des depots locaux plus rapides lors 
#                  d'install-party. (Proxy transparent)

import sys,re,os.path

def process_url(line_squid):
  list = line_squid.split(' ')
  url_input = list[0]
  url_output = url_input + '\n'
  if re.search('http://(.*\.)?archive.ubuntu.com',url_input):
    path_file_local = re.sub(r'http://(.*\.)?archive.ubuntu.com/ubuntu/','/mnt/datas/repositories/ubuntu/archive/',url_input)
    if os.path.isfile(path_file_local):
      url_output = re.sub(r'(.*\.)?archive.ubuntu.com/ubuntu/','http://127.0.0.1/ubuntu/',url_input) + '\n'
  return url_output
 
while True:
  # URL ip-address/fqdn ident method
  line_squid = sys.stdin.readline().strip()
  url_processing = process_url(line_squid)
  sys.stdout.write(url_processing)
  sys.stdout.flush()

http://www.april.org/files/association/documents/bannieres/bouton_web_soutien_88x31.gif ==> Mon blog : Quick Troll Hosted

Hors ligne

 

#25 29-09-2009 21:48:47

Fanch
Où ça ???
Lieu: Ben devant mon pc !
Date d'inscription: 14-01-2007
Messages: 710
Site web

Re: Un serveur pour les futures installs party

Version 0.3

Le script test l'url locale au lieu de son chemin fichier. --> rend possible les dépots répartis sur plusieurs machines.
Quelques logs...

Code:

#!/usr/bin/env python

#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
#               
#                  
#    Author : Fanch317 (fanch@linuxquimper.org)
#
#    Date : 2009-09-27
#    Updated : 2009-09-30
#
#    Description : Ce script est un redirecteur pour squid.
#                  Il est destinne a faire passer toute requete de depots de 
#                  distributions vers des depots locaux plus rapides lors 
#                  d'install-party. (Proxy transparent)

import sys,re,os.path,urllib2,logging

redirectors = {}
redirectors[0] = ["(.*\.)?archive.ubuntu.com/ubuntu", "http://127.0.0.1/ubuntu/"]
#redirectors[i+1] = ["Partern de l'url a catcher", "URL locale des fichiers"]


LOG_FILENAME = '/var/log/squid/squid-redirector.log'
logging.basicConfig(filename=LOG_FILENAME,level=logging.DEBUG,)

logging.debug('Lancement d\'thread squid-redirector.py')


def process_url(line_squid):
  list = line_squid.split(' ')
  url_input = list[0]
  url_locale = re.sub(r'http://' + redirectors[0][0],redirectors[0][1],url_input)
  if re.search('http://' + redirectors[0][0],url_input):
    logging.debug('L\'url correspond a un depot')
    try:
      logging.debug('On verifie la presence du fichier local : '+url_locale)
      urllib2.urlopen(url_locale)
      url_output = url_locale + '\n'
      logging.debug('Present')
    except:
      url_output = url_input + '\n'
      logging.debug('Absent')
  return url_output
 
while True:
  # URL ip-address/fqdn ident method
  line_squid = sys.stdin.readline().strip()
  logging.debug('Reception d\'une requete : '+line_squid)
  url_processing = process_url(line_squid)
  sys.stdout.write(url_processing)
  sys.stdout.flush()

http://www.april.org/files/association/documents/bannieres/bouton_web_soutien_88x31.gif ==> Mon blog : Quick Troll Hosted

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB
Traduction par FluxBB.fr