Aller au contenu principal

Ordonnanceurs < Les incontournables < Workload Automation Autosys Edition

Mettre en place un client Autosys 11.3 "très léger"

La nouvelle version d’Autosys est un peu plus complexe que la précédente, ceci étant principalement du aux composants qui ont été ajoutés. Pour bien comprendre les mécanismes, on va installer un autorep pour accéder à un serveur autosys.

E. Angenault

7 janvier 2011

 POPULARITE : 659 visites

Pour cet exercice, on part d’une machine sans agent autosys mais sur laquelle on dispose des SharedComponents et on commence par copier l’exécutable autorep à partir d’un serveur et on l’exécute :

./autorep
./autorep: error while loading shared libraries: libstart_rem.so: cannot open shared object file: No such file or directory

Un ldd sur la commande va nous permettre de récuperer la liste des bibliothèques utilisées par l’autorep :

ldd autorep
       linux-gate.so.1 =>  (0xffffe000)
       libdl.so.2 => /lib/libdl.so.2 (0x00988000)
       libpthread.so.0 => /lib/libpthread.so.0 (0x00a20000)
       libascmn.so => ./lib/libascmn.so (0xf7df8000)
       libascmn_ex.so => ./lib/libascmn_ex.so (0xf7dbf000)
       libasapi_resolv.so => ./lib/libasapi_resolv.so (0xf7d86000)
       libtx_api.so => ./lib/libtx_api.so (0xf7d58000)
       libapicom.so => ./lib/libapicom.so (0xf7c6b000)
       libauto.so => ./lib/libauto.so (0xf7c40000)
       libas_sdk.so => ./lib/libas_sdk.so (0xf7b32000)
       libascrypt.so => ./lib/libascrypt.so (0xf7b27000)
       libasutil.so => ./lib/libasutil.so (0xf7ace000)
       libmsgII.so => ./lib/libmsgII.so (0xf7a6d000)
       libaszlib.so => ./lib/libaszlib.so (0xf7a57000)
       libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0xf799e000)
       libm.so.6 => /lib/libm.so.6 (0x0098e000)
       libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xf7991000)
       libc.so.6 => /lib/libc.so.6 (0x00842000)
       /lib/ld-linux.so.2 (0x00824000)
       libstart_rem.so => not found
       libicui18n.so.38 => not found
       libicuuc.so.38 => not found
       libicudata.so.38 => not found
       libcasocket.so => /opt/CA/SharedComponents/Csam/SockAdapter/lib/libcasocket.so (0xf7950000)
       libcsamenc.so => /opt/CA/SharedComponents/Csam/SockAdapter/lib/libcsamenc.so (0xf794c000)

On crée un répertoire lib dans lequel on met les bibliothèques récupérées sur le serveur.

ls lib
libapicom.so        libascmn_ex.so  libascrypt.so  libasutil.so  libauto.so   libtx_api.so
libasapi_resolv.so  libascmn.so     libas_sdk.so   libaszlib.so  libmsgII.so

A partir de ce moment, on va commencer à définir l’environnement dans un fichier autosys.ksh qu’on sourcera :

AUTOSYS=. ; export AUTOSYS
aslibs=$AUTOSYS/lib

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$AUTOSYS/lib
export LD_LIBRARY_PATH

On relance la commande pour identifier les bibliothèques manquantes (le ldd n’étant pas récursif), la liste complète est la suivante :

libapicom.so        libascmn.so    libasutil.so  libicudata.so.38  libmsgII.so      libtx_remote.so
libasapi_resolv.so  libascrypt.so  libaszlib.so  libicui18n.so.38  libstart_rem.so
libascmn_ex.so      libas_sdk.so   libauto.so    libicuuc.so.38    libtx_api.so

Nouvel essai :

./autorep
Resource bundle is not available while looking for key="CAUAJM_E_10046".
Resource bundle is not available while looking for key="CAUAJM_E_50032".

Le strace va nous permettre d’identifier le problème :

strace ./autorep
...
stat64("./messages/autosys/en_GB.res", 0xffad3c30) = -1 ENOENT (No such file or directory)
stat64("./messages/autosys.dat", 0xffad39b0) = -1 ENOENT (No such file or directory)
stat64("./messages/autosys/en.res", 0xffad3c30) = -1 ENOENT (No such file or directory)
stat64("./messages/autosys.dat", 0xffad39b0) = -1 ENOENT (No such file or directory)
stat64("./messages/autosys/root.res", 0xffad3c30) = -1 ENOENT (No such file or directory)
stat64("./messages/autosys.dat", 0xffad39b0) = -1 ENOENT (No such file or directory)

On pourrait se passer des messages mais ce serait dommage pour la suite, on fait donc une copie du répertoire messages dans le répertoire courant, et on relance la commande :

root@parvl9013232:/home/autosys/eric# ./autorep
CAUAJM_E_80003 Bad environment: AUTOSERV not set. Exiting.

Ce qui est tout de même plus explicite surtout pour quelqu’un qui connait déjà autosys car on retouve les variables d’environnement des versios antérieures.

export AUTOUSER=.
export AUTOSERV=T00
./autorep
CAUAJM_E_10046 Could not open file:  ./config.T00
CAUAJM_E_50032 Environment/Configuration setup failed!

On ajoute ces variables d’environnement dans notre fichier de profile autosys.ksh.

Il ne reste plus qu’à rapatrier le fichier de configuration à partir du serveur pour pouvoir exécuter l’autorep et à copier les autres binaires utiles comme le JIL.

find .
.
./autorep
./autosys.ksh
./config.T00
./jil
./lib
./lib/libapicom.so
./lib/libicui18n.so.38
./lib/libtx_api.so
./lib/libasutil.so
./lib/libauto.so
./lib/libmsgII.so
./lib/libicudata.so.38
./lib/libasapi_resolv.so
./lib/libascmn.so
./lib/libicuuc.so.38
./lib/libaszlib.so
./lib/libtx_remote.so
./lib/libstart_rem.so
./lib/libascmn_ex.so
./lib/libas_sdk.so
./lib/libascrypt.so
./messages
./messages/autosys
./messages/autosys/root.res
./messages/autosys/en.res
./messages/autosys/en_US.res

Le document issu de http://Ordonnancement.org est mis à disposition sous les termes de la licence Creative Commons, vous pouvez l'utilisez dans vos documents à condition de citer l'auteur E. Angenault, vous êtes aussi libre de le modifier. Par contre, vous devez le redistribuer dans les mêmes conditions et la commercialisation ne peut se faire qu'avec l'accord de l'auteur.