Coregrenouille

Sommaire

Qu'est ce que c'est ?

coregrenouille est la première réécriture en Ocaml de l'agent de mesure partant du code de camlgrenouille. Il est désormais remplacé par le système de mesure grenouille

Installation

Depuis les sources

En pré-requis, il est nécessaire d'avoir OCaml installé en version 3.11 ou supérieure.

git clone git://git.grenouille.com/coregrenouille.git coregrenouille-git
cd coregrenouille-git
make depend
make all
cp user.config.linux user.config

ou

cp user.config.mac user.config

en fonction de votre système.

La syntaxe du fichier de configuration est la même que celle de camlgrenouille.

Lancer l'agent ensuite :

./coregrenouille 

Le fichier de log est coregrenouille.log dans le répertoire de travail.

NAS synology

Adaptation du client grenouille pour fonctionner sur les NAS Synology. Testé sur un CS407.

Pré-requis

  • Si ce n'est pas déjà fait, commencez par vous inscrire

Nota: Porter une attention à sélectionner le bon débit et le bon FAI de l'abonnement que vous avez souscrit.

  • Sur votre NAS :
    • avoir installé IPKG

Installation de coregrenouille

  • Connexion ssh ou telnet en root sur votre nas.
  • Aller dans le répertoire root
  • Recuperation du script d'installation
 wget http://devel.grenouille.com/pub/coregrenouille/scripts/coregrenouille_install.sh
  • Affectation des droit d’exécution
 chmod 744 coregrenouille_install.sh
  • Executer le script
 ./coregrenouille_install.sh
  • le script se charge de :
    • vérifier l'utilisateur en cours
    • arrêt de coregrenouille ou pygrenouille si application en cours
    • vérifier la présence de git et ocaml sur le nas et si besoin de les installer
    • récupérer les sources de coregrenouille sur le serveur
    • compiler l'application
    • installer l'application
    • demande la saisi des identifiants pour la création du fichier de configuration
    • lancer l'application
  • Lors du prochain démarrage le script /opt/etc/init.d/S99coregrenouille.sh s'exécutera automatiquement au boot de votre Synology.

Désinstallation de coregrenouille

  • Arrêt de l'application
/opt/etc/init.d/S99coregrenouille.sh stop
  • supprimer le répertoire
rm -r /opt/local/coregrenouille
  • supprimer le fichier
rm /opt/etc/init.d/S99coregrenouille.sh
  • supprimer les fichiers log
rm /var/log/console_coregrenouille.log
rm /var/log/coregrenouille/coregrenouille.log

et c'est tout :)

Script de démarrage

  • Le lancement de la grenouille est effectué automatiquement lors du démarrage du NAS Synology.
  • Le script de lancement accepte les paramètres suivants : start, stop, restart.
    • /opt/etc/init.d/S99coregrenouille.sh start > démarrage de la grenouille
    • /opt/etc/init.d/S99coregrenouille.sh stop > arrêt de la grenouille
    • /opt/etc/init.d/S99coregrenouille.sh restart > arrêt puis démarrage de la grenouille.

Répertoire d'installation

Les scripts se trouvent ici /opt/local/coregrenouille/

Répertoires des logs

  • /var/log/coregrenouille contient le fichier coregrouille.log
  • /var/log contient le fichier console_coregrenouille.log journal console de votre grenouille

Script de setup

  • En cas de problème avec votre ID/password le script de setup se trouve dans ici : /opt/local/coregrenouille/setup_coregrenouille.sh

Routeur Netgear WNR3500L + Firmware Tomato

Adaptation du client grenouille pour fonctionner sur un routeur muni d'un Firmware Tomato. Testé sur un Netgear WNR3500L + Tomato Firmware v1.28.7440 MIPSR2-Toastman K26 USB Ext.

Prérequis

  • un routeur NETGEAR WNR3500L avec prise USB
  • un firmware Tomato (le mien est le suivant: Tomato Firmware v1.28.7440 MIPSR2-Toastman K26 USB Ext)
  • un support de stockage USB (disque dur ou clé)
  • un PC, sous linux de préférence car il faut créer des partitions en ext3/ext2 sur le support USB ou sous Windows avec un outil de partitionnement gérant les formats de partition Linux ([EASEUS Partition Master])

Installation de OPTWARE

(Source: http://tomatousb.org)

Formatage du support USB

Tout d’abord il faut créer une partition sur le support USB pour pouvoir y installer OPTWARE. OPTWARE est un gestionnaire de dépôt de packages, ce qui va permettre d’installer les packages manquants sur le routeur.

Pour partitionner votre disque, vous pouvez utiliser Gparted sur un environnement linux, c’est simple et ça fait parfaitement le travail. Sinon, si vous êtes sous Windows, vous pouvez utiliser EASEUS Partition Master.

Les recommandations pour l’installation de OPTWARE sont les suivantes:

Cas d’un disque dur USB:

  • une partition EXT3 d’une taille maximale d’1 Gb avec le label “optware”
  • le reste du disque dur pouvant servir d’espace de stockage de données.

Cas d’un support mémoire flash (clé USB par exemple):

  • une partition EXT3 d’une taille maximale d’1 Gb avec le label “optware”
  • le reste du disque dur pouvant servir d’espace de stockage de données.

Dans mon cas, j’ai un disque dur USB de 500Go que j’ai partitionné de cette façon:

  • Partition 1: 1Go, ext3, label “optware”
  • Partition 2: 9 Go, ext3, label “optwaredata” (au cas ou je souhaite installer un serveur web plus tard)
  • Partition 3: 490Go, NTFS, qui me sert de NAS personnel.
Configuration du routeur
  1. Connectez-vous sur l’interface de configuration (généralement http://192.168.1.1)
  2. Allez dans le menu “USB and NAS” » “USB Support”
  3. Activez "Core USB Support", "USB 2.0 Support", "USB Storage Support", All "File Systems Support", et "Automount",
  4. Allez ensuite dans “Administration” » “Scripts” » “Init”
  5. Ajoutez la ligne suivante et cliquez sur [SAVE]:
echo "LABEL=optware /opt ext3 defaults 1 1" >> /etc/fstab

Cette dernière étape permet d’indiquer au firmware de monter automatiquement la partition labelisée “optware” dans /opt.

Veillez à changer ext3 en ext2 si vous avez formaté votre support USB en ext2.

Vérification de la configuration
  1. Redémarrez le routeur
  2. Branchez le support USB si ce n’est pas fait
  3. Dans l’interface Web, allez dans “USB and NAS” » “USB Support” » “Attached Devices” et vérifiez la liste.
  4. Vous devriez voir le support USB et vos différentes partitions montées. Vérifiez que vous avez la ligne suivante:
Partition 'optware' ext3 (XX MB / YY MB free) is mounted on /opt
Installation de OPTWARE

Si tout est correctement monté, connectez-vous en SSH sur le routeur et lancez les commandes suivantes l’une après l’autre:

wget http://tomatousb.org/local--files/tut:optware-installation/optware-install.sh -O - | tr -d '\r' > /tmp/optware-install.sh
chmod +x /tmp/optware-install.sh
sh /tmp/optware-install.sh
Mise à jour automatique des packages installés (optionnel)

Il est possible de programmer la mise à jour automatique des packages installés en entrant la commande suivante dans un des “Custom” disponible au menu “Administration” » “Scheduler” :

ipkg update | logger -t Optware

Configurez ensuite comme bon vous semble la fréquence de mise à jour puis cliquez sur [SAVE].

Compilation de COREGRENOUILLE

Maintenant que OPTWARE est sur le routeur, il est possible d’installer les packages nécessaires à la compilation de COREGRENOUILLE.

Installation des packages prérequis

Afin de compiler COREGRENOUILLE il faut installer les packages suivants :

  • builroot
  • git
  • make
  • ncurses
  • ocaml

Pour cela, en étant connecté en SSH sur le routeur, entrez la commande suivante :

ipkg install buildroot git make ncurses ocaml
Récupération des sources

Lorsque tout est installé :

  • Revenez sur la fenêtre SSH
  • Placez-vous dans le dossier personnel de l’utilisateur « root » qui va être notre endroit de compilation :
cd /tmp/home/root
  • Récupérez les sources avec la commande suivante :
git clone git://git.grenouille.com/coregrenouille.git coregrenouille
Compilation
  • Aller dans le répertoire nouvellement créé :
cd /tmp/home/root/coregrenouille
  • Depuis ce répertoire, compilez coregrenouille en tapant les commandes suivantes l’une après l’autre :
make depend
make coregrenouille

Installation de COREGRENOUILLE

Déplacement des fichiers compilés

Maintenant il reste à déplacer les fichiers compilés dans un répertoire persistant de /opt.

  • toujours depuis /tmp/home/root/coregrenouille, créez le répertoire de destination :
mkdir /opt/local
mkdir /opt/local/coregrenouille
  • copiez le répertoire de plugins et son contenu :
cp -r  plugins /opt/local/coregrenouille/.
  • copiez l’application coregrenouille vers le répertoire d’installation :
cp coregrenouille /opt/local/coregrenouille/.
  • affectez les droits d’exécution à coregrenouille :
chmod +X /opt/local/coregrenouille/coregrenouille
  • copiez le fichier de configuration
cp user.config.linux /opt/local/coregrenouille/user.config
Édition du fichier de configuration
  • rendez-vous dans le répertoire d’installation :
cd /opt/local/coregrenouille/
  • Éditez le fichier de configuration :
vi user.config
  • Éditez les lignes suivantes :
username VOTREUSERNAME
password VOTREMOTDEPASSE
interface VOTREINTERFACE
  • Vérifiez que les chemins des différentes applications listées dans la suite du fichier de configuration sont exacts. Dans mon cas, j’ai dû corriger le chemin de « awk ». Je vous copie la partie de mon fichier de configuration :
# chemin de ifconfig
ifconfig /sbin/ifconfig
# chemin de awk
awk /usr/bin/awk
# chemin de grep
grep /bin/grep
# chemin de cut
cut /usr/bin/cut
# chemin de ping
ping /bin/ping

Votre COREGRENOUILLE est maintenant installé et configuré.

Le fichier de log sera créé automatiquement lors du premier démarrage de COREGRENOUILLE. Vous le trouverez dans le dossier d’installation :

/opt/local/coregrenouille/coregrenouille.log
Démarrage automatique de COREGRENOUILLE

Il est possible de lancer automatiquement COREGRENOUILLE au démarrage du routeur.

  • Pour cela, créez tout d’abord le répertoire « config » dans le dossier /opt/etc/ :
mkdir /opt/etc/config
  • Ensuite, créez le script de démarrage qui se lancera dès que l’interface WAN sera up :
vi coregrenouille.wanup
  • Copier le contenu suivant (basé sur le script créé pour le NAS Synology):
#!/bin/sh
#####SCRIPT DE DEMARRAGE COREGRENOUILLE#####
COREGRENOUILLE_CONFIG_FILE="user.config"
COREGRENOUILLE_CMD="coregrenouille"
COREGRENOUILLE_PATH="/opt/local/coregrenouille"
# test si pas deja en cours
    encours=$(pidof $COREGRENOUILLE_CMD)
    if [ -n "$encours" ]
    then
    echo "Application $COREGRENOUILLE__CMD deja lancé"
    echo "PID : "$encours
    else
          cd $COREGRENOUILLE_PATH
echo "Demarrage - Application $COREGRENOUILLE_CMD"
$COREGRENOUILLE_PATH/$COREGRENOUILLE_CMD –f $COREGRENOUILLE_CONFIG_FILE &
    fi
  • Rendez le script exécutable :
chmod +x coregrenouille.wanup

Maintenant il faut créer le script (.autorun) qui lancera, dès le montage de la partition /opt, le script que vous venez de créer. Il est à placer à la racine de /opt.

  • Créer le fichier :
vi /opt/.autorun
  • Coller le contenu suivant :
#!/bin/sh
if [ -f /var/notice/wan ]; then
   for s in /opt/etc/config/*.wanup; do $s; done
   for s in /opt/etc/config/*.fire; do $s; done
fi
  • Rendez le script exécutable :
chmod +x /opt/.autorun
Arrêt de COREGRENOUILLE pendant l’arrêt du routeur (optionnel)

Si vous le désirez, vous pouvez ajouter un script permettant d’arrêter COREGRENOUILLE lors de l’arrêt du routeur.

  • Connectez-vous à l’interface d’administration web
  • Allez dans le menu “Administration” » “Script” » “Shutdown”
  • Copier le script ci-dessous et cliquez sur [SAVE]
##########ARRET DE GRENOUILLE##########
# test si en cours
 encours=$(pidof $COREGRENOUILLE_CMD)
 if [ -n "$encours" ]
 then
      echo "Arret de l'application $COREGRENOUILLE_CMD"
      echo "PID : "$encours
     kill -s9 $encours
 else
   echo "Rien a arreter"
 fi
De Wiki Grenouille.
Powered by MediaWiki
GNU Free Documentation License, sous les copyrights des membres de l