06 10 | 2011

Netinstall d'Ubuntu via un dépôt local

Rédigé par Sorrodje

Classé dans : Informatique, Mémos techniques

Pour des raisons diverses et variées, on peut avoir besoin de mettre en place une machine faisant office de serveur de dépôt de paquets sur un réseau local.


En l'occurence ici , le but est de monter une machine faisant office de dépot local sans toucher à la configuration réseau donc avec une IP attribuée par un DHCP ou la box du fournisseur d'accès internet. Ce mémo part du fait que j'ai vraiment mis du temps à comprendre comment on pouvait paramétrer le serveur de dépôt pour que l'installation ne nécessite ensuite pas de nom de serveur à résoudre ( utilisation IP directe donc ) et pas de paramétrage de chemin d'accès compliqué pour garder la proposition par défaut. Enfin j'ai aussi mis du temps à comprendre la nécessité des Dépôts relatif à l'installateur Debian .. Donc mise au propre de mon mémo et publication !


Ceci est bien sur empirique et probablement truffé d'erreurs que j'aurais beaucoup de plaisir à vous voir corriger , n'hésitez pas à le faire via les commentaires , Non content d'apprendre de mes erreurs , j'intégrerai bien volontiers les modifications pour moi autant que pour les futurs lecteurs :


  • Mise en place du miroir de dépôt



  • Installation d'apt mirror


    sudo apt-get install apt-mirror

    Puis configuration : Il faut modifier le fichier /etc/apt/mirror.list pour obtenir ça ( ici version Ubuntu Natty 11.04 32bits à modifier selon la version d'ubuntu utilisée)


    ############# config ##################
    #
    # set base_path /var/spool/apt-mirror
    #
    # set mirror_path $base_path/mirror
    # set skel_path $base_path/skel
    # set var_path $base_path/var
    # set cleanscript $var_path/clean.sh
    # set defaultarch <running host architecture>
    # set postmirror_script $var_path/postmirror.sh
    # set run_postmirror 0
    set nthreads 20
    set _tilde 0
    #
    ############# end config ##############

    deb http://archive.ubuntu.com/ubuntu natty main restricted universe multiverse
    deb http://archive.ubuntu.com/ubuntu natty-security main restricted universe multiverse
    deb http://archive.ubuntu.com/ubuntu natty-updates main restricted universe multiverse
    #deb http://archive.ubuntu.com/ubuntu natty-proposed main restricted universe multiverse
    #deb http://archive.ubuntu.com/ubuntu natty-backports main restricted universe multiverse

    #deb-src http://archive.ubuntu.com/ubuntu natty main restricted universe multiverse
    #deb-src http://archive.ubuntu.com/ubuntu natty-security main restricted universe multiverse
    #deb-src http://archive.ubuntu.com/ubuntu natty-updates main restricted universe multiverse
    #deb-src http://archive.ubuntu.com/ubuntu natty-proposed main restricted universe multiverse
    #deb-src http://archive.ubuntu.com/ubuntu natty-backports main restricted universe multiverse


    deb http://archive.ubuntu.com/ubuntu natty main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer
    deb http://archive.ubuntu.com/ubuntu natty-updates main/debian-installer
    #deb http://archive.ubuntu.com/ubuntu natty-backports main/debian-installer
    #deb http://archive.ubuntu.com/ubuntu natty-security main/debian-installer restricted/debian-installer universe/debian-installer
    #deb http://archive.ubuntu.com/ubuntu natty-proposed main/debian-installer restricted/debian-installer universe/debian-installer


    clean http://archive.ubuntu.com/ubuntu

    A noter l'unique modification de "set base_path" pour indiquer le répertoire du dépot local . Ici on choisir le /home/user/ dans la mesure où si on a un partitionnement /, SWAP, /home avec mettons 20 ou 30 Go pour le / . L'espace sera insuffisant dans cette racine ( par défaut sans configuration spécifique le dépôt irait se créer dans /var/spool/ ) pour créer le dépôt local ( ici pour les paquets sans les sources , on en a déjà pour près de 40go ) , d'où le choix du /home . Sur une vraie configuration serveur avec entre autres une partition conséquente pour le /var , on peut parfaitement laisser le chemin par défaut. et donc laisser commentée la ligne # set base_path.


    D'autre part, on laisse de côté les dépôts backports/proposed puisque le but est d'avoir un dépot pour des installations d'Ubuntu , on laisse aussi de côté les sources ( deb-src ) .. donc les lignes correspondantes restent commentées. Les cinq dernières lignes correspondent à l'installateur Debian qui n'est pas fourni avec l'iso de netinstall ( mini.iso ) d'Ubuntu . J'avoue que j'ai repris ces lignes ici ou là et modifié pour avoir ce résultat au gré des corrections d'erreur au moment de la constitution des dépôts. EN bref , ça fonctionne avec ces dépots configurés comme tel.


    Création et mise à jour du dépot local: Lancer la commande apt-mirror dans un terminal et c'est tout. Puis prendre son mal en patience: Il y a près de 40 Go à passer, ça va prendre du temps et manger de la bande passante. A noter qu'on peut arrêter ( ctrl + C dans le terminal ) et reprendre ( par la commande apt-mirror ) autant de fois qu'on le souhaite . J'ai donc personnellement utilisé plusieurs nuits pour la mise en place du dépôt.


    Pour la mise à jour il suffit de lancer régulièrement la commande "apt-mirror" et le dépot est Mis à jour . De temps à autre , il faut faire un ménage des paquets et fichiers obsolètes en exécutant le script de nettoyage clean.sh présent dans votre dépot ( le chemin complet est donné par le terminal lors d'une MAJ ). pour cela il faudra peut-être le rendre éxécutable via chmod +X clean.sh ( après s'être positionné dans le répertoire qui va bien via cd /le/chemin/omplet/de/clean.sh ). l'exécution se fait par le passage de la commande ./clean.sh ( toujours si on est bien dans le répertoire contenant clean.sh ).



    Voilà, là on a un dépôt local. Et il faut maintenant le rendre accessible sur le réseau. On va utiliser pour cela http et Apache.

  • Mise en place du serveur de dépot local



  • Installation d'Apache si ce n'est pas déjà fait:


    sudo apt-get install apache2

    Définition d'un Vhost pour définir ou et comment Apache doit "servir" le dépot local :


    cd /etc/apache2/sites-available
    sudo nano default

    Modification et enregistrement du fichier sous un nom spécifique pour obtenir ça :

    DocumentRoot /var/www/archive.ubuntu.com
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all


    Puis ajout du Vhost


    sudo a2ensite nom_du-Vhost
    sudo service apache2 reload

    A priori ce Vhost signifie que toute requête sur le port 80 doit se traduire par le service du répertoire /var/www/archive.ubuntu.com par Apache. Quel rapport avec notre dépôt sur /home/sorrodje/miroir-natty ? Aucun tant qu'on a pas fait le lien pour permettre à Apache d'aller servir correctement notre dépôt local.


    On crée donc le lien :


    sudo ln -s /home/sorrodje/miroir-natty/mirror/archive.ubuntu.com /var/www/archive.ubuntu.com

    puis

    sudo chown www-data:www-data /var/www/archive.ubuntu.com

    pour qu'Apache dispose des droits complets sur ce lien.


    Pourquoi /home/sorrodje/miroir-natty/mirror/archive.ubuntu.com ? C'est pour faire en sorte que par défaut Apache serve le répertoire Ubuntu dans /home/sorrodje/miroir-natty/mirror/achive.ubuntu.com ce qui va nous simplifier la vie lors de l'installation via l'iso de netinstall.


    On teste dans le navigateur de notre serveur de dépot local en mettant localhost ou 127.0.0.1 dans l'urlbar et on doit voir le répertoire Ubuntu . Même test à réaliser d'un navigateur d'une autre machine sur notre réseau local en utilisant l'IP du serveur en lien et place de "localhost/127.0.0.1" .. utiliser L'IP et pas un hostname est ici important , on verra là encore pourquoi plus tard lors de l'installation .



    A ce stade on a donc un miroir local et un serveur de dépôt. Reste à tenter la netinstall D'Ubuntu.



  • La Netinstall


  • Cette netinstall avec configuration du dépôt est possible que je sache avec le CD Alternate en utilisant le mode expert ( option dispo via F6 sur l'écran de démarrage du CD d'install ) mais c'est fastidieux puisque le mode expert permet de multiples choix alors que le seul qui nous intéresse ici est de pouvoir sélectionner notre dépôt de paquets. on choisit dont l'iso d'installation minimale d'Ubuntu :


    Suivre le déroulé de l'installation ( config langue , clavier , Réseau ) jusqu'à arriver au choix du miroir de dépot . Trouver et sélectionner le paramétrage manuel tout en haut de la liste déroulante proposée.


    Dans le nom du serveur mettre l'IP de notre serveur ( soit l'IP fixe connue soit une IP attribuée par DHCP/box à obtenir par "sudo ifconfig" sur le serveur) , valider puis laisser /ubuntu/ dans l'écran suivant ... C'est dans ce sens qu'on a défini précédemment notre accès direct au répertoire Ubuntu dans la config Apache. et qu'on a défini notre Vhost sans ServerName . Par définition , on ne peut pas configuer /etc/hosts via le processus d'install et on doit donc compter sur le serveur DHCP/DNS tel que paramétré dans le réseau local pour faire un lien entre un éventuel HostName du serveur et son IP . En l'occurence avec les choix de paramétrage Apache , on peut simplement utiliser l'IP du serveur et le chemin par défaut du CD d'install.



    On suit le processus de netinstall classique . Et voili voilà. Du coup, avec ces manips on peut créer un serveur de dépot local à connecter sur n'importe quel réseau local et faire des install sans avoir à toucher au DHCP ou au DNS.


    Mots clés : Netinstall, Ubuntu, Miroir, Dépôt

    Écrire un commentaire

    Quelle est la dernière lettre du mot mfedyg ? : 

    Archives

    Contrat Creative Commons
    Ce(tte) oeuvre est mise à disposition selon les termes de la Licence Creative Commons Paternité - Partage à l'Identique 2.0 France
    .