Ce document a pour ambition de décrire succinctement ce qui est installé sur Zamok et pourquoi.
C'est le Serveur de l'assoce.
Un Serveur DELL POWEREDGE 2500 bi-PIII 1GHz, 512 Mo RAM ECC, 2*36Go de disques
durs SCSI 10ktm en RAID sur une carte possédant sa propre baterie et
128 de mémoire cache ECC. Écran (X11 n'est pas configuré),
clavier, 1 lecteur de disquettes, carte réseau 3COM. L'ensemble dans
le local technique du bâtiment B, en compagnie d'un superbe déshumidificateur,
sur une étagère
métallique
avec tiroir coulissant pour les claviers, le tout constituant le coeur du
[new cr@ns³] ! En plus, le distributeur de Coca est juste à côté...
:))
Voir la jolie page générée par phpSysInfo pour plus de détails sur la structure exacte de la machine.
Debian 3 "Woody", noyau 2.4.
<Un peu d'histoire> Zamok ne se trouve au bâtiment B que depuis septembre 2000. Avant, il était dans un placard "Butte" du bâtiment G qui prenait l'eau régulièrement, surchauffait, dans lequel on entrait comme dans un moulin et qui faisait à peine 1 mètre de large. Bien entendu, il n'y avait aucune place pour travailler et on était assis par terre ! (d'où les photos précédentes). Jusqu'à décembre 2001, Zamok n'était qu'un K6-2 500 entouré par une config de mauvaise qualité qui plantait relativement souvent ;). Et puis on vaguement essayé de lui mettre un lecteur CD mais il a pris l'eau - merci le Crous - avant qu'on ne puisse l'utiliser. D'ailleurs, tout avait rouillé lors de cette inondation survenue dans le local du bâtiment G, nous obligeant à tout remplacer. 36 heures - non - stop. NB : pensez à vous assurer contre le Crous. </Un peu d'histoire>
C'est la nouveauté de l'année 2000 : Le Cr@ns se dote d'un routeur à part entière, ce qui décharge Zamok de ce travail. Le routeur est la machine qui relie le réseau du Cr@ns au réseau de l'ENS (et plus précisément à la machine IRTS), chargée de nous FILTRER et surtout de limiter notre bande passante. Actuellement, celle-ci est la suivante :
Un DELL POWEREDGE 1400 avec un PIII 1GHz et 256Mo de RAM ECC, 2 cartes réseau 3Com 905c 100 Mbits/s et une carte optique 100Mbps D-Link DFE-550FX
Debian 3 "Woody", noyau 2.4.
Le "petit" dernier :)
C'est la machine qui nous sert de proxy pour le web et de ftp public. Elle est basée sur un Dell PowerEdge 1600 SC, Processeur Intel Xeon 2.4 Ghz HyperThreading, 1.5Go de DDRAM ECC, et quatre disques durs SCSI U320 10 Ktpm. Le tout faisant tourner une Debian woody avec un noyau 2.4.
Un bon nombre de docs (howto, Faqs, Readme ..) de packages Debian est disponible
localement sur zamok, ici
pour les HOWTO en français et d'une manière plus générale, ici.
Ces packages sont maintenus à jour par le système apt de Debian,
donc les docs devraient être plus ou moins les plus récentes disponibles.
3.1 /CRANS/Makefile
Ce makefile (mis en oeuvre par la commande "make" dans /CRANS) se charge de convertir les fichiers centralisés machines.cf (qui est un moule, incluant à son tour des fichiers spécifiques par bâtiment batb.cf, batg.cf, batm.cf, etc ) et personnes.cf dans les différents formats requis par les différents services (sendmail, bind, dhcp, samba...) et de redémarrer ces derniers au besoin.
La structure des multiples scripts python que cela met en jeu n'est pas la plus claire, et il faut un certain temps pour comprendre quel script fait quoi. Le Makefile est en fait l'interface par laquelle on les utilise.
Récemment j'ai [SK] transformé le Makefile en véritable horreur, pour permettre à un user normal d'appeler "make -C /CRANS -f /CRANS/Makefile" via super (équivalent de sudo).
J'ai voulu que les scripts de /CRANS (modifiables par tout respBat) ne soient pas directement exécutés par root.
Ainsi, le Makefile exécute ces scripts en tant qu'un user normal, en écrivant les fichiers de configuration produits dans un sous-répertoire. Puis une partie du Makefile s'exécute en root et copie ceux-ci au bon endroit et relance les daemons comme il faut. Il serait bon de clarifier cette horreur, et de documenter comment sont organisés les différents groupes (admin, respBat, ..) de zamok.3.2 /CRANS/scripts/mknewlogin
Cet outil crée un nouveau compte. Usage :
mknewlogin beria Lavrenti.BeriaCeci crée un compte "beria", pour Lavrenti Beria, avec l'alias de mail "Lavrenti Beria" dans personnes.cf. Ensuite, postfix est redémarré et la liste des abonnés est reconstruite.
Fichiers concernés :
- personnes.cf -- répertoire principal des personnes.
- /etc/passwd -- fichier des mots de passe (UNIX).
- aliases.* -- gestion des alias directs (format sendmail)
- revaliases.* -- gestion des alias retours (format sendmail)
- main.cf -- configuration de postfix.
3.3 /CRANS/confs/personnes.cf
Ce fichier contient la liste des logins, et la liste des alias :
lemoult: Thierry.Lemoult chepelov: Cyrille.Chepelov Chep ! chepelov_c le-loch: Sebastien.Le-LochLe premier alias est considéré comme l'alias primaire, et tous les courriers sortants sont réécrits pour utiliser cet alias. On peut spécifier autant d'alias secondaires que l'on veut, pour des surnoms, par exemple. Les alias secondaires situés après un éventuel "!" ne sont pas affichés dans la liste des abonnés.
3.4 /CRANS/confs/machines.cf
ce fichier, orthogonal au précédent, sert à construire la liste des machines, leur adresse IP et leur adresse MAC, en recollant les fichiers bat{A,B,C,M,F,G,H,I,J,P}.cf. (batp.cf = fichier de conf du pdj)
### machines.cf ### .. snip ... 0x6 : zamok : 00105AAFA979 : Serveur CRANS 0x4 : komaz : 00105aafaa4b : routeur %include batb.cf # blocs 0x130 à 0x160 %include batf.cf # blocs 0x201 à 0x230 ...Lorsque les scripts python le liront, ce sera exactement comme si chaque fichier bat?.cf y était textuellement inclus.
Les lignes de ces fichiers ressemblent à :0x14a:marvin:00e029210405 :KREMPP Samuel :B304d:B323:1999:krempp :3A1Seuls les 3 premiers champs sont vitaux. Le 4° est techniquement utilisé uniquement pour fournir le nom du propriétaire d'une machine dans le DNS (essayer host -t any aneto, il y a "Nicolas.Stransky" qui s'affiche ; il en va de même pour toutes les machines du CRANS)
Il est donc possible de rajouter des champs, utilisés pour gérer les nombreux adhérents du Cr@ns avec un minimum d'automatisation. Ainsi il parait vital d'indiquer le numéro de chambre, et de prise, l'année de paiement (mettre "payé" ne serait pas pratique, puisque l'année d'après on ne distinguerait pas les bons payeurs des retardataires), etc...
Inclure le nom de login est aussi très important. Même si pour la plupart ça sera redondant, c'est vital pour les cas particuliers (comme des noms trop longs simplifiés, des noms porté par plusieurs personne, comme dupont Charles et Henri fera dupont (le premier) et hdupont).
Ces fichiers sont le seul lien entre machines et user, et le champ username est très utile pour envoyer un mail aux user satisfaisant un certain critère ("users au bâtiment B qui n'ont pas encore payé leur cotisation", par exemple..) Et éventuellement des infos comme section, téléphone, problème éventuel rencontré ..
Les fichiers subissent également un traitement supplémentaire par le Makefile, qui re-trie les lignes par ordre croissant d'IP, détecte les numéros MAC identiques (qu'il rapporte dans un fichier collisionsB.txt par exemple), et ré-aligne les différents champs..
Le script concerné est CRANS/code/parse_batCf.py. Il lit et comprend un fichier bat?.cf, il est très facilement adaptable à n'importe quelle tâche spécifique (repérer les lignes correspondant à des users inexistant, ..)La gestion proposée est par blocs de 16 adresses (toutes les machines au sein d'un bloc appartiennent au même bâtiment), et donc les adresses IP sont exprimées en hexadécimal.
Lors du "make", le programme /CRANS/code/pybind.py est appelé, et régénère les fichiers suivants :
- dhcpd.conf -- pour le DHCP
- db.127.0.0.1, db.zoneinfo, db.reverse, named.conf, zonedb.num -- pour le BIND.
(Il est à noter que la plupart de ces fichiers existent normalement dans /etc. Il y a donc actuellement des liens symboliques de /etc/ces_fichiers vers /CRANS/generated/les_vrais. Il est possible qu'à la suite d'une mise à jour, certains de ces liens soient remplacés par de vrais fichiers, mais n'ayant rien à voir avec ce que l'on veut faire ici. Rétablir les liens symboliques sans aucun état d'âme (c'est fait par "make"))
3.5 /CRANS/code/pybind.py
Ce programme prend machines.cf et le transforme en dhcpd.conf et db.*. Les modules les plus importants sont code/gen_NAMED.py (ne pas modifier sans l'avis de Pascal Varoqui ou d'un expert en DNS !!!!!!! , code/gen_DHCP.py, et /CRANS/code/zoneconfig.py (c'est dans ce fichier que l'on décrit les netmasks et adresses de passerelle qui seront imposées aux adhérents). Automatiquement appelé par le Makefile si machines.cf change.
Petite astucePour rafraîchir complètement le DNS/DHCP/serveur mail, il suffit de faire (en root)
cd /CRANS ; make cleanGenDirpuis en user normal (respbat) :lanceMakeet vérifier les messages d'erreur dans /CRANS/erreurs/lanceMake.3.6 /CRANS/code/mkListeMails.py et /CRANS/code/mkaliases
Ces deux fichiers sont responsables de la création de la liste des boîtes aux lettres (pages HTML dans /home/httpd/html/cransonly) et des alias pour sendmail. Automatiquement appelés quand la liste personnes.cf est mises à jour.
3.7 /CRANS/mkall/mkall
Tiré de la snepa et à peine adapté, responsable de la création de la liste des pages web. Appelé deux fois par jour. Abominable fouillis.
/etc/crontab regroupe diverses petits cronjobs, qui ne méritent pas un fichier dans cron.d/ à elles seules. à part cela la syntaxe est identique, et brièvement expliquée. Donc lisez les commentaires dans ce fichier avant de modifier des cronjobs dans cron.d/
/etc/cron.d/ contient quelques fichiers chargés de taches cron pour tel ou tel paquet, avec une fréquence entièrement réglable ( de chaque minute à chaque année, en gros..). Ces fichiers sont lus tout seul par cron, automatiquement. Exemple : cron.d/inn2, qui gère les cronjobs des news.
/etc/cron.(daily|weekly|monthly)/. Les scripts présents dans ces répertoires ( ! penser à les rendre exécutables, chmod +x .. ) sont exécutés automatiquement par cron avec la fréquence adéquate.
/var/spool/cron/(crontabs|atjobs|atspool)/. Si spool/cron/crontabs
contient un fichier
les atjobs et atspool contiennent des jobs programmés par des users pour
être lancés à une heure donnée.
(rien !)
Contrôler la place disque !!! (df suffit) (ok, il devrait
y avoir des alertes automatiques, voire un jôli graphounet avec des mignonnes
courbes tout plein)
/var/log/warn (et les autres /var/log/*
que les choses se passent bien (pas trop de messages d'erreur de partout...)
top |
dernière modif le 10.08.03 par Nico. |
![]() |
|||
| |
|
![]() |
|
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
![]() |
|||