Bonjour à tous,
Voilà, hier, j'ai passé la journée à tenter de monter un PC serva nt de
serveur DHCP et fournissant un service pour le boot PXE (par simple envie
d'apprendre de nouvelles choses :]).
Pour cela j'ai suivi le tuto à l'adresse : http://fr.gentoo-wiki.com/H OWTO_Installation_de_Gentoo_sans_disque_dur
Apparemment le serveur DHCP marche bien car le postes client arrive à
recevoir l'adresse qui lui est attribuée dans la config de dhcpd.conf.
Le problème, est que dès que la connexion se
passe, le poste client renvoi en boucle une erreure du style "RX ERROR 00 00",
du côté du serveur
j'ai juste une information comme quoi il traite le fichier "pxegrub" (voi r
howto en lien), et bien entendu, aucun log n'est révélateur d'une que lconque
erreure...
Le "RX
ERROR" me fait penser au "RX" lorsqu'on fait un "ifconfig", je pencherai donc pour une erreure du client, au niveau du téléchargement du fichier ,
mais je ne vois pas à quel niveau
précisément, au niveau de TFTP, BOOTP, ou encore NFS?
Quelqu'un aurait-il une idée du problème, ou ayant un début de rech erche
précédemment effectuée sur le même problème?
Merci d'avance,
--
Cordialement,
Sylvain TENOU.
Bonjour à tous,
Voilà, hier, j'ai passé la journée à tenter de monter un PC serva nt de
serveur DHCP et fournissant un service pour le boot PXE (par simple envie
d'apprendre de nouvelles choses :]).
Pour cela j'ai suivi le tuto à l'adresse : http://fr.gentoo-wiki.com/H OWTO_Installation_de_Gentoo_sans_disque_dur
Apparemment le serveur DHCP marche bien car le postes client arrive à
recevoir l'adresse qui lui est attribuée dans la config de dhcpd.conf.
Le problème, est que dès que la connexion se
passe, le poste client renvoi en boucle une erreure du style "RX ERROR 00 00",
du côté du serveur
j'ai juste une information comme quoi il traite le fichier "pxegrub" (voi r
howto en lien), et bien entendu, aucun log n'est révélateur d'une que lconque
erreure...
Le "RX
ERROR" me fait penser au "RX" lorsqu'on fait un "ifconfig", je pencherai donc pour une erreure du client, au niveau du téléchargement du fichier ,
mais je ne vois pas à quel niveau
précisément, au niveau de TFTP, BOOTP, ou encore NFS?
Quelqu'un aurait-il une idée du problème, ou ayant un début de rech erche
précédemment effectuée sur le même problème?
Merci d'avance,
--
Cordialement,
Sylvain TENOU.
Bonjour à tous,
Voilà, hier, j'ai passé la journée à tenter de monter un PC serva nt de
serveur DHCP et fournissant un service pour le boot PXE (par simple envie
d'apprendre de nouvelles choses :]).
Pour cela j'ai suivi le tuto à l'adresse : http://fr.gentoo-wiki.com/H OWTO_Installation_de_Gentoo_sans_disque_dur
Apparemment le serveur DHCP marche bien car le postes client arrive à
recevoir l'adresse qui lui est attribuée dans la config de dhcpd.conf.
Le problème, est que dès que la connexion se
passe, le poste client renvoi en boucle une erreure du style "RX ERROR 00 00",
du côté du serveur
j'ai juste une information comme quoi il traite le fichier "pxegrub" (voi r
howto en lien), et bien entendu, aucun log n'est révélateur d'une que lconque
erreure...
Le "RX
ERROR" me fait penser au "RX" lorsqu'on fait un "ifconfig", je pencherai donc pour une erreure du client, au niveau du téléchargement du fichier ,
mais je ne vois pas à quel niveau
précisément, au niveau de TFTP, BOOTP, ou encore NFS?
Quelqu'un aurait-il une idée du problème, ou ayant un début de rech erche
précédemment effectuée sur le même problème?
Merci d'avance,
--
Cordialement,
Sylvain TENOU.
Le 21/06/07, Sylvain TENOU > a écrit :
>
> Bonjour à tous,
>
> Voilà, hier, j'ai passé la journée à tenter de monter un PC ser vant de
> serveur DHCP et fournissant un service pour le boot PXE (par simple env ie
> d'apprendre de nouvelles choses :]).
> Pour cela j'ai suivi le tuto à l'adresse : http://fr.gentoo-wiki.com /HOWTO_Installation_de_Gentoo_sans_disque_dur
>
>
> Apparemment le serveur DHCP marche bien car le postes client arrive à
> recevoir l'adresse qui lui est attribuée dans la config de dhcpd.conf .
> Le problème, est que dès que la connexion se
> passe, le poste client renvoi en boucle une erreure du style "RX ERROR 0000",
> du côté du serveur
> j'ai juste une information comme quoi il traite le fichier "pxegrub"
> (voir howto en lien), et bien entendu, aucun log n'est révélateur d 'une
> quelconque erreure...
>
> Le "RX
> ERROR" me fait penser au "RX" lorsqu'on fait un "ifconfig", je penchera i donc pour une erreure du client, au niveau du téléchargement du fichi er,
> mais je ne vois pas à quel niveau
> précisément, au niveau de TFTP, BOOTP, ou encore NFS?
>
> Quelqu'un aurait-il une idée du problème, ou ayant un début de re cherche
> précédemment effectuée sur le même problème?
>
> Merci d'avance,
>
> --
> Cordialement,
> Sylvain TENOU.
Le 21/06/07, Sylvain TENOU <tenou.sylvain@gmail.com > a écrit :
>
> Bonjour à tous,
>
> Voilà, hier, j'ai passé la journée à tenter de monter un PC ser vant de
> serveur DHCP et fournissant un service pour le boot PXE (par simple env ie
> d'apprendre de nouvelles choses :]).
> Pour cela j'ai suivi le tuto à l'adresse : http://fr.gentoo-wiki.com /HOWTO_Installation_de_Gentoo_sans_disque_dur
>
>
> Apparemment le serveur DHCP marche bien car le postes client arrive à
> recevoir l'adresse qui lui est attribuée dans la config de dhcpd.conf .
> Le problème, est que dès que la connexion se
> passe, le poste client renvoi en boucle une erreure du style "RX ERROR 0000",
> du côté du serveur
> j'ai juste une information comme quoi il traite le fichier "pxegrub"
> (voir howto en lien), et bien entendu, aucun log n'est révélateur d 'une
> quelconque erreure...
>
> Le "RX
> ERROR" me fait penser au "RX" lorsqu'on fait un "ifconfig", je penchera i donc pour une erreure du client, au niveau du téléchargement du fichi er,
> mais je ne vois pas à quel niveau
> précisément, au niveau de TFTP, BOOTP, ou encore NFS?
>
> Quelqu'un aurait-il une idée du problème, ou ayant un début de re cherche
> précédemment effectuée sur le même problème?
>
> Merci d'avance,
>
> --
> Cordialement,
> Sylvain TENOU.
Le 21/06/07, Sylvain TENOU > a écrit :
>
> Bonjour à tous,
>
> Voilà, hier, j'ai passé la journée à tenter de monter un PC ser vant de
> serveur DHCP et fournissant un service pour le boot PXE (par simple env ie
> d'apprendre de nouvelles choses :]).
> Pour cela j'ai suivi le tuto à l'adresse : http://fr.gentoo-wiki.com /HOWTO_Installation_de_Gentoo_sans_disque_dur
>
>
> Apparemment le serveur DHCP marche bien car le postes client arrive à
> recevoir l'adresse qui lui est attribuée dans la config de dhcpd.conf .
> Le problème, est que dès que la connexion se
> passe, le poste client renvoi en boucle une erreure du style "RX ERROR 0000",
> du côté du serveur
> j'ai juste une information comme quoi il traite le fichier "pxegrub"
> (voir howto en lien), et bien entendu, aucun log n'est révélateur d 'une
> quelconque erreure...
>
> Le "RX
> ERROR" me fait penser au "RX" lorsqu'on fait un "ifconfig", je penchera i donc pour une erreure du client, au niveau du téléchargement du fichi er,
> mais je ne vois pas à quel niveau
> précisément, au niveau de TFTP, BOOTP, ou encore NFS?
>
> Quelqu'un aurait-il une idée du problème, ou ayant un début de re cherche
> précédemment effectuée sur le même problème?
>
> Merci d'avance,
>
> --
> Cordialement,
> Sylvain TENOU.
J'ai recherché dans mes fichiers et voila les fichiers de conf que
j'utilisais :
dhcpd.conf :
# Fichier de configuration DHCP pour DHCP ISC 3.0
ddns-update-style none;
allow booting;
allow bootp;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.32.0 netmask 255.255.255.0 {
next-server 192.168.32.64;
filename "pxelinux.0";
option subnet-mask 255.255.255.0;
range 192.168.32.1 192.168.32.1;
# option routers 192.168.32.64;
# option root-path "/mnt/nodes/192.168.32.1";
# server-name "gentoo";
}
pxelinux.cfg/default :
LABEL 1
KERNEL kernel-2.4.30-om-r3-2
APPEND ip=dhcp root=/dev/nfs nfsroot2.168.32.64:/mnt/nodes/192.1 68.32.1 vgax8
Dans cette méthode, la machine cliente attend un numéro au prompt (de 1 à x) pour savoir quel dossier racine monter par nfs .
Comme dans la configuration dhcp, on peut aussi spécifier un "root-path " pour chaque machine.
J'avais récupéré les adresses mac de chaque machine puis spécifie r quoi faire au boot pour chaque adresse mac.
Tout dépend du control que tu veux avoir et de la séquence de boot re cherchée.
pour créer les nodes, j'avais une partition /mnt/nodes dans laquelle j' avais la racine de chacune des machines clientes
comme /mnt/nodes/192.168.32.1 ... /mnt/nodes/192.168.32.254
j'avais dans ces dossiers tres peu de fichiers (32Mo je crois) qui ne ser vait que lors du démarrage du noayu.
Ensuite, je montais un /usr commum à toutes les machines clientes.
Seuls les dossiers /var, /sys et /proc doivent être individuels.
J'ai aussi du modifier l'ordre de démarrage des scripts pour démarrer le réseau avant le reste vu que /usr est monté par nfs.
Tout marchais sans erreur au boot. C'est lors de l'arret que ca paraissa it moins ... propre :)
Si tu arrives a avoir un beau démarrage et un arrêt propre, je suis i ntéressé... :)
--
-=( Polytan )=-
J'ai recherché dans mes fichiers et voila les fichiers de conf que
j'utilisais :
dhcpd.conf :
# Fichier de configuration DHCP pour DHCP ISC 3.0
ddns-update-style none;
allow booting;
allow bootp;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.32.0 netmask 255.255.255.0 {
next-server 192.168.32.64;
filename "pxelinux.0";
option subnet-mask 255.255.255.0;
range 192.168.32.1 192.168.32.1;
# option routers 192.168.32.64;
# option root-path "/mnt/nodes/192.168.32.1";
# server-name "gentoo";
}
pxelinux.cfg/default :
LABEL 1
KERNEL kernel-2.4.30-om-r3-2
APPEND ip=dhcp root=/dev/nfs nfsroot=192.168.32.64:/mnt/nodes/192.1 68.32.1 vga=788
Dans cette méthode, la machine cliente attend un numéro au prompt (de 1 à x) pour savoir quel dossier racine monter par nfs .
Comme dans la configuration dhcp, on peut aussi spécifier un "root-path " pour chaque machine.
J'avais récupéré les adresses mac de chaque machine puis spécifie r quoi faire au boot pour chaque adresse mac.
Tout dépend du control que tu veux avoir et de la séquence de boot re cherchée.
pour créer les nodes, j'avais une partition /mnt/nodes dans laquelle j' avais la racine de chacune des machines clientes
comme /mnt/nodes/192.168.32.1 ... /mnt/nodes/192.168.32.254
j'avais dans ces dossiers tres peu de fichiers (32Mo je crois) qui ne ser vait que lors du démarrage du noayu.
Ensuite, je montais un /usr commum à toutes les machines clientes.
Seuls les dossiers /var, /sys et /proc doivent être individuels.
J'ai aussi du modifier l'ordre de démarrage des scripts pour démarrer le réseau avant le reste vu que /usr est monté par nfs.
Tout marchais sans erreur au boot. C'est lors de l'arret que ca paraissa it moins ... propre :)
Si tu arrives a avoir un beau démarrage et un arrêt propre, je suis i ntéressé... :)
--
-=( Polytan )=-
J'ai recherché dans mes fichiers et voila les fichiers de conf que
j'utilisais :
dhcpd.conf :
# Fichier de configuration DHCP pour DHCP ISC 3.0
ddns-update-style none;
allow booting;
allow bootp;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.32.0 netmask 255.255.255.0 {
next-server 192.168.32.64;
filename "pxelinux.0";
option subnet-mask 255.255.255.0;
range 192.168.32.1 192.168.32.1;
# option routers 192.168.32.64;
# option root-path "/mnt/nodes/192.168.32.1";
# server-name "gentoo";
}
pxelinux.cfg/default :
LABEL 1
KERNEL kernel-2.4.30-om-r3-2
APPEND ip=dhcp root=/dev/nfs nfsroot2.168.32.64:/mnt/nodes/192.1 68.32.1 vgax8
Dans cette méthode, la machine cliente attend un numéro au prompt (de 1 à x) pour savoir quel dossier racine monter par nfs .
Comme dans la configuration dhcp, on peut aussi spécifier un "root-path " pour chaque machine.
J'avais récupéré les adresses mac de chaque machine puis spécifie r quoi faire au boot pour chaque adresse mac.
Tout dépend du control que tu veux avoir et de la séquence de boot re cherchée.
pour créer les nodes, j'avais une partition /mnt/nodes dans laquelle j' avais la racine de chacune des machines clientes
comme /mnt/nodes/192.168.32.1 ... /mnt/nodes/192.168.32.254
j'avais dans ces dossiers tres peu de fichiers (32Mo je crois) qui ne ser vait que lors du démarrage du noayu.
Ensuite, je montais un /usr commum à toutes les machines clientes.
Seuls les dossiers /var, /sys et /proc doivent être individuels.
J'ai aussi du modifier l'ordre de démarrage des scripts pour démarrer le réseau avant le reste vu que /usr est monté par nfs.
Tout marchais sans erreur au boot. C'est lors de l'arret que ca paraissa it moins ... propre :)
Si tu arrives a avoir un beau démarrage et un arrêt propre, je suis i ntéressé... :)
--
-=( Polytan )=-
J'ai recherché dans mes fichiers et voila les fichiers de conf que
j'utilisais :
dhcpd.conf :
# Fichier de configuration DHCP pour DHCP ISC 3.0
ddns-update-style none;
allow booting;
allow bootp;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.32.0 netmask 255.255.255.0 {
next-server 192.168.32.64;
filename "pxelinux.0";
option subnet-mask 255.255.255.0;
range 192.168.32.1 192.168.32.1;
# option routers 192.168.32.64;
# option root-path "/mnt/nodes/192.168.32.1";
# server-name "gentoo";
}
pxelinux.cfg/default :
LABEL 1
KERNEL kernel-2.4.30-om-r3-2
APPEND ip=dhcp root=/dev/nfs nfsroot2.168.32.64:/mnt/nodes/192.1 68.32.1 vgax8
Dans cette méthode, la machine cliente attend un numéro au prompt (de 1 à x) pour savoir quel dossier racine monter par nfs .
Comme dans la configuration dhcp, on peut aussi spécifier un "root-path " pour chaque machine.
J'avais récupéré les adresses mac de chaque machine puis spécifie r quoi faire au boot pour chaque adresse mac.
Tout dépend du control que tu veux avoir et de la séquence de boot re cherchée.
pour créer les nodes, j'avais une partition /mnt/nodes dans laquelle j' avais la racine de chacune des machines clientes
comme /mnt/nodes/192.168.32.1 ... /mnt/nodes/192.168.32.254
j'avais dans ces dossiers tres peu de fichiers (32Mo je crois) qui ne ser vait que lors du démarrage du noayu.
Ensuite, je montais un /usr commum à toutes les machines clientes.
Seuls les dossiers /var, /sys et /proc doivent être individuels.
*J'ai aussi du modifier l'ordre de démarrage des scripts pour démarre r le réseau avant le reste vu que /usr est monté par nfs.*
Tout marchais sans erreur au boot. C'est lors de l'arret que ca paraissa it moins ... propre :)
Si tu arrives a avoir un beau démarrage et un arrêt propre, je suis i ntéressé... :)
--
-=( Polytan )=-
J'ai recherché dans mes fichiers et voila les fichiers de conf que
j'utilisais :
dhcpd.conf :
# Fichier de configuration DHCP pour DHCP ISC 3.0
ddns-update-style none;
allow booting;
allow bootp;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.32.0 netmask 255.255.255.0 {
next-server 192.168.32.64;
filename "pxelinux.0";
option subnet-mask 255.255.255.0;
range 192.168.32.1 192.168.32.1;
# option routers 192.168.32.64;
# option root-path "/mnt/nodes/192.168.32.1";
# server-name "gentoo";
}
pxelinux.cfg/default :
LABEL 1
KERNEL kernel-2.4.30-om-r3-2
APPEND ip=dhcp root=/dev/nfs nfsroot=192.168.32.64:/mnt/nodes/192.1 68.32.1 vga=788
Dans cette méthode, la machine cliente attend un numéro au prompt (de 1 à x) pour savoir quel dossier racine monter par nfs .
Comme dans la configuration dhcp, on peut aussi spécifier un "root-path " pour chaque machine.
J'avais récupéré les adresses mac de chaque machine puis spécifie r quoi faire au boot pour chaque adresse mac.
Tout dépend du control que tu veux avoir et de la séquence de boot re cherchée.
pour créer les nodes, j'avais une partition /mnt/nodes dans laquelle j' avais la racine de chacune des machines clientes
comme /mnt/nodes/192.168.32.1 ... /mnt/nodes/192.168.32.254
j'avais dans ces dossiers tres peu de fichiers (32Mo je crois) qui ne ser vait que lors du démarrage du noayu.
Ensuite, je montais un /usr commum à toutes les machines clientes.
Seuls les dossiers /var, /sys et /proc doivent être individuels.
*J'ai aussi du modifier l'ordre de démarrage des scripts pour démarre r le réseau avant le reste vu que /usr est monté par nfs.*
Tout marchais sans erreur au boot. C'est lors de l'arret que ca paraissa it moins ... propre :)
Si tu arrives a avoir un beau démarrage et un arrêt propre, je suis i ntéressé... :)
--
-=( Polytan )=-
J'ai recherché dans mes fichiers et voila les fichiers de conf que
j'utilisais :
dhcpd.conf :
# Fichier de configuration DHCP pour DHCP ISC 3.0
ddns-update-style none;
allow booting;
allow bootp;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.32.0 netmask 255.255.255.0 {
next-server 192.168.32.64;
filename "pxelinux.0";
option subnet-mask 255.255.255.0;
range 192.168.32.1 192.168.32.1;
# option routers 192.168.32.64;
# option root-path "/mnt/nodes/192.168.32.1";
# server-name "gentoo";
}
pxelinux.cfg/default :
LABEL 1
KERNEL kernel-2.4.30-om-r3-2
APPEND ip=dhcp root=/dev/nfs nfsroot2.168.32.64:/mnt/nodes/192.1 68.32.1 vgax8
Dans cette méthode, la machine cliente attend un numéro au prompt (de 1 à x) pour savoir quel dossier racine monter par nfs .
Comme dans la configuration dhcp, on peut aussi spécifier un "root-path " pour chaque machine.
J'avais récupéré les adresses mac de chaque machine puis spécifie r quoi faire au boot pour chaque adresse mac.
Tout dépend du control que tu veux avoir et de la séquence de boot re cherchée.
pour créer les nodes, j'avais une partition /mnt/nodes dans laquelle j' avais la racine de chacune des machines clientes
comme /mnt/nodes/192.168.32.1 ... /mnt/nodes/192.168.32.254
j'avais dans ces dossiers tres peu de fichiers (32Mo je crois) qui ne ser vait que lors du démarrage du noayu.
Ensuite, je montais un /usr commum à toutes les machines clientes.
Seuls les dossiers /var, /sys et /proc doivent être individuels.
*J'ai aussi du modifier l'ordre de démarrage des scripts pour démarre r le réseau avant le reste vu que /usr est monté par nfs.*
Tout marchais sans erreur au boot. C'est lors de l'arret que ca paraissa it moins ... propre :)
Si tu arrives a avoir un beau démarrage et un arrêt propre, je suis i ntéressé... :)
--
-=( Polytan )=-
Bonsoir,
enfin réussi à faire démarrer mon PC par PXE! :]
Ça soulage d'y arriver enfin! :)
séquence de boot :/.
modifié, et les conséquences de ces modifications (s'il y en a d'autr e que
le démarrage du réseau en premier), pour avoir le démarrage du ré seau
avant le reste de la séquence de boot?
Merci d'avance.
toi! :)
Cordialement,
Bonsoir,
enfin réussi à faire démarrer mon PC par PXE! :]
Ça soulage d'y arriver enfin! :)
séquence de boot :/.
modifié, et les conséquences de ces modifications (s'il y en a d'autr e que
le démarrage du réseau en premier), pour avoir le démarrage du ré seau
avant le reste de la séquence de boot?
Merci d'avance.
toi! :)
Cordialement,
Bonsoir,
enfin réussi à faire démarrer mon PC par PXE! :]
Ça soulage d'y arriver enfin! :)
séquence de boot :/.
modifié, et les conséquences de ces modifications (s'il y en a d'autr e que
le démarrage du réseau en premier), pour avoir le démarrage du ré seau
avant le reste de la séquence de boot?
Merci d'avance.
toi! :)
Cordialement,
> Bonsoir,
Bonjour à toi :-)
J'ai passé ma soirée à mettre en place le tuto que tu m'as donné au
> départ.
Je crois avoir aussi passé plusieurs soirées à le faire marcher...
Après quelque péripéties (entre autre, compilation d'un noyau > 2.6 .19
Pourquoi pas le dernier stable ? (2.6.20 je crois)
parce qu'il posait problème, et pas qu'à moi d'après ce que j'ai l u),
> j'ai enfin réussi à faire démarrer mon PC par PXE! :]
> Ça soulage d'y arriver enfin! :)
Je te comprends, ca me fait pareil à chaque fois et je crois que je vai s
recommencer dès la semaine prochaine.
Mais maintenant, j'ai toujours le problème du montage de /usr au débu t de
> la séquence de boot :/.
Oui, ca permet d'avoir un /usr de la taille que tu veux, commun à toute s
les machines et après de copier quelques 30-32 Mo pour les clients et d e les
personnaliser.
À vrai dire, pour cela j'ai pas encore très bien saisi le système : -S...
Il faut jouer avec les scripts au démarrage et avoir bien fait le fstab .
Pourrais-tu m'expliquer ce que tu as
> modifié, et les conséquences de ces modifications (s'il y en a d'au tre que
> le démarrage du réseau en premier), pour avoir le démarrage du r éseau
> avant le reste de la séquence de boot?
>
> Merci d'avance.
Bon, mettons les choses au clair : j'ai quelques scripts, mais...ce fut a u
debut de ma connaissance de python et des fois, ben...c'est pas tres fun :)
J'ai fait dans un dossier une gentoo complète pour les machines cliente s.
cela se trouvait dans /mnt/systeme_racine/ (une partition à part, mais ca
ne change pas grand chose à part booter dessus pour voir que ca marche sans
bidouiller :) )
les machines clientes sont dans /mnt/nodes/.
Pour chaque clients sont créés un dossier portant leur numéro ip (p our m'y
retrouver) et sont copié les fichiers necessaires.
je copie : /bin /sbin /usr/share/consolefont,consoletrans... (necesaire a u
boot, on remontera /usr par dessus), /lib, /etc et /root
voila les scripts :
On prépare le terrain, j'ai plein de petits scripts pour tout prépare r
pour les nodes (comment ca je suis une feignasse qui déteste les oépr ations
répétitives ? :) )
faire_des_nodes.py
# -*- coding:UTF-8 -*-
from creer_repertoires import rep
from etcnodes import etc,hosts,dev,fastboot,perm
from copier_fichiers import copier_fichiers
from os import system,chdir
from fstab import fstab
nb = 12
# on crée les répertoires de base
rep(nb)
# On copie les fichiers pour que ca puisse démarrer
copier_fichiers(nb)
# On spécifie le etc pour chaque nodes :
# /etc/conf.d/net
# /etc/conf.d/hostname
# /etc/hosts
# /etc/fstab
etc(nb)
hosts(nb)
fstab(nb)
dev(nb)
fastboot(nb)
perm(nb)
Création des répertoires pour ensuite copier les fichiers dedans (oui ,
j'aurais pu tout mettre dans un même scripts, mais pour les modif au
compte-goutte, c'est plus simple)
copier_repertoires.py
# -*- coding:UTF-8 -*-
# On crée les nodes pour booter le réseau
from os import chdir,mkdir
def rep(nb):
for i in range(1,nb+1,1):
chdir('/mnt/nodes')
rep = '192.168.32.' + str(i)
mkdir(rep)
liste =
['etc','home','home/emcc','dev','proc','sys','tmp','mnt','root','var','us r','opt','mfs']
listvar = ['empty','lock','log','run','spool','tmp']
listusr =
['bin','sbin','share','share/consolefonts','share/consoletrans','share/ke ymaps','share/zoneinfo','share/locale','share/locale/fr']
for j in liste:
mkdir('%s/%s' % (rep,j))
mkdir('%s/etc/conf.d' % (rep))
for j in listvar:
mkdir('%s/var/%s' % (rep,j))
for j in listusr:
mkdir('%s/usr/%s' % (rep,j))
préparation de /etc :
etcnodes.py
# -*- coding:UTF-8 -*-
# On configure le dossier etc des nodes
from os import system,mkdir,chdir
def etc(nb):
for i in range(1,nb+1,1):
ip = '192.168.32.' + str(i)
# system('touch /mnt/nodes/%s/etc/conf.d/net' % (ip))
# system('touch /mnt/nodes/%s/etc/conf.d/hostname' % (ip))
chdir('/mnt/nodes/%s/etc/conf.d' % (ip))
# f = open('net','w')
# t = 'iface_eth0="%s broadcast 192.168.255.255 netmask
255.255.255.0"n' % (ip)
# f.write(t)
# f.close()
f = open('hostname','w')
node = 'node' + str(i)
t = 'HOSTNAME="%s"n' % (node)
f.write(t)
f.close()
def hosts(nb):
for i in range(1,nb+1,1):
ipi = '192.168.32.' + str(i)
# system('touch /mnt/nodes/%s/etc/hosts' % ipi)
chdir('/mnt/nodes/%s/etc' % ipi)
f = open('hosts','w')
node = 'node' + str(i)
t1 = '127.0.0.1 localhost %s n' % node
f.write(t1)
for j in range(1,nb+1,1):
ip = '192.168.32.' + str(j)
nodej = 'node' + str(j)
t = '%s %sn' % (ip,nodej)
f.write(t)
f.close()
def dev(nb):
for i in range(1,nb+1,1):
ip = '192.168.32.' + str(i)
system('mknod /mnt/nodes/%s/dev/console c 5 1' % ip)
def fastboot(nb):
for i in range(1,nb+1,1):
ip = ' 192.168.32.' + str(i)
system('touch /mnt/nodes/%s/fastboot' % ip)
system('echo "touch /fastboot" >>
/mnt/nodes/%s/etc/conf.d/local.start' % ip)
def perm(nb):
for i in range(1,nb+1,1):
ip = '192.168.32.' + str(i)
system('chmod a+rw -R /mnt/nodes/%s' % ip)
system('chmod a-rw -R /mnt/nodes/%s/etc' % ip)
system('chmod +rw -R /mnt/nodes/%s/etc' % ip)
system('chmod 600 -R /mnt/nodes/%s/etc/ssh' % ip)
system('chmod a+rw -R /mnt/nodes/%s/var' % ip)
system('chmod 700 -R /mnt/nodes/%s/var' % ip)
dans ce script, il y a surement des choses qui ne te serviront à rien. Il
faut que tu saches que je faisais des grappes de calcul openmosix à cet te
époque...
copier_fichiers.py
# -*- coding:UTF-8 -*-
# Copie des fichiers nécessaire au boot
from os import system,chdir
def copier_fichiers(nb):
for i in range(1,nb+1,1):
ip = '192.168.32.' + str(i)
system('rsync -avz /mnt/systeme_racine/bin /mnt/nodes/%s'%ip)
system('rsync -avz /mnt/systeme_racine/sbin /mnt/nodes/%s'%ip)
system('rsync -avz /mnt/systeme_racine/lib /mnt/nodes/%s'%ip)
system('rsync -avz /mnt/systeme_racine/etc /mnt/nodes/%s'%ip)
system('rsync -avz /mnt/systeme_racine/root /mnt/nodes/%s'%ip)
# system('rsync -avz /mnt/systeme_racine/usr/bin
/mnt/nodes/%s/usr/'%ip)
# system('rsync -avz /mnt/systeme_racine/usr/sbin
/mnt/nodes/%s/usr/'%ip)
system('rsync -avz /mnt/systeme_racine/usr/share/consolefonts
/mnt/nodes/%s/usr/share/'%ip)
system('rsync -avz /mnt/systeme_racine/usr/share/consoletrans
/mnt/nodes/%s/usr/share/'%ip)
system('rsync -avz /mnt/systeme_racine/usr/share/keymaps
/mnt/nodes/%s/usr/share/'%ip)
system('rsync -avz /mnt/systeme_racine/usr/share/zoneinfo
/mnt/nodes/%s/usr/share/'%ip)
system('rsync -avz /mnt/systeme_racine/usr/share/locale/fr
/mnt/nodes/%s/usr/share/locale'%ip)
system('rsync -avz /mnt/systeme_racine/sys /mnt/nodes/%s'%ip)
Et enfin, le fstab
Oui, oui, c'est fini après :)
fstab.py
# -*- coding:UTF-8 -*-
# Création du fstab des nodes
def fstab(nb):
for i in range(1,nb+1,1):
ip = '192.168.32.' + str(i)
f = open('/mnt/nodes/%s/etc/fstab' % ip,'w')
t = '192.168.32.64:/mnt/nodes/%s / nfs
sync,hard,intr,rw,nolock,rsize92,wsize92 0 0n' % ip
f.write(t)
t = '192.168.32.64:/mnt/systeme_racine/opt /opt nfs
auto,sync,hard,intr,ro,nolock,rsize92,wsize92 0 0n'
f.write(t)
t = '192.168.32.64:/mnt/systeme_racine/usr /usr nfs
auto,sync,hard,intr,ro,nolock,rsize92,wsize92 0 0n'
f.write(t)
t = '192.168.32.64:/home/emcc /home/emcc nfs
auto,sync,hard,intr,rw,nolock,rsize92,wsize92 0 0n'
f.write(t)
f.close()
et voila, les bases sont faites.
Pour ne faire qu'un client, met nb à 1 :)
Bon, un petit dernier pour la route :)
tftpboot_default.py
# -*- coding:UTF-8 -*-
# Création du fichier pxedefault.cfg/default en fonction du nombre de
nodes
f = open('/mnt/nodes/pxelinux.cfg/default','w')
for i in range(1,13,1):
label = 'LABEL '+str(i)+'n'
ker = 'KERNEL kernel-2.4.30-om-r3 n'
ip = '192.168.32.' + str(i)
app = 'APPEND ip=dhcp root=/dev/nfs nfsroot=
192.168.32.64:/mnt/nodes/%s n n' % (ip)
f.write(label)
f.write(ker)
f.write(app)
f.close()
mon /etc/export :
/mnt/nodes 192.168.32.0/255.255.255.0(rw,no_root_squash,no_all_squash,s ync)
/mnt/systeme_racine/opt 192.168.32.0/255.255.255.0(rw,no_root_squash ,no_all_squash,sync)
/mnt/systeme_racine/usr 192.168.32.0/255.255.255.0(rw,no_root_squas h,no_all_squash,sync)
/mnt/systeme_racine/home 192.168.32.0/255.255.255.0(ro,no_root_squas h,no_all_squash,sync)
PS : Et bien au moins j'aurai bien avancé aujourd'hui! :) Merci grandem ent
> à toi! :)
Mais de rien, tout est sous GPL, fais-en ce que tu veux tant que ca reste
GPL ;)
S'il y a du emcc quelque part, c'est rien, c'était le programme que je
faisais tourner.
om c'est pour open mosix
Pour le démarrage, tu verra dans un des scripts, je modifie le local.st art
.
Il y a peut-etre (surement même) une facon plus simple de procéder. A
l'heure actuelle je ne sais pas.
Pour ce qui est de PXE, grub serait peut-être plus souple que pxelinux.
A voir.
Je suis parfois le soir sur jabber :
Si tu veux qu'on se recontre sur jabber, préviens moi, je verrais si je
peux venir (pas ce weekend par contre)
Peut-être veux-tu rester en communication grâce à la liste de diffu sion,
pour qu'il y ait une trace, au choixe :)
--
> Cordialement,
Amicalement,
Sylvain TENOU.
polytan
> Bonsoir,
Bonjour à toi :-)
J'ai passé ma soirée à mettre en place le tuto que tu m'as donné au
> départ.
Je crois avoir aussi passé plusieurs soirées à le faire marcher...
Après quelque péripéties (entre autre, compilation d'un noyau > 2.6 .19
Pourquoi pas le dernier stable ? (2.6.20 je crois)
parce qu'il posait problème, et pas qu'à moi d'après ce que j'ai l u),
> j'ai enfin réussi à faire démarrer mon PC par PXE! :]
> Ça soulage d'y arriver enfin! :)
Je te comprends, ca me fait pareil à chaque fois et je crois que je vai s
recommencer dès la semaine prochaine.
Mais maintenant, j'ai toujours le problème du montage de /usr au débu t de
> la séquence de boot :/.
Oui, ca permet d'avoir un /usr de la taille que tu veux, commun à toute s
les machines et après de copier quelques 30-32 Mo pour les clients et d e les
personnaliser.
À vrai dire, pour cela j'ai pas encore très bien saisi le système : -S...
Il faut jouer avec les scripts au démarrage et avoir bien fait le fstab .
Pourrais-tu m'expliquer ce que tu as
> modifié, et les conséquences de ces modifications (s'il y en a d'au tre que
> le démarrage du réseau en premier), pour avoir le démarrage du r éseau
> avant le reste de la séquence de boot?
>
> Merci d'avance.
Bon, mettons les choses au clair : j'ai quelques scripts, mais...ce fut a u
debut de ma connaissance de python et des fois, ben...c'est pas tres fun :)
J'ai fait dans un dossier une gentoo complète pour les machines cliente s.
cela se trouvait dans /mnt/systeme_racine/ (une partition à part, mais ca
ne change pas grand chose à part booter dessus pour voir que ca marche sans
bidouiller :) )
les machines clientes sont dans /mnt/nodes/.
Pour chaque clients sont créés un dossier portant leur numéro ip (p our m'y
retrouver) et sont copié les fichiers necessaires.
je copie : /bin /sbin /usr/share/consolefont,consoletrans... (necesaire a u
boot, on remontera /usr par dessus), /lib, /etc et /root
voila les scripts :
On prépare le terrain, j'ai plein de petits scripts pour tout prépare r
pour les nodes (comment ca je suis une feignasse qui déteste les oépr ations
répétitives ? :) )
faire_des_nodes.py
# -*- coding:UTF-8 -*-
from creer_repertoires import rep
from etcnodes import etc,hosts,dev,fastboot,perm
from copier_fichiers import copier_fichiers
from os import system,chdir
from fstab import fstab
nb = 12
# on crée les répertoires de base
rep(nb)
# On copie les fichiers pour que ca puisse démarrer
copier_fichiers(nb)
# On spécifie le etc pour chaque nodes :
# /etc/conf.d/net
# /etc/conf.d/hostname
# /etc/hosts
# /etc/fstab
etc(nb)
hosts(nb)
fstab(nb)
dev(nb)
fastboot(nb)
perm(nb)
Création des répertoires pour ensuite copier les fichiers dedans (oui ,
j'aurais pu tout mettre dans un même scripts, mais pour les modif au
compte-goutte, c'est plus simple)
copier_repertoires.py
# -*- coding:UTF-8 -*-
# On crée les nodes pour booter le réseau
from os import chdir,mkdir
def rep(nb):
for i in range(1,nb+1,1):
chdir('/mnt/nodes')
rep = '192.168.32.' + str(i)
mkdir(rep)
liste =
['etc','home','home/emcc','dev','proc','sys','tmp','mnt','root','var','us r','opt','mfs']
listvar = ['empty','lock','log','run','spool','tmp']
listusr =
['bin','sbin','share','share/consolefonts','share/consoletrans','share/ke ymaps','share/zoneinfo','share/locale','share/locale/fr']
for j in liste:
mkdir('%s/%s' % (rep,j))
mkdir('%s/etc/conf.d' % (rep))
for j in listvar:
mkdir('%s/var/%s' % (rep,j))
for j in listusr:
mkdir('%s/usr/%s' % (rep,j))
préparation de /etc :
etcnodes.py
# -*- coding:UTF-8 -*-
# On configure le dossier etc des nodes
from os import system,mkdir,chdir
def etc(nb):
for i in range(1,nb+1,1):
ip = '192.168.32.' + str(i)
# system('touch /mnt/nodes/%s/etc/conf.d/net' % (ip))
# system('touch /mnt/nodes/%s/etc/conf.d/hostname' % (ip))
chdir('/mnt/nodes/%s/etc/conf.d' % (ip))
# f = open('net','w')
# t = 'iface_eth0="%s broadcast 192.168.255.255 netmask
255.255.255.0"n' % (ip)
# f.write(t)
# f.close()
f = open('hostname','w')
node = 'node' + str(i)
t = 'HOSTNAME="%s"n' % (node)
f.write(t)
f.close()
def hosts(nb):
for i in range(1,nb+1,1):
ipi = '192.168.32.' + str(i)
# system('touch /mnt/nodes/%s/etc/hosts' % ipi)
chdir('/mnt/nodes/%s/etc' % ipi)
f = open('hosts','w')
node = 'node' + str(i)
t1 = '127.0.0.1 localhost %s n' % node
f.write(t1)
for j in range(1,nb+1,1):
ip = '192.168.32.' + str(j)
nodej = 'node' + str(j)
t = '%s %sn' % (ip,nodej)
f.write(t)
f.close()
def dev(nb):
for i in range(1,nb+1,1):
ip = '192.168.32.' + str(i)
system('mknod /mnt/nodes/%s/dev/console c 5 1' % ip)
def fastboot(nb):
for i in range(1,nb+1,1):
ip = ' 192.168.32.' + str(i)
system('touch /mnt/nodes/%s/fastboot' % ip)
system('echo "touch /fastboot" >>
/mnt/nodes/%s/etc/conf.d/local.start' % ip)
def perm(nb):
for i in range(1,nb+1,1):
ip = '192.168.32.' + str(i)
system('chmod a+rw -R /mnt/nodes/%s' % ip)
system('chmod a-rw -R /mnt/nodes/%s/etc' % ip)
system('chmod +rw -R /mnt/nodes/%s/etc' % ip)
system('chmod 600 -R /mnt/nodes/%s/etc/ssh' % ip)
system('chmod a+rw -R /mnt/nodes/%s/var' % ip)
system('chmod 700 -R /mnt/nodes/%s/var' % ip)
dans ce script, il y a surement des choses qui ne te serviront à rien. Il
faut que tu saches que je faisais des grappes de calcul openmosix à cet te
époque...
copier_fichiers.py
# -*- coding:UTF-8 -*-
# Copie des fichiers nécessaire au boot
from os import system,chdir
def copier_fichiers(nb):
for i in range(1,nb+1,1):
ip = '192.168.32.' + str(i)
system('rsync -avz /mnt/systeme_racine/bin /mnt/nodes/%s'%ip)
system('rsync -avz /mnt/systeme_racine/sbin /mnt/nodes/%s'%ip)
system('rsync -avz /mnt/systeme_racine/lib /mnt/nodes/%s'%ip)
system('rsync -avz /mnt/systeme_racine/etc /mnt/nodes/%s'%ip)
system('rsync -avz /mnt/systeme_racine/root /mnt/nodes/%s'%ip)
# system('rsync -avz /mnt/systeme_racine/usr/bin
/mnt/nodes/%s/usr/'%ip)
# system('rsync -avz /mnt/systeme_racine/usr/sbin
/mnt/nodes/%s/usr/'%ip)
system('rsync -avz /mnt/systeme_racine/usr/share/consolefonts
/mnt/nodes/%s/usr/share/'%ip)
system('rsync -avz /mnt/systeme_racine/usr/share/consoletrans
/mnt/nodes/%s/usr/share/'%ip)
system('rsync -avz /mnt/systeme_racine/usr/share/keymaps
/mnt/nodes/%s/usr/share/'%ip)
system('rsync -avz /mnt/systeme_racine/usr/share/zoneinfo
/mnt/nodes/%s/usr/share/'%ip)
system('rsync -avz /mnt/systeme_racine/usr/share/locale/fr
/mnt/nodes/%s/usr/share/locale'%ip)
system('rsync -avz /mnt/systeme_racine/sys /mnt/nodes/%s'%ip)
Et enfin, le fstab
Oui, oui, c'est fini après :)
fstab.py
# -*- coding:UTF-8 -*-
# Création du fstab des nodes
def fstab(nb):
for i in range(1,nb+1,1):
ip = '192.168.32.' + str(i)
f = open('/mnt/nodes/%s/etc/fstab' % ip,'w')
t = '192.168.32.64:/mnt/nodes/%s / nfs
sync,hard,intr,rw,nolock,rsize=8192,wsize=8192 0 0n' % ip
f.write(t)
t = '192.168.32.64:/mnt/systeme_racine/opt /opt nfs
auto,sync,hard,intr,ro,nolock,rsize=8192,wsize=8192 0 0n'
f.write(t)
t = '192.168.32.64:/mnt/systeme_racine/usr /usr nfs
auto,sync,hard,intr,ro,nolock,rsize=8192,wsize=8192 0 0n'
f.write(t)
t = '192.168.32.64:/home/emcc /home/emcc nfs
auto,sync,hard,intr,rw,nolock,rsize=8192,wsize=8192 0 0n'
f.write(t)
f.close()
et voila, les bases sont faites.
Pour ne faire qu'un client, met nb à 1 :)
Bon, un petit dernier pour la route :)
tftpboot_default.py
# -*- coding:UTF-8 -*-
# Création du fichier pxedefault.cfg/default en fonction du nombre de
nodes
f = open('/mnt/nodes/pxelinux.cfg/default','w')
for i in range(1,13,1):
label = 'LABEL '+str(i)+'n'
ker = 'KERNEL kernel-2.4.30-om-r3 n'
ip = '192.168.32.' + str(i)
app = 'APPEND ip=dhcp root=/dev/nfs nfsroot=
192.168.32.64:/mnt/nodes/%s n n' % (ip)
f.write(label)
f.write(ker)
f.write(app)
f.close()
mon /etc/export :
/mnt/nodes 192.168.32.0/255.255.255.0(rw,no_root_squash,no_all_squash,s ync)
/mnt/systeme_racine/opt 192.168.32.0/255.255.255.0(rw,no_root_squash ,no_all_squash,sync)
/mnt/systeme_racine/usr 192.168.32.0/255.255.255.0(rw,no_root_squas h,no_all_squash,sync)
/mnt/systeme_racine/home 192.168.32.0/255.255.255.0(ro,no_root_squas h,no_all_squash,sync)
PS : Et bien au moins j'aurai bien avancé aujourd'hui! :) Merci grandem ent
> à toi! :)
Mais de rien, tout est sous GPL, fais-en ce que tu veux tant que ca reste
GPL ;)
S'il y a du emcc quelque part, c'est rien, c'était le programme que je
faisais tourner.
om c'est pour open mosix
Pour le démarrage, tu verra dans un des scripts, je modifie le local.st art
.
Il y a peut-etre (surement même) une facon plus simple de procéder. A
l'heure actuelle je ne sais pas.
Pour ce qui est de PXE, grub serait peut-être plus souple que pxelinux.
A voir.
Je suis parfois le soir sur jabber : polytan@develog.com
Si tu veux qu'on se recontre sur jabber, préviens moi, je verrais si je
peux venir (pas ce weekend par contre)
Peut-être veux-tu rester en communication grâce à la liste de diffu sion,
pour qu'il y ait une trace, au choixe :)
--
> Cordialement,
Amicalement,
Sylvain TENOU.
polytan
> Bonsoir,
Bonjour à toi :-)
J'ai passé ma soirée à mettre en place le tuto que tu m'as donné au
> départ.
Je crois avoir aussi passé plusieurs soirées à le faire marcher...
Après quelque péripéties (entre autre, compilation d'un noyau > 2.6 .19
Pourquoi pas le dernier stable ? (2.6.20 je crois)
parce qu'il posait problème, et pas qu'à moi d'après ce que j'ai l u),
> j'ai enfin réussi à faire démarrer mon PC par PXE! :]
> Ça soulage d'y arriver enfin! :)
Je te comprends, ca me fait pareil à chaque fois et je crois que je vai s
recommencer dès la semaine prochaine.
Mais maintenant, j'ai toujours le problème du montage de /usr au débu t de
> la séquence de boot :/.
Oui, ca permet d'avoir un /usr de la taille que tu veux, commun à toute s
les machines et après de copier quelques 30-32 Mo pour les clients et d e les
personnaliser.
À vrai dire, pour cela j'ai pas encore très bien saisi le système : -S...
Il faut jouer avec les scripts au démarrage et avoir bien fait le fstab .
Pourrais-tu m'expliquer ce que tu as
> modifié, et les conséquences de ces modifications (s'il y en a d'au tre que
> le démarrage du réseau en premier), pour avoir le démarrage du r éseau
> avant le reste de la séquence de boot?
>
> Merci d'avance.
Bon, mettons les choses au clair : j'ai quelques scripts, mais...ce fut a u
debut de ma connaissance de python et des fois, ben...c'est pas tres fun :)
J'ai fait dans un dossier une gentoo complète pour les machines cliente s.
cela se trouvait dans /mnt/systeme_racine/ (une partition à part, mais ca
ne change pas grand chose à part booter dessus pour voir que ca marche sans
bidouiller :) )
les machines clientes sont dans /mnt/nodes/.
Pour chaque clients sont créés un dossier portant leur numéro ip (p our m'y
retrouver) et sont copié les fichiers necessaires.
je copie : /bin /sbin /usr/share/consolefont,consoletrans... (necesaire a u
boot, on remontera /usr par dessus), /lib, /etc et /root
voila les scripts :
On prépare le terrain, j'ai plein de petits scripts pour tout prépare r
pour les nodes (comment ca je suis une feignasse qui déteste les oépr ations
répétitives ? :) )
faire_des_nodes.py
# -*- coding:UTF-8 -*-
from creer_repertoires import rep
from etcnodes import etc,hosts,dev,fastboot,perm
from copier_fichiers import copier_fichiers
from os import system,chdir
from fstab import fstab
nb = 12
# on crée les répertoires de base
rep(nb)
# On copie les fichiers pour que ca puisse démarrer
copier_fichiers(nb)
# On spécifie le etc pour chaque nodes :
# /etc/conf.d/net
# /etc/conf.d/hostname
# /etc/hosts
# /etc/fstab
etc(nb)
hosts(nb)
fstab(nb)
dev(nb)
fastboot(nb)
perm(nb)
Création des répertoires pour ensuite copier les fichiers dedans (oui ,
j'aurais pu tout mettre dans un même scripts, mais pour les modif au
compte-goutte, c'est plus simple)
copier_repertoires.py
# -*- coding:UTF-8 -*-
# On crée les nodes pour booter le réseau
from os import chdir,mkdir
def rep(nb):
for i in range(1,nb+1,1):
chdir('/mnt/nodes')
rep = '192.168.32.' + str(i)
mkdir(rep)
liste =
['etc','home','home/emcc','dev','proc','sys','tmp','mnt','root','var','us r','opt','mfs']
listvar = ['empty','lock','log','run','spool','tmp']
listusr =
['bin','sbin','share','share/consolefonts','share/consoletrans','share/ke ymaps','share/zoneinfo','share/locale','share/locale/fr']
for j in liste:
mkdir('%s/%s' % (rep,j))
mkdir('%s/etc/conf.d' % (rep))
for j in listvar:
mkdir('%s/var/%s' % (rep,j))
for j in listusr:
mkdir('%s/usr/%s' % (rep,j))
préparation de /etc :
etcnodes.py
# -*- coding:UTF-8 -*-
# On configure le dossier etc des nodes
from os import system,mkdir,chdir
def etc(nb):
for i in range(1,nb+1,1):
ip = '192.168.32.' + str(i)
# system('touch /mnt/nodes/%s/etc/conf.d/net' % (ip))
# system('touch /mnt/nodes/%s/etc/conf.d/hostname' % (ip))
chdir('/mnt/nodes/%s/etc/conf.d' % (ip))
# f = open('net','w')
# t = 'iface_eth0="%s broadcast 192.168.255.255 netmask
255.255.255.0"n' % (ip)
# f.write(t)
# f.close()
f = open('hostname','w')
node = 'node' + str(i)
t = 'HOSTNAME="%s"n' % (node)
f.write(t)
f.close()
def hosts(nb):
for i in range(1,nb+1,1):
ipi = '192.168.32.' + str(i)
# system('touch /mnt/nodes/%s/etc/hosts' % ipi)
chdir('/mnt/nodes/%s/etc' % ipi)
f = open('hosts','w')
node = 'node' + str(i)
t1 = '127.0.0.1 localhost %s n' % node
f.write(t1)
for j in range(1,nb+1,1):
ip = '192.168.32.' + str(j)
nodej = 'node' + str(j)
t = '%s %sn' % (ip,nodej)
f.write(t)
f.close()
def dev(nb):
for i in range(1,nb+1,1):
ip = '192.168.32.' + str(i)
system('mknod /mnt/nodes/%s/dev/console c 5 1' % ip)
def fastboot(nb):
for i in range(1,nb+1,1):
ip = ' 192.168.32.' + str(i)
system('touch /mnt/nodes/%s/fastboot' % ip)
system('echo "touch /fastboot" >>
/mnt/nodes/%s/etc/conf.d/local.start' % ip)
def perm(nb):
for i in range(1,nb+1,1):
ip = '192.168.32.' + str(i)
system('chmod a+rw -R /mnt/nodes/%s' % ip)
system('chmod a-rw -R /mnt/nodes/%s/etc' % ip)
system('chmod +rw -R /mnt/nodes/%s/etc' % ip)
system('chmod 600 -R /mnt/nodes/%s/etc/ssh' % ip)
system('chmod a+rw -R /mnt/nodes/%s/var' % ip)
system('chmod 700 -R /mnt/nodes/%s/var' % ip)
dans ce script, il y a surement des choses qui ne te serviront à rien. Il
faut que tu saches que je faisais des grappes de calcul openmosix à cet te
époque...
copier_fichiers.py
# -*- coding:UTF-8 -*-
# Copie des fichiers nécessaire au boot
from os import system,chdir
def copier_fichiers(nb):
for i in range(1,nb+1,1):
ip = '192.168.32.' + str(i)
system('rsync -avz /mnt/systeme_racine/bin /mnt/nodes/%s'%ip)
system('rsync -avz /mnt/systeme_racine/sbin /mnt/nodes/%s'%ip)
system('rsync -avz /mnt/systeme_racine/lib /mnt/nodes/%s'%ip)
system('rsync -avz /mnt/systeme_racine/etc /mnt/nodes/%s'%ip)
system('rsync -avz /mnt/systeme_racine/root /mnt/nodes/%s'%ip)
# system('rsync -avz /mnt/systeme_racine/usr/bin
/mnt/nodes/%s/usr/'%ip)
# system('rsync -avz /mnt/systeme_racine/usr/sbin
/mnt/nodes/%s/usr/'%ip)
system('rsync -avz /mnt/systeme_racine/usr/share/consolefonts
/mnt/nodes/%s/usr/share/'%ip)
system('rsync -avz /mnt/systeme_racine/usr/share/consoletrans
/mnt/nodes/%s/usr/share/'%ip)
system('rsync -avz /mnt/systeme_racine/usr/share/keymaps
/mnt/nodes/%s/usr/share/'%ip)
system('rsync -avz /mnt/systeme_racine/usr/share/zoneinfo
/mnt/nodes/%s/usr/share/'%ip)
system('rsync -avz /mnt/systeme_racine/usr/share/locale/fr
/mnt/nodes/%s/usr/share/locale'%ip)
system('rsync -avz /mnt/systeme_racine/sys /mnt/nodes/%s'%ip)
Et enfin, le fstab
Oui, oui, c'est fini après :)
fstab.py
# -*- coding:UTF-8 -*-
# Création du fstab des nodes
def fstab(nb):
for i in range(1,nb+1,1):
ip = '192.168.32.' + str(i)
f = open('/mnt/nodes/%s/etc/fstab' % ip,'w')
t = '192.168.32.64:/mnt/nodes/%s / nfs
sync,hard,intr,rw,nolock,rsize92,wsize92 0 0n' % ip
f.write(t)
t = '192.168.32.64:/mnt/systeme_racine/opt /opt nfs
auto,sync,hard,intr,ro,nolock,rsize92,wsize92 0 0n'
f.write(t)
t = '192.168.32.64:/mnt/systeme_racine/usr /usr nfs
auto,sync,hard,intr,ro,nolock,rsize92,wsize92 0 0n'
f.write(t)
t = '192.168.32.64:/home/emcc /home/emcc nfs
auto,sync,hard,intr,rw,nolock,rsize92,wsize92 0 0n'
f.write(t)
f.close()
et voila, les bases sont faites.
Pour ne faire qu'un client, met nb à 1 :)
Bon, un petit dernier pour la route :)
tftpboot_default.py
# -*- coding:UTF-8 -*-
# Création du fichier pxedefault.cfg/default en fonction du nombre de
nodes
f = open('/mnt/nodes/pxelinux.cfg/default','w')
for i in range(1,13,1):
label = 'LABEL '+str(i)+'n'
ker = 'KERNEL kernel-2.4.30-om-r3 n'
ip = '192.168.32.' + str(i)
app = 'APPEND ip=dhcp root=/dev/nfs nfsroot=
192.168.32.64:/mnt/nodes/%s n n' % (ip)
f.write(label)
f.write(ker)
f.write(app)
f.close()
mon /etc/export :
/mnt/nodes 192.168.32.0/255.255.255.0(rw,no_root_squash,no_all_squash,s ync)
/mnt/systeme_racine/opt 192.168.32.0/255.255.255.0(rw,no_root_squash ,no_all_squash,sync)
/mnt/systeme_racine/usr 192.168.32.0/255.255.255.0(rw,no_root_squas h,no_all_squash,sync)
/mnt/systeme_racine/home 192.168.32.0/255.255.255.0(ro,no_root_squas h,no_all_squash,sync)
PS : Et bien au moins j'aurai bien avancé aujourd'hui! :) Merci grandem ent
> à toi! :)
Mais de rien, tout est sous GPL, fais-en ce que tu veux tant que ca reste
GPL ;)
S'il y a du emcc quelque part, c'est rien, c'était le programme que je
faisais tourner.
om c'est pour open mosix
Pour le démarrage, tu verra dans un des scripts, je modifie le local.st art
.
Il y a peut-etre (surement même) une facon plus simple de procéder. A
l'heure actuelle je ne sais pas.
Pour ce qui est de PXE, grub serait peut-être plus souple que pxelinux.
A voir.
Je suis parfois le soir sur jabber :
Si tu veux qu'on se recontre sur jabber, préviens moi, je verrais si je
peux venir (pas ce weekend par contre)
Peut-être veux-tu rester en communication grâce à la liste de diffu sion,
pour qu'il y ait une trace, au choixe :)
--
> Cordialement,
Amicalement,
Sylvain TENOU.
polytan