Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
developpement:productions:sidus4jessie [2015/07/06 17:47]
equemene [Approche chroot élaborée]
developpement:productions:sidus4jessie [2020/08/17 15:58] (Version actuelle)
equemene
Ligne 1: Ligne 1:
-====== SIDUS  ======+====== SIDUS pour Debian Jessie ​====== 
 + 
 +<note important>​Contenu obsolète : pour une information générique sur SIDUS suivre [[developpement:​productions:​sidus|SIDUS]]</​note>​
  
 <note warning>​Tous les éléments présents dans cette documentation,​ les morceaux de code, etc entrent dans le cadre de la licence [[http://​www.cecill.info/​index.fr.html|CeCILL]]. Il est donc nécessaire de respecter les 4 libertés fondamentales des logiciels libres pour exploiter SIDUS dans sa propre infrastructure. Si vous comptez utiliser SIDUS dans votre infrastructure,​ faites le savoir à son [[emmanuel.quemener@ens-lyon.fr|auteur]],​ Centre Blaise Pascal ou citez le !</​note>​ <note warning>​Tous les éléments présents dans cette documentation,​ les morceaux de code, etc entrent dans le cadre de la licence [[http://​www.cecill.info/​index.fr.html|CeCILL]]. Il est donc nécessaire de respecter les 4 libertés fondamentales des logiciels libres pour exploiter SIDUS dans sa propre infrastructure. Si vous comptez utiliser SIDUS dans votre infrastructure,​ faites le savoir à son [[emmanuel.quemener@ens-lyon.fr|auteur]],​ Centre Blaise Pascal ou citez le !</​note>​
Ligne 82: Ligne 84:
 ===== Préparation du système ===== ===== Préparation du système =====
  
-Nous devons préparer un peu notre système pour accueillir SIDUS. Pour cela, nous avons la main sur plusieurs services pour déployer nos clients : serveurs DHCP, TFTP, NFS. Vous entretenez ​de très bonnes relations avec votre service IT ou vous êtes assez libres pour accéder sans contraintes aux serveurs Ldap et DNS bien définis : +Nous devons préparer un peu notre système pour accueillir SIDUS. Pour cela, nous devons avoir la main sur plusieurs services pour déployer nos clients : serveurs DHCP, TFTP, NFS. Vous devez donc entretenir ​de très bonnes relations avec votre service IT ou vous êtes assez libres pour accéder sans contraintes aux serveurs Ldap et DNS bien définis :
   * le service DHCP fournit à notre client une adresse IP mais diffuse deux informations complémentaires : l'​adresse du serveur TFTP via la variable ''​next-server''​ et le nom du binaire PXE, souvent nommé ''​pxelinux.0''​.   * le service DHCP fournit à notre client une adresse IP mais diffuse deux informations complémentaires : l'​adresse du serveur TFTP via la variable ''​next-server''​ et le nom du binaire PXE, souvent nommé ''​pxelinux.0''​.
   * le service TFTP entre alors en scène. Il offre par TFTP tout le nécessaire permettant le démarrage du système : le binaire ''​pxelinux.0'',​ le noyau et le démarrage du système du client. Si nous avons besoin d'​offrir des paramètres à tel ou tel client, nous contruisons un document spécifique dont le nom sera contruit à partir de son adresse MAC (préfixé de 01 et dont les : sont remplacés par des -).   * le service TFTP entre alors en scène. Il offre par TFTP tout le nécessaire permettant le démarrage du système : le binaire ''​pxelinux.0'',​ le noyau et le démarrage du système du client. Si nous avons besoin d'​offrir des paramètres à tel ou tel client, nous contruisons un document spécifique dont le nom sera contruit à partir de son adresse MAC (préfixé de 01 et dont les : sont remplacés par des -).
   * le serveur NFS s'​invite alors dans la boucle : il va offrir la racine du système par son protocole (donc NFSroot). C'est donc dans cette racine, par exemple ''/​srv/​nfsroot/​sidus''​ que nous allons installer notre système client.   * le serveur NFS s'​invite alors dans la boucle : il va offrir la racine du système par son protocole (donc NFSroot). C'est donc dans cette racine, par exemple ''/​srv/​nfsroot/​sidus''​ que nous allons installer notre système client.
  
-De manière à installer notre première instance SIDUS de manière complètement autonome, nous avons besoin de configurer ​les différents services ​ci-dessusSur nos configurations nous utilisons ​respectivement **isc-dhcp-server**,​ **bind9**, **tftpd-hpa** et **nfs-kernel-server** ​pour les serveurs DHCP, DNS, TFTP et NFS.+Dans l'​éventualité où vous n'avez pas la main sur les services DNS, TFTP, DHCP et NFS, de manière à installer notre première instance SIDUS de manière complètement autonome, nous avons besoin de configurer ​ces différents services. ​Dans nos configurations ​suivantes, ​nous exploiterons ​respectivement **isc-dhcp-server**,​ **bind9**, **tftpd-hpa** et **nfs-kernel-server** ​comme implémentations logicielles des serveurs DHCP, DNS, TFTP et NFS.
  
 Le "​domaine"​ SIDUS dont nous allons présenter l'​installation aura les spécifications suivantes : Le "​domaine"​ SIDUS dont nous allons présenter l'​installation aura les spécifications suivantes :
Ligne 97: Ligne 98:
  
 ==== Installation de la passerelle ==== ==== Installation de la passerelle ====
 +
 +De manière à ne pas avoir à trop détailler les fichiers de configuration de chaque service, nous fournissons les fichiers définissant les services avec les paramètres ci-dessus. Ces fichiers seront téléchargés à partir d'une archive HTTP que nous définissons sous forme d'une variable d'​environnement ''​$HTTP''​ :<​code>​export HTTP=http://​www.cbp.ens-lyon.fr/​sidus/​jessie</​code>​
  
 Paramétrage des interfaces réseau Paramétrage des interfaces réseau
Ligne 104: Ligne 107:
 mv /​etc/​sysctl.conf /​etc/​sysctl.conf.orig mv /​etc/​sysctl.conf /​etc/​sysctl.conf.orig
 wget -O /​etc/​sysctl.conf ${HTTP}/​sysctl.conf wget -O /​etc/​sysctl.conf ${HTTP}/​sysctl.conf
-mv /etc/​resolv.conf /​etc/​resolv.conf.orig +</code> 
-wget -O /​etc/​resolv.conf ${HTTP}/​resolv.conf.server+ 
 +Montage de l'​interface interne 
 +<​code>​ 
 +ifup eth1
 </​code>​ </​code>​
  
Ligne 130: Ligne 136:
 # Relance du serveur # Relance du serveur
 /​etc/​init.d/​bind9 restart /​etc/​init.d/​bind9 restart
 +</​code>​
 +
 +Paramétrage des interfaces réseau
 +<​code>​
 +mv /​etc/​resolv.conf /​etc/​resolv.conf.orig
 +wget -O /​etc/​resolv.conf ${HTTP}/​resolv.conf.server
 </​code>​ </​code>​
  
 Vérification du serveur DNS Vérification du serveur DNS
-  * A la commande ''​host filer.sidus.zone''​ le serveur doit répondre+  * A la commande ''​host filer.sidus.zone ​localhost''​ le serveur doit répondre
 <​code>​filer.sidus.zone is an alias for gateway.sidus.zone. ​ <​code>​filer.sidus.zone is an alias for gateway.sidus.zone. ​
 gateway.sidus.zone has address 10.20.15.254</​code>​ gateway.sidus.zone has address 10.20.15.254</​code>​
-  * A la commande ''​host 10.20.15.254''​+  * A la commande ''​host 10.20.15.254 ​127.0.0.1''​
 <​code>​254.15.20.10.in-addr.arpa domain name pointer gateway.sidus.zone.</​code>​ <​code>​254.15.20.10.in-addr.arpa domain name pointer gateway.sidus.zone.</​code>​
  
Ligne 197: Ligne 209:
 cd /​usr/​lib/​syslinux/​modules/​bios cd /​usr/​lib/​syslinux/​modules/​bios
 cp ldlinux.c32 libcom32.c32 libutil.c32 vesamenu.c32 /srv/tftp/ cp ldlinux.c32 libcom32.c32 libutil.c32 vesamenu.c32 /srv/tftp/
 +cp /​usr/​lib/​PXELINUX/​pxelinux.0 /srv/tftp
 cd /srv/tftp cd /srv/tftp
-wget -O /etc/dhcp/dhcpd.conf ${HTTP}/​Sidus_Landscape.png+wget -O /srv/tftp/Sidus_Landscape.png ${HTTP}/​Sidus_Landscape.png
 cp /​boot/​memtest86.bin memtest86 cp /​boot/​memtest86.bin memtest86
-cp /​boot/​memtest86+.bin memtest86.bin+cp /​boot/​memtest86+.bin memtest86+
 # Importation des composants pour le boot EFI 32 bits # Importation des composants pour le boot EFI 32 bits
 cd /​usr/​lib/​syslinux/​modules/​efi32 cd /​usr/​lib/​syslinux/​modules/​efi32
Ligne 255: Ligne 268:
 wget -O /​etc/​idmapd.conf ${HTTP}/​idmapd.conf wget -O /​etc/​idmapd.conf ${HTTP}/​idmapd.conf
 wget -O /​etc/​exports ${HTTP}/​exports wget -O /​etc/​exports ${HTTP}/​exports
-wget -O /etc/fstab ${HTTP}/​fstab 
 </​code>​ </​code>​
  
Ligne 263: Ligne 275:
 echo "/home /​export/​home none bind 0 0" >> /etc/fstab echo "/home /​export/​home none bind 0 0" >> /etc/fstab
 mount -a mount -a
 +</​code>​
 +
 +Paramétrage des racines des instances SIDUS
 +<​code>​
 +mkdir -p /​srv/​nfsroot/​jessie64nfs /​srv/​nfsroot/​jessie32nfs
 </​code>​ </​code>​
  
Ligne 270: Ligne 287:
 </​code>​ </​code>​
  
-Pour le serveur NFS, sa configuration ​prend un ligne dans le fichier ​'/​etc/​exports'​. ​Icinous ouvrons ​un accès ​en lecture ​seule pour les machines dont l'IP est comprise entre 10.20.15.0 ​et 10.13.20.254 :<​code>​ +La configuration ​proposée ​dans le ''/​etc/​exports'​
-/​srv/​nfsroot/​sidus 10.20.15.0/​255.255.255.0(ro,​no_subtree_check,​async,​no_root_squash) +  * les deux lignes permettant l'​offre de la partition utilisateur ''/​home''​ 
-</code>+    * ''/​export 10.20.15.0/​255.255.255.0(rw,fsid=0,​async,​no_subtree_check)''​ 
 +    * ''/​export/​home 10.20.15.0/​255.255.255.0(rw,​async,​nohide,​insecure,​no_subtree_check)''​ 
 +  * deux lignes correspondant à l'​offre de deux instances SIDUS : 
 +    * Instance pour système 64 bits : un partage ​en lecture pour les clients, un partage en lecture/​écriture pour le master 
 +      * ''/​srv/​nfsroot/​jessie64nfs ​10.20.15.0/255.255.255.0(ro,​no_subtree_check,​async,​no_root_squash)''​ 
 +      * ''/​srv/​nfsroot/​jessie64nfs 10.20.15.253/​255.255.255.255(rw,​no_subtree_check,​async,​no_root_squash)''​ 
 +    * Instance pour système 32 bits un partage en lecture pour les clients, un partage en lecture/​écriture pour le master 
 +      * ''​/​srv/​nfsroot/​jessie32nfs ​10.20.15.0/​255.255.255.0(ro,​no_subtree_check,​async,​no_root_squash)''​ 
 +      * ''​/srv/​nfsroot/​jessie32nfs 10.20.15.253/​255.255.255.255(rw,​no_subtree_check,​async,​no_root_squash)''​ 
 + 
 +Les machines du réseau ''​10.20.15.0/​24''​ auront un accès en lecture seule, la machine ''​10.20.15.253''​ un accès en lecture/​écriture,​ laquelle sera très utile pour l'​administration de l'​instance.
  
 Une fois ces 4 services DNS, DHCP, TFTP et NFS configurés,​ nous pouvons installer notre Sidus complet. Une fois ces 4 services DNS, DHCP, TFTP et NFS configurés,​ nous pouvons installer notre Sidus complet.
Ligne 285: Ligne 312:
  
 Nous avons par commodité défini des variables d'​environnement correspondant à la racine de notre système ''​$SIDUS''​ et une commande permettant l'​exécution d'une commande par ''​chroot''​ avec une option particulière d'​installation de paquet. Nous avons par commodité défini des variables d'​environnement correspondant à la racine de notre système ''​$SIDUS''​ et une commande permettant l'​exécution d'une commande par ''​chroot''​ avec une option particulière d'​installation de paquet.
 +
 +Installation de ''​debootstrap''​
 +<​code>​
 +apt-get install debootstrap
 +</​code>​
  
 Pour une architecture x84_64 ou AMD64 Pour une architecture x84_64 ou AMD64
Ligne 307: Ligne 339:
 A la suite de cette commande, nous devons prendre quelques précautions : A la suite de cette commande, nous devons prendre quelques précautions :
 * normalement,​ si le paquet Debian est un service, ce dernier démarre après son installation. Nous devons donc inhiber le lancement de ce service par la définition d'un hook (''/​usr/​sbin/​policy-rc.d''​) : * normalement,​ si le paquet Debian est un service, ce dernier démarre après son installation. Nous devons donc inhiber le lancement de ce service par la définition d'un hook (''/​usr/​sbin/​policy-rc.d''​) :
-<​code ​bash>+<​code>​
 #!/bin/sh #!/bin/sh
 exit 101 exit 101
Ligne 322: Ligne 354:
 </​code>​ </​code>​
  
 +Définition du mot de passe ''​root''​ (à changer ensuite)...
 +<​code>​
 echo "​root:​MyStrongPassword"​ | sidus chpasswd echo "​root:​MyStrongPassword"​ | sidus chpasswd
 +</​code>​
  
- +Installation de paquets ​jugés ​nécessaires ​(
-Installation de paquets nécessaires +
 <​code>​ <​code>​
-sidus apt-get -y install aptitude dselect dracut dracut-network isc-dhcp-common isc-dhcp-client openssh-server locales aufs-tools firmware-linux-nonfree bridge-utils firmware-linux firmware-bnx2 dstat sysstat iftop htop iotop emacs lsof tshark mbw strace memtest86 cpuburn dbench iozone3 console-setup less vim unscd nfs-common linux-image-${ARCH} linux-headers-${ARCH}</​code>​+sidus apt-get update 
 +sidus apt-get -y install aptitude dselect dracut dracut-network isc-dhcp-common isc-dhcp-client openssh-server locales aufs-tools firmware-linux-nonfree bridge-utils firmware-linux firmware-bnx2 dstat sysstat iftop htop iotop emacs lsof tshark mbw strace memtest86 cpuburn dbench iozone3 ​psmisc ​console-setup less vim unscd nfs-common ​mlocate tshark ​linux-image-${ARCH} linux-headers-${ARCH}
 </​code>​ </​code>​
  
-Paramétrage de la localisation,​ la langue, le fuseau horaire+Paramétrage de la localisation,​ la langue, le fuseau horaire ​à partir du serveur lui même :
 <​code>​ <​code>​
 mv ${SIDUS}/​etc/​locale.gen ${SIDUS}/​etc/​locale.gen.orig mv ${SIDUS}/​etc/​locale.gen ${SIDUS}/​etc/​locale.gen.orig
 mv ${SIDUS}/​etc/​timezone ${SIDUS}/​etc/​timezone.orig mv ${SIDUS}/​etc/​timezone ${SIDUS}/​etc/​timezone.orig
 mv ${SIDUS}/​etc/​default/​keyboard ${SIDUS}/​etc/​default/​keyboard.orig mv ${SIDUS}/​etc/​default/​keyboard ${SIDUS}/​etc/​default/​keyboard.orig
-wget -O ${SIDUS}/​etc/​locale.gen ${HTTP}/​locale.gen +cp /​etc/​locale.gen ${SIDUS}/etc/​locale.gen 
-wget -O ${SIDUS}/​etc/​timezone ${HTTP}/​timezone +cp /​etc/​timezone ${SIDUS}/etc/timezone 
-wget -O ${SIDUS}/​etc/​default/​keyboard ${HTTP}/keyboard+cp /​etc/​default/​keyboard ${SIDUS}/​etc/​default/keyboard
 sidus locale-gen sidus locale-gen
 sidus dpkg-reconfigure tzdata sidus dpkg-reconfigure tzdata
Ligne 393: Ligne 427:
 Pour la résolution DNS Pour la résolution DNS
 <​code>​ <​code>​
-wget -O ${SIDUS}/​etc/​resolv.conf $HTTP/​resolv.conf+cp /​etc/​resolv.conf ${SIDUS}/etc/​resolv.conf
 </​code>​ </​code>​
  
 Pour le tuning système associé aux interfaces réseau Pour le tuning système associé aux interfaces réseau
 <​code>​ <​code>​
-wget -O ${SIDUS}/​etc/​sysctl.d/​gc.conf $HTTP/​gc.conf 
 wget -O ${SIDUS}/​etc/​sysctl.d/​gc.conf $HTTP/​gc.conf wget -O ${SIDUS}/​etc/​sysctl.d/​gc.conf $HTTP/​gc.conf
 </​code>​ </​code>​
Ligne 412: Ligne 445:
 mv ${SIDUS}/​etc/​default/​nfs-common ${SIDUS}/​etc/​default/​nfs-common.orig mv ${SIDUS}/​etc/​default/​nfs-common ${SIDUS}/​etc/​default/​nfs-common.orig
 mv ${SIDUS}/​etc/​idmapd.conf ${SIDUS}/​etc/​idmapd.conf.orig mv ${SIDUS}/​etc/​idmapd.conf ${SIDUS}/​etc/​idmapd.conf.orig
-wget -${SIDUS}/​etc/​default/nfs-common $HTTP/​nfs-common +cp /​etc/​default/​nfs-common ​${SIDUS}/​etc/​default/​nfs-common 
-wget -O ${SIDUS}/​etc/​idmapd.conf $HTTP/​idmapd.conf+cp /​etc/​idmapd.conf ${SIDUS}/etc/​idmapd.conf
 </​code>​ </​code>​
  
Ligne 433: Ligne 466:
 <​code>​ <​code>​
 cp ${SIDUS}/​etc/​security/​group.conf ${SIDUS}/​etc/​security/​group.conf.orig cp ${SIDUS}/​etc/​security/​group.conf ${SIDUS}/​etc/​security/​group.conf.orig
-sed -i "s/\#\ End/​\*;​\*;​\*;​Al0000-2400;​plugdev,​fuse,​scanner,​video,​audio,​floppy,​cdrom\n\#​\ End/g" ${SIDUS}/​etc/​security/​group.conf+sed -i "s/\#\ End/​\*;​\*;​\*;​Al0000-2400;​plugdev,​fuse,​scanner,dialout,​video,​audio,​floppy,​cdrom\n\#​\ End/g" ${SIDUS}/​etc/​security/​group.conf
 </​code>​ </​code>​
  
developpement/productions/sidus4jessie.1436197633.txt.gz · Dernière modification: 2015/07/06 17:47 par equemene