Dans la série sur ISIM6, j'avance sur la mise en place via un processus de migration en 2 étapes (sur une machine différente).
La migration elle-même s'est correctement passée, et je voulais passer le dernier Fix Pack ISIM, histoire d'avoir la dernière version.
Autant dire que ça ne s'est pas passé tout seul. Mais au final ça fonctionne, après quelques réglages. Le fait que l'on lance les FixPack en mode silencieux / scriptés nécessite également des adaptations.
Les problèmes rencontrés sont de plusieurs types :
- versions de logiciels de la stack
- espace disque libre insuffisant
- options à désactiver dans les installations
Voyons tout cela en détail
Versions des logiciels
L'installation du FixPack se fait via l'utilitaire UpdateInstaller de WebSphere. J'ai donc du passer en version 7.0.0.35 de l'UpdateInstaller, et de WebSphere également tant qu'à faire.
La page http://www14.software.ibm.com/webapp/set2/flrt/homeFC?oc=SSRMWJ&vrmf=6… permet d'avoir les composants techniques qui sont requis ou compatibles avec la version ISIM 6.0.0.4.
Nous restons pour l'instant sur une version 7, car il est prévu de faire la migration en 2 étapes : ITIM 5.1 / WAS 7 vers ISIM 6 / WAS 7, puis lorsque tout tournera correctement (y compris nos adaptateurs spécifiques), nous ferons peut-être le passage ISIM 6 / WAS 8.5.
L'intérêt de passer en WAS 8.5 consiste essentiellement, à ce ce que j'en vois, au nouvel Identity Service Center, mais nous ne savons pas si ce sera intéressant dans le contexte du client.
Pour WebSphere, nous avons donc :
Installed Product -------------------------------------------------------------------------------- Name IBM WebSphere Application Server - ND Version 7.0.0.35 ID ND Build Level cf351436.02 Build Date 9/9/14 Architecture AMD (64 bit)
Espace disque
C'est de ce côté que j'ai le plus galéré. Lors de l'installation du FixPack, un contrôle est effectué sur l'espace disque nécessaire, avec un arrêt en cas de problème :
There is insufficient free disk space on the system: /product/itim: Required: 205 MB Available: 57 MB /product/install/IBM/software/temp: Required: 100 MB Available: 2595 MB /product/websphere/.ibm/.nif: Required: 1 MB Available: 497 MB
OK, sauf que je disposais bien de cet espace, en nettoyant un peu le répertoire /product/itim des fichiers *.partial.ear.
Au final, et après de multiples tentatives, j'avais toujours le message :
(23 mars 2015 16:19:22), Install, com.ibm.ws.install.ni.ismp.installtoolkitbridge.ISMPInstallToolkitBridgeForNIFramework, wrn, Config action failed: UpdateITIMEar - /product/itim/properties/version/nif/config/install/was/UpdateITIMEar.ijc (23 mars 2015 16:19:23), Install, com.ibm.ws.install.ni.ismp.actions.InstallNIFMaintenance, err, Configuration failed. The config action that failed was: UpdateITIMEar. (23 mars 2015 16:19:23), Install, com.ibm.ws.install.ni.ismp.actions.InstallNIFMaintenance, err, CWUPI0013E: Une opération de configuration a échoué. Il s'agit de : UpdateITIMEar. (23 mars 2015 16:19:23), Install, com.ibm.ws.install.ni.ismp.actions.InstallNIFMaintenance, err, com.ibm.ws.install.ni.framework.NIFException: CWUPI0013E: Une opération de configuration a échoué. Il s'agit de : UpdateITIMEar. at com.ibm.ws.install.ni.framework.install.NIFPackageApplicationPlugin.runInstallConfigActions(NIFPackageApplicationPlugin.java:805) at com.ibm.ws.install.ni.framework.install.NIFPackageApplicationPlugin.execute(NIFPackageApplicationPlugin.java:125) at com.ibm.ws.install.ni.framework.satellites.DeploySatellitesPlugin.configureSatellites(DeploySatellitesPlugin.java:254)
J'ai ouvert un Service Request auprès d'IBM, qui m'a orienté vers 2 causes : le réglage du timeout SOAP (déjà positionné à 2400 secondes), et un manque d'espace libre sur /tmp.
J'ai donc ajouté les options décrites dans l'article
http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg21299366 pour utiliser un dossier temporaire.
Au final, la commande ressemble à :
$WAS_UPD_DIR/update.sh -options $FPrespFile -silent -D java.io.tmpdir $PKGDIR/temp -D temp.dir $PKGDIR/temp
Le problème d'espace sur /tmp était résolu, mais j'avais toujours les mêmes erreurs. En regardant les logs plus précisément, je suis tombé sur /product/itim/logs/update/6.0.0-ISS-SIM-FP0004.install/ITIMConfigActions.log :
wsAdminExec.singleserver-unix: [exec] WASX7209I: Connected to process "server1" on node node01 using SOAP connector; The type of process is: UnManagedProcess [exec] WASX7303I: The following options are passed to the scripting environment and are available as arguments that are stored in the argv variable: "[ITIM, /product/itim/ITIM.partial.ear, SS]" [exec] Installed Applications: [exec] DefaultApplication [exec] ITIM [exec] ivtApp [exec] query [exec] Update of ITIM has started. [exec] ADMA5058I: Application and module versions are validated with versions of deployment targets. [exec] ADMA5009I: Extracting application archive to /product/websphere/V7.0/AppServer/profiles/AppSrv01/wstemp/wstemp/app_14c4b48053d/ext. [exec] ADMA5065E: Exception in FileMergeTask org.eclipse.jst.j2ee.commonarchivecore.internal.exception.SaveFailureException: Failed to save [ ui_logic.jar ]. [exec] ADMA0185W: An update application operation failed and the configuration session could not be restored to its state before the operation was initiated. The configuration session is in an inconsistent state, and changes made in the session should be discarded. [exec] ADMA5011I: The cleanup of the temp directory for application ITIM is complete. [exec] Update of ITIM has ended. [exec] WASX7017E: Exception received while running file "/product/itim/properties/version/nif/config/install/was/updateEar.py"; exception information: com.ibm.ws.scripting.ScriptingException: WASX7418E: Application update for ITIM failed: see previous messages for details.
Il s'agit donc bien d'un problème d'espace disque, a priori sur le file system /product/websphere. En regardant le fichier /product/websphere/V7.0/AppServer/profiles/AppSrv01/logs/server1/SystemErr.log, on trouve d'ailleurs :
[3/24/15 11:16:11:114 CET] 00000025 SystemErr R org.eclipse.jst.j2ee.commonarchivecore.internal.exception.SaveFailureException: Failed to save [ ui_logic.jar ] Stack trace of nested exception: java.io.IOException: No space left on device
Pour déterminer la taille nécessaire, j'ai bricolé un script qui scrute la taille du système de fichier toutes les secondes.
#!/bin/bash X=1 while [ $X > 0 ] ; do date >> Space.lst df -h . >> Space.lst sleep 1 done
Ceci m'a permis d'identifier, après avoir ajouté de l'espace sur la partition, qu'il fallait un peu plus de 800 MB libres sur la partition utilisée par WebSphere.
Heureusement que nous utilisons LVM et des volumes logiques. Du coup, pour ajouter 500Mo, on fait :
lvextend -L+500M /dev/mapper/productvg-websphere resize2fs /dev/mapper/productvg-websphere
Au final, il nous a donc fallu :
- 300 MB sur /product/itim
- 800 MB sur /product/websphere
- 1000 MB sur /tmp (ou un autre répertoire temporaire)
Tout ça pour avoir au final :
cat /product/itim/properties/version/ITIM.product <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE product SYSTEM "product.dtd"> <product name="IBM Security Identity Manager"> <id>ITIM</id> <version>6.0.0.4</version> <build-info date="11/17/2014" level="956"/> </product>
Options à désactiver / réglages
L'installation ISIM 6 a également demandé de créer / modifier certains fichiers.
Création de 2 fichiers pour passer la fenêtre de licence et déployer automatiquement le fichier eba :
- /product/itim/config/was/.sui_enabled
- /product/itim/license/.fp2_licr
Modification du fichier /product/itim/data/pim.properties pour y mettre :
pim.install.graphics.enabled=false
Copie du fichier backdoors.properties en backdoors_user.properties et modifications :
cp /product/itim/properties/version/nif/config/install/backdoors.properties /product/itim/properties/version/nif/config/install/backdoors.properties
Modifier plusieurs lignes :
skip.lapandsuiacceptanceprompt=false
skip.exportear=false
en :
skip.lapandsuiacceptanceprompt=true
skip.exportear=true