Activation de l’annuaire d’entités asabiyya

Introduction

L’entité annuaire asabiyya se charge de parcourir régulièrement les entités qu’elle connaît à la recherche de nouvelles localisations d’entités et de nouvelles entités.

Elle est validée par puppetmaster.

Description

Toutes les entités ne connaissent pas toutes les autres entités, et encore moins leur localisation à tout instant. Le rôle de l’annuaire est de référencer des ressources ainsi que leurs emplacements. Ici les ressources sont des entités et leurs emplacements sont leurs localisations sur le réseau numérique.

L’annuaire est dans nebule la première étape du lien social entre toutes les entités.

L’entité annuaire asabiyya se met à jour à intervalle régulier. Aujourd’hui, l’intervalle est de une heure. Pour cela, elle commence par récupérer chez toutes les entités qu’elle connaît les liens de l’objet nebule/objet/entite/localisation . Ensuite, à partir de ces liens qu’elle parcourt, elle recherche uniquement les liens spécifiant une localisation d’entité et en extrait l’identifiant de l’entité ainsi que l’identifiant de la localisation. L’objet de chaque entité ainsi identifiée (c’est à dire la clé publique) est téléchargé si sont type-mime est application/x-pem-file. Pour les localisations, c’est à la fois les liens et l’objet contenant la localisation qui sont téléchargés si le type-mime de l’objet est text/plain. Le type-mime étant un lien, le fait de synchroniser en premier les liens d’un objet permet de connaître sont type-mime sans le télécharger.

Scripts

Le script utilisé pour ce travail (en bash):

#!/bin/bash
# Robot automatique de synchronisation d'entite annuaire.
# Licence GNU GPL
# Projet nebule - www.nebule.org - Stephane DENDIEVEL
# robot_sync_ann.sh

cd /home/asabiyya
. ./robot.env.sh
. ./lib_nebule.sh 

[ -f "$nebule_temprep/activRobotSyncAnn" ] && exit 0
[ -f "$nebule_temprep/disabledRobot" ] && exit 0
touch "$nebule_temprep/activRobotSyncAnn"

#nebSyncLiens $nebule_publ_entite

# synchro de tous les objets dont depend l'entite
LOCOBJ=$(_crcalc "nebule/objet/entite/localisation")
nebSyncLiens $LOCOBJ
nebReadObjLinks $LOCOBJ | while read L
do
 # [ "$(_readfield $L 7)" == "$LOCOBJ" ] && nebSyncLiens $(_readfield $L 5)
  [ "$(_readfield $L 7)" == "$LOCOBJ" ] && 
      [ "$(nebReadObjTypeMime $(_readfield $L 5))" == "application/x-pem-file" ] && nebSyncObjet $(_readfield $L 5)
  [ "$(_readfield $L 7)" == "$LOCOBJ" ] && nebSyncLiens $(_readfield $L 6)
  [ "$(_readfield $L 7)" == "$LOCOBJ" ] && 
      [ "$(nebReadObjTypeMime $(_readfield $L 6))" == "text/plain" ] && nebSyncObjet $(_readfield $L 6)
done

rm "$nebule_temprep/activRobotSyncAnn"

Les variables d’environnement :

nebule_nolog=0
nebule_progrep="/home/asabiyya"
nebule_baserep="/home/asabiyya/pub"
nebule_privrep="/home/asabiyya/priv"
nebule_temprep="/home/asabiyya/tmp"
nebule_logfile="/home/asabiyya/neb.log"
nebule_version="version/1.1"
nebule_hashalgo="sha256"
nebule_symalgo="aes-256-ctr"
nebule_keylen="256"
nebule_compalgo="bz2"
nebule_suivi=0
nebule_datelog=1
nebule_nolinkverify=0
nebule_timeout=2
nebule_linkcheck=1

Sauf cas particuliers, cette entité ne valide aucune localisation par elle-même. Les localisations sont validées (et invalidées) par des entités tierces.

Activation

Le script est activé par CRON depuis lundi. Le script n’est vraiment fonctionnel que depuis mardi soir.

Suite à l’activation du script, l’entité à commencé à parcourir régulièrement les autres entités. Mais ne connaissant que les quelques entités en nebule.org, rien de nouveau n’a été découvert. Puis en ajoutant explicitement l’entité stephane.nebule.fr, elle à découvert automatiquement au bout d’une heure toutes les autres entités qui y sont rattachées.

Mission accomplie.

Liens

- wiki.nebule.org – Documentation_-_Implémentations_de_références_-_bash_-_Annuaire

One Response to “Activation de l’annuaire d’entités asabiyya”

  1. Stéphane Says:

    La localisation rattachée à une entrée est une fonction historique des annuaires. Aujourd’hui, les annuaires référencent des propriétés pour des entrées, et la localisation n’est qu’une propriétés parmis d’autres.