Project

General

Profile

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 pem
Mot 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