Différences entre les versions de « Pxe »

De BlaxWiki
Aller à la navigationAller à la recherche
 
(2 versions intermédiaires par un autre utilisateur non affichées)
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 =
Ligne 90 : Ligne 91 :
S'assurer que le selinux (ou équivalent est désactivé)
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 Nov 27 13:55 console
crw------- 1 root root 5, 1 Nov 27 13:55 console

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