Modifications entre les versions 27 et 28
Version 27 à la date du 2011-02-20 11:47:14
Taille: 12838
Commentaire: quotas : c'est pas fini...
Version 28 à la date du 2011-02-20 12:01:52
Taille: 13400
Commentaire: + libnss-mysql-bg
Texte supprimé. Texte ajouté.
Ligne 311: Ligne 311:
''(détails à venir…)''  * installer l'accès à la base des utilisateurs : {{{
aptitude install libnss-mysql-bg nscd
sed -i -e "s|shell|'/bin/false'|" -e '/ username=/s/=/= binary /' -e '/^host/s/^.*$/host nss/' /etc/libnss-mysql.cfg
}}}
 * éditer encore les fichiers `/etc/libnss-mysql.cfg` et `/etc/libnss-mysql-root.cfg` pour y configurer les `username` et `password` d'accès à la base dans MySQL
 * activer l'utilisation de cette base : {{{
sed -i -e '/^\(passwd\|group\|shadow\):/s/:.*$/:\t\tfiles mysql/' /etc/nsswitch.conf
nscd -i passwd
nscd -i group
}}}

''(autres détails à venir…)''

Cette page présente le modèle de serveur bureautique pour le déploiement du poste de travail AuF sous Ubuntu « Lucid » 10.04.

ATTENTION : cette documentation est en cours de rédaction est n'est donc pas encore validée officiellement !!

Pré-requis matériels

  • processeur 64 bits (Intel Xeon ou AMD Opteron)
  • beaucoup de RAM (8 Go recommandés)
  • beaucoup d'espace disque, en double pour faire du RAID-1 (2 × 500 Go SATA, ou du SCSI si on est riche)

Pré-requis système

  • /!\ aller dans le BIOS régler l'heure correcte, en UTC (!) (dans le doute sur l'heure précise, il veut mieux être en retard qu'en avance)

  • installer une Debian Squeeze (ou adapter une Debian Lenny existante si on n'a pas d'autre choix dans l'immédiat)

  • organisation des disques : /!\ ces choix sont très discutables et seront probablement revus au fur et à mesure des retours d'expérience

    • une première partition primaire de 100 Mo (pour /boot) de type RAID auto sur chaque disque

    • {i} en principe ce n'est plus nécessaire avec Squeeze qui utilise grub-pc (GRUB 2) et est donc capable de démarrer directement sur un volume LVM, mais je n'ai pas encore testé cela, en particulier dans le cas d'un LVM au dessus d'un RAID qui posait officiellement problème autrefois, et ce n'est donc pas encore une solution validée

    • le reste en partition(s) primaire(s) de type RAID auto sur chaque disque

    • (en découpant éventuellement par tranche de 250 Go, pour découper les re-synchronisation après crash)

    • aller dans le menu RAID pour :
      • joindre les partitions RAID auto 2-par-2 en des volumes RAID-1 de 2 disques et 0 de réserve (spare)

    • ne rien faire avec le premier volume RAID-1 (md0) car ce sera perdu (et donc à refaire) après la configuration LVM
    • déclarer les autres volumes RAID-1 (md1, md2, …) de type Volume physique LVM

    • aller dans le menu LVM pour :
      • joindre les volumes physique LVM dans un seul Groupe de volumes

      • (on recommande d'utiliser un nom de groupe de volumes unique entre tous les serveurs, par exemple vn1nfs0, ceci afin de pouvoir éventuellement déplacer ces disques dans un autre serveur plus tard sans avoir de conflit pour cause de noms de groupes de volumes identiques)

      • déclarer les volumes logiques suivants :
        • un volume de nom swap d'une taille de 10 Go

        • un volume de nom root d'une taille de 1 Go

        • un volume de nom var d'une taille de 1 Go

        • un volume de nom log d'une taille de 1 Go

        • un volume de nom tmp d'une taille de 1 Go

        • un volume de nom home d'une taille de 100 Go (par exemple, à vous de voir)

    • déclarer le volume logique swap de type swap

    • déclarer le volume logique root de type ext4 monté sur /

    • déclarer le volume logique var de type ext4 monté sur /var

    • déclarer le volume logique log de type ext4 monté sur /var/log

    • déclarer le volume logique tmp de type ext4 monté sur /tmp

    • déclarer le volume logique home de type ext4 monté sur /home

    • déclarer le premier volume RAID-1 (md0) de type ext3 monté sur /boot

  • choisir pour nom de machine nfs (non obligatoire, mais suggéré)

  • installer GRUB sur le MBR des deux disques en RAID, donc lancer ces commandes après redémarrage du serveur :

    grub-install /dev/sda
    grub-install /dev/sdb

Base système

  • configurer l'environnement linguistique : (choisir fr_FR.UTF-8, ou autre locale encodée en UTF-8)

    aptitude install locales
  • {i} Dans le cas où les locales auraient déjà été installées, s'assurer de leur bonne configuration en lançant dpkg-reconfigure locales, c'est important.

  • installation dès le départ de quelques services indispensables que l'on configurera plus tard :

    aptitude install --without-recommends ntp bind9 openssh-server
  • installation de quelques autres paquets indispensables/utiles :

    aptitude install --without-recommends less vim ssh screen mtr-tiny

Base réseau

  • arrêter le réseau (pour stopper le client DHCP mis en place par défaut) :

    /etc/init.d/networking stop
  • configurer le réseau dans /etc/network/interfaces, par exemple :

    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet static
            address 192.168.50.10
            netmask 255.255.255.0
            network 192.168.50.0
            broadcast 192.168.50.255
            gateway 192.168.50.1
  • vérifier le nom de machine dans /etc/hostname, par exemple :

    nfs
  • vérifier le nom de machine dans /etc/hosts, par exemple :

    127.0.1.1       localhost
    # ne pas utiliser cette forme pour un vrai serveur (a priori, toutes les conséquences ne sont pas encore connues)
    #127.0.1.1      nfs.lucid.auf nfs
    # utiliser la véritable adresse IP
    192.168.50.10   nfs.lucid.auf nfs
    
    # The following lines are desirable for IPv6 capable hosts
    ::1     ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
  • démarrer le réseau :

    /etc/init.d/networking start

{i} Remarque : en principe le serveur de bureautique n'est pas sensé jouer aussi le rôle de passerelle. On peut fusionner les deux au besoin mais cette documentation se concentre plutôt sur le modèle général où les deux fonctions sont séparées.

Service SSH

  • installer le service SSH :

    aptitude install --without-recommends openssh-server
  • /!\ ATTENTION : configuration (restrictions) restant à préciser

Service NTP

  • installer le service d'heure et de maintenance de l'heure :

    aptitude install --without-recommends ntp
  • /!\ ATTENTION : configuration (sur NTP local ou exemple de asia.pool.ntp.org) restant à préciser

Service DNS

  • installer le service DNS :

    aptitude install --without-recommends bind9
  • configurer la résolution DNS dans /etc/resolv.conf, par exemple :

    domain lucid.auf
    search lucid.auf
    nameserver 127.0.0.1
  • déclarer deux zones pour le réseau local dans /etc/bind/named.conf.local, par exemple :

    zone "lucid.auf" IN {
            type master;
            file "/etc/bind/db.lucid.auf";
    };
    
    zone "50.168.192.in-addr.arpa" IN {
            type master;
            file "/etc/bind/db.50.168.192";
    };
  • créer ensuite le contenu de la première zone dans /etc/bind/db.lucid.auf, par exemple :

    $ORIGIN lucid.auf.
    $TTL 24H
    @                       IN SOA  ns1.lucid.auf. hostmaster.lucid.auf.org. (
                                    2011013000      ; Serial
                                    8H              ; Refresh
                                    1H              ; Retry
                                    2W              ; Expire
                                    600 )           ; Negative Cache TTL
    ;
    @                       IN NS   ns1
    ns1                     IN A    192.168.50.10
    ;
    network                 IN A    192.168.50.0
    gw                      IN A    192.168.50.1
    nfs                     IN A    192.168.50.10
    $GENERATE 130-249 dynamic-$ IN A        192.168.50.$
    broadcast               IN A    192.168.50.255
    ;
    ntp                     IN CNAME        nfs
    nss                     IN CNAME        nfs
  • créer ensuite le contenu de la seconde zone dans /etc/bind/db.50.168.192, par exemple :

    $ORIGIN 50.168.192.in-addr.arpa.
    $TTL 24H
    @                       IN SOA  ns1.lucid.auf. hostmaster.lucid.auf.org. (
                                    2011013000      ; Serial
                                    8H              ; Refresh
                                    1H              ; Retry
                                    2W              ; Expire
                                    600 )           ; Negative Cache TTL
    ;
    @                       IN NS   ns1.lucid.auf.
    ;
    0                       IN PTR  network.lucid.auf.
    1                       IN PTR  gw.lucid.auf.
    10                      IN PTR  nfs.lucid.auf.
    $GENERATE 130-249 $     IN PTR  dynamic-$.lucid.auf.
    255                     IN PTR  broadcast.lucid.auf.
  • relancer le service DNS :

    /etc/init.d/bind9 restart
  • valider la configuration DNS avec quelques tests :

    host nfs.lucid.auf
    host dynamic-130.lucid.auf
    host www.auf.org

Service DHCP

  • installer le service DHCP :

    aptitude install isc-dhcp-server
  • spécifier dans /etc/default/isc-dhcp-server l'interface sur laquelle on fournit le service :

    INTERFACES="eth0"
  • définir dans /etc/dhcp/dhcpd.conf le réseau que l'on sert :

    authoritative;
    
    subnet 192.168.50.0 netmask 255.255.255.0 {
      range 192.168.50.130 192.168.50.249;
      option domain-name "lucid.auf";
      option domain-name-servers ns1.lucid.auf;
      option routers gw.lucid.auf;
      option broadcast-address broadcast.lucid.auf;
      filename "pxelinux.0";
      next-server nfs.lucid.auf;
      server-name "nfs.lucid.auf";
    }
  • relancer le service DHCP :

    /etc/init.d/isc-dhcp-server restart

Service TFTP

  • installer le service TFTP : (garder le chemin /srv/tftp par défaut)

    aptitude install tftpd-hpa
  • {i} Pour Lenny il faut en plus lancer /etc/init.d/openbsd-inetd restart après l'installation ; ce n'est plus nécessaire avec Squeeze où le service TFTP est maintenant autonome.

  • mettre en place l'installation en réseau de Ubuntu Lucid, par exemple :

    wget http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-i386/current/images/netboot/netboot.tar.gz -O- | tar -C /srv/tftp -xpzf -
    chown -hR root:nogroup /srv/tftp
  • ajouter à la fin de /srv/tftp/pxelinux.cfg/default une option d'installation au modèle AuF :

    label lucid
      menu label Lucid sauce AUF
      kernel ubuntu-installer/i386/linux
      append vga=vesa initrd=ubuntu-installer/i386/initrd.gz locale=fr_FR.UTF-8 console-setup/ask_detect=false console-setup/layoutcode=fr netcfg/wireless_wep= netcfg/choose_interface=eth0 netcfg/get_hostname= url=http://nfs/config/lucid-preseed-auf-fixe --
    
    label local
      menu label Disque local
      menu default
      localboot 0
      append -

{i} Cela ne fonctionnera pas tout de suite car il faut d'abord mettre en place le service web pour servir le fichier preseed.

Service web

{i} Nécessaire au moins pour le preseed et pour auf-django-users.

  • installer le service web :

    aptitude install apache2
  • configurer dans /etc/apache2/conf.d/security le niveau de détails techniques :

    ServerTokens OS
  • configurer dans /etc/apache2/conf.d/charset le jeu de caractères par défaut :

    AddDefaultCharset UTF-8
  • ajouter dans /etc/apache2/sites-available/default, avant la ligne ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/, les restrictions d'accès suivantes :

            <Directory /var/www/config/>
                    Options FollowSymLinks
                    AllowOverride None
                    Order allow,deny
                    allow from 192.168.50.0/24
            </Directory>
  • relancer le service web :

    /etc/init.d/apache2 restart
  • copier dans /var/www/config/lucid-preseed-auf-fixe le contenu de la page ../PreseedAuFFixe :

    wget --header='User-Agent: Firefox' http://wiki.auf.org/wikiteki/Ubuntu/Lucid/D%C3%A9ploiement/ServeurBureautique/PreseedAuFFixe?action=raw -O- | awk '/}}}/{ok=0} {if(ok)print} /{{{/{ok=1}' > /var/www/config/lucid-preseed-auf-fixe
    chmod 0644 /var/www/config/lucid-preseed-auf-fixe
  • copier dans /var/www/config/lucid-authorized_keys la clé publique qui servira à gérer les postes clients, par exemple :

    cp -a /root/.ssh/authorized_keys /var/www/config/lucid-authorized_keys
    chmod 0644 /var/www/config/lucid-authorized_keys
  • copier dans /var/www/config/lucid-postpreseed le script suivant :

    #!/bin/sh
    mkdir -m 0700 -p /root/.ssh
    wget http://nfs/config/lucid-authorized_keys -O /root/.ssh/authorized_keys
    chmod 0600 /root/.ssh/authorized_keys
    cp -a /root/.ssh ~auf/
    chown -R auf:auf ~auf/.ssh
    dpkg-reconfigure locales
    dpkg-reconfigure -p low cups-pdf # corrige apparemment un bogue
    exit 0

Service NFS

Mettre en place le service NFS selon les indications sur la page NFSv4 (uniquement la partie serveur).

Gestion de l'espace disque

  • installer la gestion des quotas :

    aptitude install --without-recommends quota quotatool
  • /!\ ATTENTION : configuration (usrquota dans /etc/fstab, journalisation) restant à préciser

Service auf-mkhomedir

  • installer le méta-serveur de services :

    aptitude install inetutils-inetd update-inetd
  • mettre en place le service de création de répertoire utilisateur :

    wget 'http://git.auf.org/?p=auf-poste-client.git;a=blob_plain;f=lucid/auf-client-fixe/auf-mkhomedir/inetd_auf-mkhomedir' -O /usr/local/sbin/inetd_auf-mkhomedir
    
    chown root:root /usr/local/sbin/inetd_auf-mkhomedir
    chmod 0700 /usr/local/sbin/inetd_auf-mkhomedir
    
    update-inetd --group AUF --add '10 stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/inetd_auf-mkhomedir'
    /etc/init.d/inetutils-inetd reload

/!\ Il faut absolument vérifier dans /usr/local/sbin/inetd_auf-mkhomedir si le paramétrage des quotas correspond à votre politique locale de gestion de l'espace disque.

Base d'utilisateurs réseau

  • installer l'accès à la base des utilisateurs :

    aptitude install libnss-mysql-bg nscd
    sed -i -e "s|shell|'/bin/false'|" -e '/ username=/s/=/= binary /' -e '/^host/s/^.*$/host nss/' /etc/libnss-mysql.cfg
  • éditer encore les fichiers /etc/libnss-mysql.cfg et /etc/libnss-mysql-root.cfg pour y configurer les username et password d'accès à la base dans MySQL

  • activer l'utilisation de cette base :

    sed -i -e '/^\(passwd\|group\|shadow\):/s/:.*$/:\t\tfiles mysql/' /etc/nsswitch.conf
    nscd -i passwd
    nscd -i group

(autres détails à venir…)


Projet/ModèleLucid/ServeurBureautique (dernière édition le 2013-07-25 20:04:56 par MoussaNombre)