Configuration ErosDb

Pour pouvoir utiliser les outils ErosDb, il faut d'une part définir le contexte d'exécution, c'est-à-dire les différentes variables d'environnement indiquant l'emplacement des exécutables et des librairies; et d'autre part enregistrer les mots de passe nécessaire à l'accès à Irods et à la base de données.

L'initialisation du contexte doit être fait pour chaque session, c'est-à-dire à chaque connexion à une station de travail.

A l'inverse, la déclaration des mots de passe d'accès à la base de données et à Irods ne se fait qu'une fois par site - un site étant un groupe de machines partageant les disques de l'utilisateur.

Contexte d'utilisation

A Lyon, le script est setup.sh dans le répertoire softs/ErosDbIII.

% source /sps/eros/softs/ErosDbIII/setup.sh

Il est nécessaire d'utiliser l'instruction source car les variables déclarées par ce script doivent être définies dans le contexte du processus de l'utilisateur.

A ce stade, seul le shell Bash est supporté. Il est possible que le script d'initialisation fonctionne avec d'autres shells de la mouvante KSH/ZSH, mais ces utilisations n'ont pas été validées.

Le script ne fonctionne pas avec CSH/TCSH.

Paramètres d'accès à Irods

Cette étape permet de définir les paramètres permettant d'accéder directement aux fichiers conservés dans Irods grâce aux iCommands.

Bien qu'optionnelle, cette étape est fortement recommandée.

A Lyon, les variables d'environnement pour utiliser Irods sont définies par le script d'initialisation d'ErosDb. Mais la déclaration des paramètres d'accès doit être faite grâce à la commande iinit. Cette opération ne se fait qu'une seule fois par site.

% iinit
One or more fields in your iRODS environment file (irods_environment.json) are
missing; please enter them.
Enter the host name (DNS) of the server to connect to:   ccirods.in2p3.fr
Enter the port number:                                   5565
Enter your irods user name:                              erosuser
Enter your irods zone:                                   eros
Those values will be added to your environment file
(for use by other i-commands) if the login succeeds.

Enter your current iRODS password:                       <<no echo>>

Le mot de passe est indiqué par le responsable du groupe.

On peut vérifier le résultat grâce à ienv:

% ienv
irods_version - 4.2.3
irods_session_environment_file - /pbs/home/a/albert/.irods/irods_environment.json.2911
irods_environment_file - /pbs/home/a/albert/.irods/irods_environment.json
irods_host - ccirods.in2p3.fr
irods_user_name - erosuser
irods_zone_name - eros
irods_port - 5565

Note: Irods enregistre le mot de passe dans un fichier encodé lié à l'utilisateur et au site. Il faut refaire cette étape sur les différents sites où Irods doit être utilisé, mais pas_ sur chaque machine du Centre de calcul NI pour chaque session - le mot de passe étant conservé d'une session à la suivante.

Déclaration Jargon

Heureusement (!) le mot de passe Irods n'est pas facile à inverser... ErosDb n'y a donc pas accès. Pour permettre un accès transparent à l'espace Irods au travers des commandes ErosDb, il faut lui transmettre le mot de passe via un second fichier, codé cette fois par ErosDb. Tout comme pour la configuration Irods, cette opération n'est faite qu'une fois par site.

La commande est jrun JargonNIOConfigure:

 % jrun JargonNIOConfigure -verb
 02-May-2021 12:31 (INFO) Reading current Irods parameters
 Irods server name (default: ccirods.in2p3.fr):               <return>
 Irods server port (default: 5565):                           <return>
 Irods zone (default: eros):                                  <return>
 Irods user name (default: erosuser):                         <return>
 User home directory in Irods (default: /eros/home/erosuser): <return>
 Irods default storage resource:                              <return>
 Irods password (no defaulted):                               <<no echo>>
 02-May-2021 12:31 (INFO) Checking Irods connexion...
 02-May-2021 12:31 (INFO) Saving Irods parameters

JargonNIOConfigure lit les paramètres précédemment saisis, ce qui permet de simplement répondre <return> à toutes les questions sauf pour le mot de passe. Sous UNIX, la réponse n'est pas affichée.

JargonNIOConfigure vérifie les paramètres saisis en établissant une connexion vers le serveur.

Accès à la base de données

Les paramètres d'accès à la base de données sont conservés dans un dépôt Irods, protégé par des listes d'autorisation liées au compte Irods de l'utilisateur. Il est donc indispensable de procéder à la configuration d'Irods (voir Déclaration Irods pour ErosDb) avant de pouvoir procéder à cette étape.

Les paramètres d'accès sont recopiés dans un dépôt local, décodés puis recodés avec une clé dépendant du site et de l'utilisateur.

Le mot de passe permettant d'accéder aux paramètres d'accès à la base de données est transmis par l'administrateur du groupe. Ce mot de passe est différent du mot de passe Irods.

La commande est jrun AuthorizationManager install:

% jrun AuthorizationManager -verb install
02-May-2021 14:56 (INFO) User repository /pbs/home/a/albert/.erosdb/authorizations
02-May-2021 14:56 (INFO) Reference repository /eros/config/authorizations

Decode password:    <<no echo>>

02-May-2021 14:56 (INFO) Installing authorization user@erosdb
02-May-2021 14:56 (INFO) Creating directory /pbs/home/a/albert/.erosdb/authorizations
02-May-2021 14:56 (INFO) Creating directory /pbs/home/a/albert/.erosdb/authorizations/erosdb
02-May-2021 14:56 (INFO) Creating directory /pbs/home/a/albert/.erosdb/authorizations/erosdb/user
02-May-2021 14:56 (INFO) Saving authorization user@erosdb as /pbs/home/a/albert/.erosdb/authorizations/erosdb/user/authorization.xml

Dans cet exemple, le compte Irods utilisé est erosuser, qui n'a qu'un droit d'accès en lecture à la base de données.