• [^] # Re: Pourquoi compliqué ?

    Posté par . En réponse au message iPXE: multiple fichiers de configuration ?. Évalué à 1.

    ok, donc après avoir passé un temps fou à essayer de comprendre comment configurer nginx pour qu'il puisse gérer python, je me suis rabattu sur le php.
    Je ne connais pas ce langage mais ça m’a l’aire plus simple à comprendre que rechercher comment gérer un boot.py (non je ne veux pas créer une application en python, j’en ai rien à faire de Django, webpy et autre, non je ne veux pas me servir de la librairie ‘http serveur’ de python, j’en ai déjà un...)

    bref, je me suis rendu compte que je ne savais absolument pas comment les hyperviseurs font pour générer les MAC des VM et que avec ma méthode, j’allais devoirs renseigner l’adresse MAC, 1) lors de la réservation d’ip et 2) dans le script php... Ce qui fait une fois de trop !

    Je me base donc maintenant sur le hostname.
    j’ai bricolé le boot.php suivant en me basant sur le hostname pour déterminer le rôle d’une machine, ça fonctionne... du moins avec curl !

    <?php
    $version = "37.20221127.3.0";
    $base = "http://192.168.1.100";
    $hostname = $_GET['hostname'];
    /*
    $macBootstrap = [''];
    $macMaster = [''];
    $macWorker = [''];
    if (in_array($mac,$macBootstrap)) {
    */
    //if (str_contains($hostname,'master')) { // PHP8 :(
    if (strpos($hostname,'master') !== false ) {
     $role = "master";
    } elseif (strpos($hostname,'boot') !== false) {
     $role = "boot";
    } else {
     $role = "woker";
    }
    print("#!ipxe\n");
    print("kernel ${base}/fedora-coreos-${version}-live-kernel-x86_64 rd.neednet=1 console=tty0 coreos.inst=yes coreos.inst.install_dev=sda coreos.inst.ignition_url=${base}/${role}.ign\n");
    print("initrd ${base}/fedora-coreos-${version}-live-initramfs.x86_64.img\n");
    print("initrd ${base}/fedora-coreos-${version}-live-rootfs.x86_64.img\n");
    print("boot\n");
    ?>

    Merci pour l’aide apportée !

    Pour le reste : la suite au prochain numéro.