Différences entre les versions de « Pxe »

De BlaxWiki
Aller à la navigationAller à la recherche
 
(24 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 2 : Ligne 2 :


= Configuration d'un serveur pxe =
= Configuration d'un serveur pxe =
Ici le serveur nfs, dhcp, tftp est le meme, il a pour ip 10.253.6.1. Il faut donc installer sur ce serveur les services tftp, dhcpd, nfsd. Dans le cas présent, le root du serveur  
Ici le serveur nfs, dhcp, tftp est le meme, il a pour ip 10.253.6.1. Il faut donc installer sur ce serveur les services tftp,  
tftp se trouve dans /tftpboot. Installer les images des os sur lesquels les clients vont booter, les fichier nécessaires à pxe
dhcpd, nfsd. Dans le cas présent, le root du serveur tftp se trouve dans /tftpboot. Installer les images des os sur lesquels les  
clients vont booter, les fichier nécessaires à pxe


== Dhcpd.conf ==
== Dhcpd.conf ==
Ligne 33 : Ligne 34 :


== Autres ==
== Autres ==
 
Renseigner le /etc/exports : /tftpboot/nfsroot/centos5_26_x32        10.253.6.0/24(rw,no_root_squash,async,subtree_check)
renseigner le /etc/exports : /tftpboot/nfsroot/centos5_26_x32        10.253.6.0/24(rw,no_root_squash,async,subtree_check)
(puis exportfs -r ou -a)
(puis exportfs -r ou -a)


Ligne 40 : Ligne 40 :


DEFAULT kernel/vmlinuz-2.6.25.17.x32 ip=dhcp root=/dev/nfs nfsroot=10.253.6.1:/tftpboot/nfsroot/centos5_26_x32,rsize=8192,wsize=8192,retrans=16,v2,intr,tcp
DEFAULT kernel/vmlinuz-2.6.25.17.x32 ip=dhcp root=/dev/nfs nfsroot=10.253.6.1:/tftpboot/nfsroot/centos5_26_x32,rsize=8192,wsize=8192,retrans=16,v2,intr,tcp
(ou suivant les kernel / os : DEFAULT kernel/vmlinuzcentos7 initrd=kernel/initrdcentos7.img ip=dhcp root=nfs:10.253.6.1:/tftpboot/nfsroot/centos70_x64)


le repertoire kernel se trouve dans /tftpboot
Le repertoire kernel se trouve dans /tftpboot. Il est bien une fois de créer un initrd (ou initramfs) en faisant un dracut -N --force, comme ca tous les modules seront mis dans l'initrd,
et l'on n aura pas de problème de driver suivant les différents composants matériels des serveurs bootant en pxe)


= Problématique d'un serveur bootant en pxe =


= Problématique d'un serveur bootant en pxe =
*1 Spécificité du kernel
<pre>
Le kernel (kernel qui est dans /tftpboot/kernel) utilisé pour faire booter un serveur en pxe doit comporter les modules suivant :
- NFS filesystem support (CONFIG_NFS_FS).
- Root file system on NFS (CONFIG_ROOT_NFS).
- Ethernet (10 or 100Mbit) (CONFIG_NET_ETHERNET).
- The ethernet driver for the clent's network card.
- IP: kernel level autoconfiguration (CONFIG_IP_PNP)
- BOOTP support (CONFIG_IP_PNP_BOOTP)
</pre>


*1 Problème de mount Nfs
*2 Problème de mount Nfs
<pre>
<pre>
Si le client n'arrive pas à faire un mount nfs, essayer de faire un mount nfs en local sur le serveur nfs. Si le serveur n'y arrive pas non plus, rajouter dans le /etc/fstab du  
Si le client n'arrive pas à faire un mount nfs, essayer de faire un mount nfs en local sur le serveur nfs. Si le serveur n'y arrive pas non plus, rajouter dans le /etc/fstab du serveur nfs :
serveur nfs :
rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs defaults 0 0
rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs defaults 0 0
nfsd /proc/fs/nfsd nfsd defaults 0 0
nfsd /proc/fs/nfsd nfsd defaults 0 0
</pre>
</pre>


* 2 Problème de blocage sur udev
*3 Problème de blocage sur udev  
<pre>
<pre>
Lorsque le client boot en pxe / nfs, si il bloque sur udev, modifier le fichier /tftpboot/nfsroot/centos5_26_x32/etc/sysconfig/network-scripts/net.hotplug
Lorsque le client boot en pxe / nfs, si il bloque sur udev, modifier le fichier
/tftpboot/nfsroot/centos5_26_x32/etc/sysconfig/network-scripts/net.hotplug
avant :        ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*)
avant :        ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*)
apres :        eth*|ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*)
apres :        eth*|ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*)
</pre>
</pre>


*3
= Spécificité de l'image bootable =
<pre>
<pre>
Caractéristique de l image de l os sur laquelle boot le client (/tftpboot/nfsroot/centos5_26_x32). c est l image d une centos installé normalement mais :
L'image de l os sur laquelle boot le client (/tftpboot/nfsroot/centos5_26_x32). c est l image d une centos installé normalement mais :
/etc/fstab :
/etc/fstab :
10.253.6.1:/tftpboot/nfsroot/centos5_26_x32 / nfs rw,rsize=8192,wsize=8192,retrans=16
10.253.6.1:/tftpboot/nfsroot/centos5_26_x32 / nfs rw,rsize=8192,wsize=8192,retrans=16 (ip du serveur pxe & path de l image où booter)
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
tmpfs                  /dev/shm                tmpfs  defaults        0 0
tmpfs                  /dev/shm                tmpfs  defaults        0 0
Ligne 75 : Ligne 87 :
ONBOOT=no (si c est à yes il va restarter eth0, donc perdre le reseau , donc il ne boot plus :p)
ONBOOT=no (si c est à yes il va restarter eth0, donc perdre le reseau , donc il ne boot plus :p)


Il faut aussi activer rpcbind, nfs-server, nfs* en run-level 3 si l'on veut que le serveur puisse faire le montage nfs
S'assurer que le selinux (ou équivalent est désactivé)
## Ci dessous c'est faux, lors du boot udev recréé ce dont il a besoin dans /dev ##
le repertoire /dev de l image doit comporter au minimum :
le repertoire /dev de l image doit comporter au minimum :
crw------- 1 root root 5, 1 Dec 30 15:53 console
crw------- 1 root root 5, 1 Nov 27 13:55 console
prw------- 1 root root    0 Dec 30 15:32 initctl
prw------- 1 root root    0 Nov 27 13:55 initctl
crw-rw-rw- 1 root root 1, 3 Dec 30 16:11 null
crw-rw-rw- 1 root root 1, 3 Nov 27 13:55 null
crw-rw---- 1 root root 4, 0 Dec 30 16:09 tty0
crw-rw-rw- 1 root root 1, 8 Nov 27 13:55 random
crw-rw-rw- 1 root root 5, 0 Dec  3 12:44 tty
crw------- 1 root root 4, 0 Nov 27 13:55 tty0
crw-rw-rw- 1 root root 1, 9 Nov 27 13:55 urandom
crw-rw-rw- 1 root root 1, 5 Nov 27 13:55 zero
 


A creer avec mknod :
A creer avec mknod :


mknod -m 600 /dev/console c 5 1
mknod -m 600 dev/console c 5 1
mknod -m 666 /dev/null c 1 3
mkfifo -m 600 dev/initctl
mknod -m 666 /dev/tty c 5 0
mknod -m 666 dev/null c 1 3
mknod dev/zero    c 1 5
mknod -m 666 dev/random c 1 8
mkfifo -m600 /dev/initctl
mknod -m 666 dev/tty c 5 0
mknod -m 666 dev/urandom c 1 9
mknod -m 666 dev/zero c 1 5
 
</pre>
</pre>
[[Catégorie:Linux]]
[[Catégorie:Linux]]

Version actuelle datée du 11 février 2015 à 14:31


Configuration d'un serveur pxe[modifier]

Ici le serveur nfs, dhcp, tftp est le meme, il a pour ip 10.253.6.1. Il faut donc installer sur ce serveur les services tftp, dhcpd, nfsd. Dans le cas présent, le root du serveur tftp se trouve dans /tftpboot. Installer les images des os sur lesquels les clients vont booter, les fichier nécessaires à pxe

Dhcpd.conf[modifier]

allow booting;
allow bootp;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.26.15, 172.26.0.15;
option routers 10.253.6.254; # Passerelle par défaut envoyé en dhcp
default-lease-time 604800;
max-lease-time  604800;


subnet 10.253.6.0 netmask 255.255.255.0 {
        group {
                next-server 10.253.6.1;

host pxe-ins.agarik.com {
                      hardware ethernet 00:09:6b:8c:11:16;
                      fixed-address 10.253.6.12;
                      option host-name "pxe-ins.agarik.com";
                      filename "pxelinux.0";
                      next-server 10.253.6.1; # ip du serveur ou tourne pxe
                }
}
}
---

Autres[modifier]

Renseigner le /etc/exports : /tftpboot/nfsroot/centos5_26_x32 10.253.6.0/24(rw,no_root_squash,async,subtree_check) (puis exportfs -r ou -a)

cat /tftpboot/pxelinux.cfg/default :

DEFAULT kernel/vmlinuz-2.6.25.17.x32 ip=dhcp root=/dev/nfs nfsroot=10.253.6.1:/tftpboot/nfsroot/centos5_26_x32,rsize=8192,wsize=8192,retrans=16,v2,intr,tcp (ou suivant les kernel / os : DEFAULT kernel/vmlinuzcentos7 initrd=kernel/initrdcentos7.img ip=dhcp root=nfs:10.253.6.1:/tftpboot/nfsroot/centos70_x64)

Le repertoire kernel se trouve dans /tftpboot. Il est bien une fois de créer un initrd (ou initramfs) en faisant un dracut -N --force, comme ca tous les modules seront mis dans l'initrd, et l'on n aura pas de problème de driver suivant les différents composants matériels des serveurs bootant en pxe)

Problématique d'un serveur bootant en pxe[modifier]

  • 1 Spécificité du kernel
Le kernel (kernel qui est dans /tftpboot/kernel) utilisé pour faire booter un serveur en pxe doit comporter les modules suivant :
- NFS filesystem support (CONFIG_NFS_FS).
- Root file system on NFS (CONFIG_ROOT_NFS).
- Ethernet (10 or 100Mbit) (CONFIG_NET_ETHERNET).
- The ethernet driver for the clent's network card.
- IP: kernel level autoconfiguration (CONFIG_IP_PNP)
- BOOTP support (CONFIG_IP_PNP_BOOTP)
  • 2 Problème de mount Nfs
Si le client n'arrive pas à faire un mount nfs, essayer de faire un mount nfs en local sur le serveur nfs. Si le serveur n'y arrive pas non plus, rajouter dans le /etc/fstab du serveur nfs :
rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs defaults 0 0
nfsd /proc/fs/nfsd nfsd defaults 0 0
  • 3 Problème de blocage sur udev
Lorsque le client boot en pxe / nfs, si il bloque sur udev, modifier le fichier
/tftpboot/nfsroot/centos5_26_x32/etc/sysconfig/network-scripts/net.hotplug
avant :        ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*)
apres :         eth*|ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*)

Spécificité de l'image bootable[modifier]

L'image de l os sur laquelle boot le client (/tftpboot/nfsroot/centos5_26_x32). c est l image d une centos installé normalement mais :
/etc/fstab :
10.253.6.1:/tftpboot/nfsroot/centos5_26_x32 / nfs rw,rsize=8192,wsize=8192,retrans=16  (ip du serveur pxe & path de l image où booter)
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
sysfs                   /sys                    sysfs   defaults        0 0

le fichier de configuration de eth0 :
BOOTPROTO=dhcp
ONBOOT=no (si c est à yes il va restarter eth0, donc perdre le reseau , donc il ne boot plus :p)

Il faut aussi activer rpcbind, nfs-server, nfs* en run-level 3 si l'on veut que le serveur puisse faire le montage nfs

S'assurer que le selinux (ou équivalent est désactivé)

## Ci dessous c'est faux, lors du boot udev recréé ce dont il a besoin dans /dev ##
le repertoire /dev de l image doit comporter au minimum :
crw------- 1 root root 5, 1 Nov 27 13:55 console
prw------- 1 root root    0 Nov 27 13:55 initctl
crw-rw-rw- 1 root root 1, 3 Nov 27 13:55 null
crw-rw-rw- 1 root root 1, 8 Nov 27 13:55 random
crw-rw-rw- 1 root root 5, 0 Dec  3 12:44 tty
crw------- 1 root root 4, 0 Nov 27 13:55 tty0
crw-rw-rw- 1 root root 1, 9 Nov 27 13:55 urandom
crw-rw-rw- 1 root root 1, 5 Nov 27 13:55 zero


A creer avec mknod :

mknod -m 600 dev/console c 5 1
mkfifo -m 600 dev/initctl
mknod -m 666 dev/null c 1 3
mknod -m 666 dev/random c 1 8
mknod -m 666 dev/tty c 5 0
mknod -m 666 dev/urandom c 1 9
mknod -m 666 dev/zero c 1 5