Install-srv¶
Configuration d'une anode avec carte Linco, sous Debian Squeeze (anode50 / 2017-03-17) :¶
- Création du groupe et de l'utilisateur 'prototype' (uid = 3000 / gid = 3000)
- On peut récupérer le home depuis une autre anode, en faisant par exemple :
cd /home root@anode11:/lib/modules# tar -zcvf - prototype | ssh root@anode50 "cat > /home/home_prototype_from_anode11.tar.gz"
Puis, sur anode50 :
cd /home tar -zxvf home_prototype_from_anode11.tar.gz
- Creation de l'utilisateur :
addgroup -gid=3000 prototype adduser -uid=3000 -gid=3000 prototype --home=/home/prototype
Mot de passe = ? (on peut toujours le récupérer du /etc/shadow d'une autre anode)
- Création du groupe et de l'utilisateur 'pem' (uid = 3000 / gid = 3000)
addgroup -gid=4242 pem adduser -uid=4242 -gid=4242 pemMot de passe = ? (on peut toujours le récupérer du /etc/shadow d'une autre anode)
- Ajout de /etc/apt/apt.conf :
APT::Install-Recommends "0"; APT::Install-Suggests "0";
- Dans /etc/apt/sources.list (Debian Squeeze est archivée) :
deb http://archive.debian.org/debian squeeze main
- Ajout de quelques paquets (dont screen indispensable à Dcod, et rsync indispensable au pem) :
apt-get update apt-get install screen rsync nfs-common tmux vim dstat lsb-release ntp nfs-common
- Configuration des interfaces réseaux :
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface #allow-hotplug eth0 #iface eth0 inet dhcp # The primary network interface auto eth0 iface eth0 inet static address 172.16.1.150 netmask 255.255.0.0 broadcast 172.16.255.255 network 172.16.0.0 gateway 172.16.1.1 auto eth1 iface eth1 inet static address 172.17.1.150 netmask 255.255.0.0 broadcast 172.17.255.255 network 172.17.0.0
- Dans le fichier /etc/hosts, on commente si elle existe la ligen relative à 127.0.1.1 :
root@anode50:~# more /etc/hosts 127.0.0.1 localhost #127.0.1.1 anode50.agata.daq anode50 # 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
- Ajout des partages nfs
On rajoute dans /etc/fstab :
dellyfire:/srv/agata /agata nfs defaults 0 0 anodeds2:/agatadisks /agatadisks-old nfs defaults 0 0 df-anodeds5:/agatadisks /agatadisks nfs defaults 0 0
Puis on crée les répertoires de montage des partages nfs, et on monte le tout :
mkdir /agata /agatadisks-old /agatadisks mount -a
- Ajout du lien Xilinx et des bases ADL dans /opt :
cd /opt ln -s Xilinx /agata/Xilinx_Orsay/Xilinx mkdir bases_ADL cd bases_ADL scp root@anode14:/opt/bases_ADL/LibTrap_A009.dat LibTrap_A011.dat scp root@anode14:/opt/bases_ADL/LibTrap_A009.dat.sxyz LibTrap_A011.dat.sxyz
- On configure le ntp, dans /etc/ntp.conf :
server rorqual iburst
- Ajout du pem :
Création de l'arborescence de base :
mkdir -p /opt/bin/pem chown -R pem.pem /opt/bin/pem
Récupération du /opt/pem/bin/pem et du ~pem/.pemrc depuis une autre anode :
root@anode11:/opt/pem/bin# scp -p pem root@anode50:/opt/pem/bin/ root@anode11:/home/pem# scp -p .pemrc root@anode50:/home/pem/
Récupération du pem complet, à jour :
su - pem $ cd /opt/pem $ ./bin/pem update pem $ ls -l total 28 drwxr-xr-x 2 pem pem 4096 Nov 21 10:45 bash_completion.d drwxr-xr-x 3 pem pem 4096 Feb 1 16:38 bin drwxr-xr-x 2 pem pem 4096 Nov 21 10:45 css drwxr-xr-x 2 pem pem 4096 Nov 21 10:45 javascript drwxr-xr-x 2 pem pem 4096 Nov 21 10:45 magic drwxr-xr-x 2 pem pem 4096 Nov 21 10:45 png drwxr-xr-x 2 pem pem 4096 Nov 21 10:45 templates
Récupération des environnements nécessaires :
./bin/pem pull env dcod,narval_agata,ANODE_PCI,agata_trigger
- Ajout du module xdev :
root@anode11:/lib/modules# scp /lib/modules/2.6.32-5-amd64/xdev.ko root@anode50:/lib/modules/2.6.32-5-amd64/ root@anode11:/lib/modules# scp -p /etc/udev/99-xdev.rules root@anode50:/etc/udev/rules.d/ root@anode11:/lib/modules# scp -p /etc/modprobe.d/xdev.conf root@anode50:/etc/modprobe.d/
Puis, sur anode50 :
# depmod -a (modprobe -A aurait suffit) # modprobe xdev
On doit avoir :
# ls -l /dev/parport* crw-rw---- 1 root lp 99, 0 Mar 20 15:56 /dev/parport0 crw-rw---- 1 root lp 99, 1 Mar 20 15:56 /dev/parport1 # ls -l /dev/xdev* cr--r--r-- 1 root root 126, 0 Mar 20 17:31 /dev/xdev0 cr--r--r-- 1 root root 126, 1 Mar 20 17:31 /dev/xdev1 root@anode50:~# lsmod | egrep 'xdev|ppdev' ppdev 5030 0 xdev 14082 0 parport 27954 2 ppdev,xdev
- Récupération du .bashrc de l'utilisateur prototype depuis une autre anode (inutile, si l'on a déjà récupéré son home...) :
root@anode11:/home/prototype# scp -p .bashrc root@anode50:/home/prototype/ root@anode11:/home/prototype# cat .bashrc # ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # for examples if [ -f /agata/prototype/bashrc_backups/20151217_base/bashrc_template ]; then . /agata/prototype/bashrc_backups/20151217_base/bashrc_template else . ~/.bashrc_backup fi
- Ajout du client xymon :
On utilise le paquet xymon-client_4.3.11_amd64.deb, car les version ultérieures dépendent de libssl1.0.0 (>= 1.0.0) qui n'est pas disponible pour Squeeze (libssl0.9.8).
dpkg -i xymon-client_4.3.11_amd64.deb
Lors de l'installation, on indique 172.16.1.6 comme IP du 'Xymon Server' :
Dans /etc/default/xymon-client, on met : CLIENTHOSTNAME="anode50"
Dans /etc/xymon/xymonclient.cfg, on corrige XYMSRV="127.0.0.1", on met : XYMSRV="172.16.1.6"
(un 'include /etc/default/xymon-client' serait sans doute préférable, comme sur d'autres version du client)
On crée /etc/init.d/xymon-client :
#! /bin/sh # # xymonclient This shell script takes care of starting and stopping # the xymon client. ### BEGIN INIT INFO # Provides: xymon-client # Required-Start: $remote_fs $network # Should-Start: $all # Required-Stop: $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Xymon system monitor client # Description: Client to feed system data to a remote Xymon server. ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON="/usr/lib/xymon/client/bin/xymonlaunch" NAME=xymonclient DESC="Xymon Client" PIDFILE="/var/run/xymon/clientlaunch.pid" XYMONCLIENTHOME="/usr/lib/xymon/client" test -x $DAEMON || exit 0 . /lib/lsb/init-functions . /usr/share/xymon/init-common.sh # Include xymonclient defaults if available if [ -f /etc/default/xymon-client ] ; then . /etc/default/xymon-client fi [ -z "$MACHINE" ] && MACHINE="$CLIENTHOSTNAME" [ -z "$MACHINEDOTS" ] && MACHINEDOTS="`hostname -f`" export XYMONSERVERS XYMONCLIENTHOME CLIENTHOSTNAME MACHINE MACHINEDOTS case "$1" in start) # do not run the client script on the server [ -x /usr/lib/xymon/server/bin/xymond ] && exit 0 create_includefiles log_daemon_msg "Starting $DESC" "$NAME" start-stop-daemon --exec $DAEMON --chuid xymon --umask 022 --start \ -- \ --config=/etc/xymon/clientlaunch.cfg \ --log=/var/log/xymon/clientlaunch.log \ --pidfile=$PIDFILE log_end_msg $? ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" start-stop-daemon --exec $DAEMON --pidfile $PIDFILE --stop --retry 5 log_end_msg $? ;; status) if test -s $PIDFILE then kill -0 `cat $PIDFILE` if test $? -eq 0 then echo "Xymon client running with PID `cat $PIDFILE`" exit 0 else echo "Xymon client not running, removing stale PID file" rm -f $PIDFILE exit 1 fi else echo "Xymon client does not appear to be running" exit 3 fi ;; restart) if [ -x /usr/lib/xymon/server/bin/xymond ] ; then log_action_msg "Xymon server installed. Please restart 'xymon' instead" exit 0 fi $0 stop sleep 1 $0 start ;; reload|force-reload) [ -x /usr/lib/xymon/server/bin/xymond ] && exit 0 create_includefiles kill -HUP `cat /var/run/xymon/clientlaunch.pid` ;; rotate) for PIDFILE in /var/run/xymon/*.pid do test -e $PIDFILE && kill -HUP `cat $PIDFILE` done ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|force-reload|status|rotate}" >&2 exit 1 ;; esac exit 0
Puis :
# update-rc.d xymon-client defaults update-rc.d: using dependency based boot sequencing # ls /etc/rc* |grep xymon K01xymon-client K01xymon-client S21xymon-client S21xymon-client S21xymon-client S21xymon-client K01xymon-client
On rajoute dans /usr/lib/xymon/client/ext, les executables des modules supplémentaires ou des liens vers ceux-ci :
(Rq : pour l'instant ce n'est pas uniforme sur toutes les machines + modifier les liens pour enlever les références aux dates)
# cp -p /agata/tools/xymon/nfs.sh /usr/lib/xymon/client/ext/ # ln -s /agata/tools/xymon/ADL.sh /usr/lib/xymon/client/ext/ # ln -s /agata/tools/xymon/file_host.sh /usr/lib/xymon/client/ext/ # ln -s /agata/tools/xymon/ggp_check-20151216.bash /usr/lib/xymon/client/ext/ggp_check.bash # ln -s /agata/tools/xymon/xdev_check-20151216.bash /usr/lib/xymon/client/ext/xdev_check.bash # ln -s /agata/tools/xymon/xilinx_check-20151216.bash /usr/lib/xymon/client/ext/xilinx_check.bash
On rajoute la configurations des différents modules dans /etc/xymon/clientlaunch.cfg :
# # The clientlaunch.cfg file is loaded by "xymonlaunch". # It controls which of the Xymon client-side modules to run, # (both the main client "xymonclient.sh" and any client-side # extensions); how often, and with which parameters, options # and environment variables. # # Note: On the Xymon *server* itself, this file is normally # NOT used. Instead, both the client- and server-tasks # are controlled by the tasks.cfg file. # # msgcache is used for passive clients, that cannot connect # directly to the Xymon server. This is not the default # setup, so this task is normally disabled. [msgcache] DISABLED ENVFILE $XYMONCLIENTHOME/etc/xymonclient.cfg CMD $XYMONCLIENTHOME/bin/msgcache --no-daemon --pidfile=$XYMONCLIENTLOGS/msgcache.pid LOGFILE $XYMONCLIENTLOGS/msgcache.log # The main client task [client] ENVFILE $XYMONCLIENTHOME/etc/xymonclient.cfg CMD $XYMONCLIENTHOME/bin/xymonclient.sh LOGFILE $XYMONCLIENTLOGS/xymonclient.log INTERVAL 5m [xilinx] ENVFILE /usr/lib/xymon/client/etc/xymonclient.cfg CMD $XYMONCLIENTHOME/ext/xilinx_check.bash INTERVAL 5m LOGFILE $XYMONCLIENTLOGS/xilinx.log [xdev] ENVFILE /usr/lib/xymon/client/etc/xymonclient.cfg CMD $XYMONCLIENTHOME/ext/xdev_check.bash INTERVAL 5m LOGFILE $XYMONCLIENTLOGS/xdev.log [xggp] ENVFILE /usr/lib/xymon/client/etc/xymonclient.cfg CMD $XYMONCLIENTHOME/ext/ggp_check.bash INTERVAL 5m LOGFILE $XYMONCLIENTLOGS/ggp.log [nfs] ENVFILE /usr/lib/xymon/client/etc/xymonclient.cfg CMD /usr/lib/xymon/client/ext/nfs.sh INTERVAL 5m LOGFILE $XYMONCLIENTLOGS/nfs.log [hosts] ENVFILE /usr/lib/xymon/client/etc/xymonclient.cfg CMD /usr/lib/xymon/client/ext/file_host.sh INTERVAL 5m LOGFILE $XYMONCLIENTLOGS/file_host.log [adl] ENVFILE /usr/lib/xymon/client/etc/xymonclient.cfg CMD /usr/lib/xymon/client/ext/ADL.sh INTERVAL 5m LOGFILE $XYMONCLIENTLOGS/ADL.log include /var/run/xymon/clientlaunch-include.cfg
On change le groupe de /var/log/messages, surveillé par xymon :
chgrp xymon /var/log/messages
Et dans /etc/logrotate.d/rsyslog :
postrotate invoke-rc.d rsyslog reload > /dev/null chgrp xymon /var/log/messages endscript
On démarre le service :
/etc/init.d xymon-client start
- Logiciels devant être installés sur les Anodes :
dstat lsb-release nfs-common ntp openssh-server pem rsync screen tmux vim
+ build-essential emacs24-nox emacs24-el file libusb libusb-dev linux-headers-amd64 locate libmagic-dev mercurial nedit tmux usbutils ?
- Logiciels pouvant être installés sur les Agata-visu:
- Logiciels pouvant être installés sur les Agata-analys :
- Logiciels pouvant être installés sur les knode :
- Logiciels à installer sur toutes les machines :
dstat lsb_release ntp vim xymon-client tmux vim