Domande? Problemi?

Iscriviti al Google group:

isi-checkup

Esiste una esperienza di laboratorio sull’uso di Isi-checkup

Cos’è

isi-checkup è la suite di diagnostica del progetto ReteISI. Nasce con lo scopo di rilevare e notificare i problemi di configurazione più comuni. Viene costantemente aggiornata al fine di permettere di indentificare un numero sempre crescente di errori. Molto importanti ed apprezzati, sono quindi tutte le segnalazioni di problemi non coperti dalla Suite, fatte in mailing list Rete ISI. Segnalazioni che si tradurranno con tutta probabilità in un nuovi test.

Cosa non è

Non è una tool di correzione degli errori: effettua checkup, non fix!

Installazione

Chi non lo avesse già installato potrà farlo, come root, con un semplice:

apt-get install isi-checkup

Le componenti

Il sistema è composto principalmente da:

  • test
  • template
  • file di esclusione : /etc/isi/checkup/exclude

I test

I test presenti nel sistema, scritti principalmente in codice python( e qualcuno in shell script), sono contenuti in /usr/share/isi-checkup/tests/.

Ogni script di test ha un nome che indica, con la prima parte numerica, la sua appartenenza ad un particolare gruppo. I gruppi definiti ad oggi (release in hg numero 119) sono i seguenti :

  • test di sistema ( range 0 ~ 499 )
  • test utente ( range 500 ~ 700 )
  • test locali ( range 701 ~ 2000)
  • tutti i test ( range 0 ~ 2000)

I test di sistema si occupano principalmente di rilevare problemi di configurazione legati al boot, file di configurazioni mancanti, etc...

I test utente effettuano una serie di controlli concentrandosi esclusivamente su un singolo utente o tutti gli utenti. Viene controllato, ad esempio, che l’utente possa leggere, scrivere od attraversare determinati file o cartelle. Sarà capitato a tutti di incappare nel famigerato messaggio di windows “Impossibile trovare il profilo”. Quasi sempre, questo problema è dovuto all’impossibilità dell’utente di accedere ad alcuni file della propria home directory.

I test locali sono test che un utente può decidere di aggiungere per conto proprio. Andranno aggiunti in /etc/isi/checkup e dovranno appartenere al range (701 ~ 2000).

Per lanciare un particolare gruppo di test, basterà invocare il comando isi-checkup con la relativa opzione. Si faccia riferimento all’help del comando per le opzioni da usare.

Creare un proprio test

Come detto in precedenza, per test si intende un piccolo codice (una script bash o una funzione in python) che effettua un singolo controllo e ritorna un valore chiaro:

  • per una script di shell: 0 in caso il test sia passato e un valore positivo se il test non è passato
  • per una funzione in python: True se il test è passato ed un errore opportuno (ereditato da IsiCheckupError) in caso contrario

Esempio di test in bash: /etc/isi/checkup/tests-enabled/test-smbd.sh

#!/bin/bash

if pgrep -x smbd ; then
   exit 0
else
   echo "il processo smbd non sta girando"
   exit 1
fi

I template

In /usr/share/isi-checkup troveremo invece i file template *.conf. Cos’è un template? Un template è un semplice file di testo in cui vengono elencati tutti i test da attivare all’attivazione del profilo. Questo permette, tramite la semplice preparazione di template differenti di coprire le necessità di differenti tipologie di macchine (server ReteISI, server LTSP, firewall, client Linux). Al momento esiste un solo template che è quello del server ReteISI.

Volendo, ad esempio, attivare tutti i test contenuti nel profilo di default isi.conf

isi-checkup -t isi

Nota

  • Il template isi.conf copre la totalità dei test presenti.
  • Non modificate i file di template, il file viene sovrascritto ad ogni aggiornamento della suite e le vostre modifiche andranno perdute.

Il file exclude

E’ possibile evitare che un test venga lanciato accodandone il nome al file /etc/isi/checkup/exclude.

Nota

Con nome ci si riferisce al nome del file privo della parte numerica. es. squid_run_on_boot.py

E’ inoltre possibile copiare-incollare direttamente dal report a due colonne di isi-checkup.

Esempio:

I seguenti test non sono andati a buon fine

squid_run_on_boot.py                     BootProcessSquid

(notare la riga relativa al test squid_run_on_boot.py fallito)