Monthly Archives: décembre 2007

Installer Netweaver 2004s (2007) sur linux debian

Aide mémoire à l’installation d’un système SAP Netweaver 2004s avec java add-in en 32bits, pour un « BI usage ».
Ce document implique de connaitre linux.

En résumé:
– installer un serveur linux
– ajuster la configuration linux pour SAP
– installer le stack ABAP
– installer le stack Java
– faire les opérations de post-installation sur le serveur SAP
– monter le niveau de SPS abap puis java


1) Installer un système debian de base de la manière suivante :

Installer la version Debian stable du moment (ici c’est une debian 4.0r1 qui date d’aout 2007)
Partitionner le disque :
swap = RAM x2
/ = 10Go, l’installation de base fait moins de 500Mo
/sap = 10Go et créer le lien symbolique /usr/sap qui pointe sur /sap
/oracle = 50Go, l’installation NW04s basique fait 40Go
/sources = 20Go, contient les sources nécessaire à l’installation

Ne strictement rien installer avec tasksel ou dselect car ça rajoute une tonne de trucs inutiles.

Idéalement utiliser les volumes logiques pour gérer les partitions /sap et /oracle. Cela permet de redimensionner (surtout pour agrandir) à la demande les partitions, ce qui est très utile lorsqu’on ne connait pas encore la taille finale de l’installation. Le package est LVM2, à faire en fin d’installation de préférence.


2) Rajout de paquets génériques sur le système

Première opération à faire après l’installation:
[css]
apt-get install ssh wget libasound2 x-window-system-core
[/css]

Ensuite vous avez le choix de l’interface graphique, perso je fais dans le light avec Windows Maker car le serveur ne sera dédié qu’à SAP, donc pas besoin d’installer un KDE ou un Gnome:
[css]
apt-get install wmaker vnc4server
[/css]

Configurer l’accès par vnc:
[css]
vncserver
xhost +
[/css]


2) Rajout de paquets nécessaires à SAP

[css]
apt-get install libstdc++5 libxp6 csh
[/css]


3) Configuration du système nécessaire à SAP

Mettre à jour le fichier /etc/hosts :
[css]192.168.15.12 server.domain server[/css]

Modifier les paramètres mémoire du kernel dans /etc/sysctl.conf (note 941735):
[css]
kernel.shmmax=2313682943
kernel.shmall=5242880
kernel.msgmni=1024
kernel.sem=1250 256000 100 1024
vm.max_map_count=300000
[/css]

Prendre en compte ces nouveaux paramètres
[css]sysctl -p[/css]

Modifier les paramètres de nombre de fichiers et processus simultanement ouverts /etc/security/limits.conf :
[css]
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
[/css]


4) Rajout de paquets nécessaires à Oracle

Le paquet binutils peut être déjà installé. Dans ce cas il peut ne pas être précisé dans la commande suivante:
[css]
apt-get install binutils libc6-dev libaio1 gcc make libmotif3 lesstif2 rpm original-awk
[/css]

Si le paquet libmotif3 n’est pas disponible alors il faut installer mlterm-common.


5) Rajout de paquets optionnels

J’aime bien les systèmes à l’heure et mes petits utilitaires en ligne de commande:
[css]
apt-get install ntpdate locate
[/css]


6) Le cas java

Pour l’installation et pour portail on a besoin de java 1.4.2 sur le système. Télécharger le dernier J2SE du moment : j2sdk-1_4_2_16-linux-i586.bin puis transformer ce fichier en package debian. Pour éviter les messages de warning à la création du package java, il faut avoir installé les packages libasound2 et libxp6, ce qui est déjà fait. Pour cela exécuter:
[css]
fakeroot make-jpkg j2sdk-1_4_2_16-linux-i586.bin
dpkg -i sun-j2sdk1.4_1.4.2+16_i386.deb
[/css]


7) Configuration du système pour Oracle

Pour faire comme si on était sur une distribution RedHat, il faut créer quelques symlinks pour que l’install oracle puisse se faire:
[css]
ln -s /etc /etc/rc.d
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/sort /bin/sort
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/bin/basename /bin/basename
[/css]

Et cerise sur le gateau, ne pas oublier de créer un fichier /etc/redhat-release dans lequel on met:
[css]
Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
[/css]

Vous aurez compris pourquoi ! 😉 😉 😉


8 ) Installation des sources pour Netweaver 2004s

Copier sur la partition /sources les fichiers SAP, il faut :
le master d’installation
le kernel (obligatoirement unicode)
la base oracle
le client oracle
les quatre exports de base
éventuellement le patch oracle et java

Dans le répertoire master d’installation, sous répertoire IM_LINUX_I386/, il y a un fichier qu’il faut rendre exécutable afin de pouvoir lancer le sapinst :
[css]
chmod +x sapinst startInstGui.sh
[/css]


9) Lancer l’installation de SAP NW04 stack ABAP

Prérequis: ajuster la date 😉
Modifier le script /IM_LINUX_I386/COMMON/INSTALL/installsapinit.sh de la manière suivante :
[css]
# ligne 196 commenter la première ligne et rajouter la suivante
# chkconfig —add $<em>SAPINIT</em> 2>&1 …
update-rc.d -n $<em>SAPINIT</em> start 55 2 3 4 5 . stop 55 0 1 6
[/css]

Se placer dans le répertoire IM_LINUX_I386/ et exécuter :
[css]
./sapinst
[/css]

Voilà, c’est parti, enfin !
On entre dans le vif du sujet: installation d’un système SAP Netweaver pour l’instant uniquement le stack ABAP.

En étape 2 « Define parameters », le prerequisite checker ne devrait remonter une alerte uniquement pour la saplocale, passer outre en cliquant sur Cancel.

Résoudre les erreurs si il y en a et terminer l’installation. En général le statut de l’installation est correctement sauvegardé, c’est à dire que l’installation reprend là où il y avait une erreur, sans devoir recommencer from scratch.
Toutefois, le sapinst fait parfois des plaisanteries et reprend tout depuis le début, ça arrive …
Quand on est en cours d’installation, il est préférable d’avoir un accès simultané à OSS afin de pouvoir diagnostiquer et réparer les éventuelles erreurs.

Bon, on va dire que tout s’est bien passé: vous obtenez un système ….. ABAP ! Il va falloir faire l’installation du stack Java.

Bref, quand c’est fini, au niveau OS, ajuster la date précédemment ajuste en étape 9 😉 😉
[css]
ntpdate pool.ntp.org
[/css]


10) Créer un mandant client :

D’abord il faut créer un user quelconque dans le mandant 000 ayant des droits étendus. C’est avec ce user qu’il faudra créer le système logique nécessaire à la création du mandant client supplémentaire.

Si il y a un problème d’adresse avec le user crée, alors exécuter le report RSADRCK2.
A partir du mandant 000, créer une entrée en SCC4.
Rajouter dans le profil d’instance la ligne qui permet de se connecter dans le mandant nouvellement crée avec le user SAP* et le mot de passe PASS et on va en profiter pour rajouter les deux lignes suivantes :
[css]
login/no_automatic_user_sapstar = 0
login/create_sso2_ticket=2
login/accept_sso2_ticket=1
[/css]

Modifier le profil default, avec xxx comme numéro de mandant client qui va être crée :
[css]
login/system_client = xxx
[/css]

Pour prendre en compte ces modifications il faut redémarrer l’instance.
On en profite pour remettre une date système correcte et rebooter le serveur afin de tout cleaner.
Lancer la copie de mandant, transaction SCCL, copie avec profil SAP_ALL depuis le 000 vers le mandant cible
Exécuter le module fonction RS_MANDT_UNIQUE_SET et indiquer le mandant nouvellement crée
Faire une entrée dans la table RSADMINA en indiquant le numéro de mandant dans le champs BWMANDT


11) Opérations post installation abap

Exécuter la STMS dans le 000 afin de générer un fichier profil de transport, ça évitera lles erreurs lors de la première utilisation de SPAM/SAINT
Pour pouvoir créer les fichiers physiques des ordres de transport il faut configurer le système de transport :

Transaction STMS
menu Overview
Systems puis menu SAP systems
Create
Virtual system et créer le système XYZ

Relancer la transaction STMS
menu Overview
Transport routes
menu Settings
Transport route editor
Hierarchical Editor List

Relancer la transaction STMS
menu Overview
Transport routes
se mettre sur transport layer en modif
créer un nouveau transport layer ZTST

Relancer la transaction STMS
menu Overview
Transport routes
se mettre sur transport route en modif
créer un Consolitation en indiquant TST ZTST XYZ

Sauvegarder.

Définir le logon group, transaction SMLG.
Vérifier en STRUSTSSO2 que l’entrée dans system PSE est au vert.
Activer les services SICF comme dans la note 517484.

Pour installer les stats techniques, monter le système en SPS13 et la SPAM 27 avec le dernier SPS du moment (et la SPAM adéquate), installer le bi_cont 7.03du moment et le patcher jusqu’au niveau 4 le plus actuel.

Exécuter le report d’installation RSTCC_ACTIVATE_ADMIN_COCKPIT afin d’activer les stats techniques.

Scheduler les jobs standards SAP: SM36, cliquer sur « standard jobs » puis sur « default scheduling ». Sauvegarder.

Bon, ben on va pouvoir attaque l’installation du stack java !


12) Prévention des emmerdes avant install java

Tout d’abord vérifier que les roles abap suivants ont un profil correctement généré : transaction SUPC sur tous les roles.
Créer les users :
ADSUSER, role ADSCALLERS (vide)
ADS_AGENT, role SAP_BC_FP_ICF
J2EE_ADMIN, roles SAP_J2EE_ADMIN, SAP_SLD_ADMINISTRATOR et profiles S_BW_RFC, S_BI-WX_RFCA
SAPJSF, role SAP_BC_JSF_COMMUNICATION, profils S_BW_RFC et S_BI-WX_RFCA
SLSAPIUSER, role SAP_SLD_CONFIGURATOR
SLDDSUSER, role SAP_SLD_ADMINISTRATOR

En fonction de la version d’installation 2004s, voire 2007, il est possible que le script d’installation crée correctement tout ces users et leur attribue les bonnes autorisations. En ce qui me concerne ce n’était pas le cas.


13) Installer java

L’installation se fait en java add-in for abap.
S’affecter le rôle SAP_J2EE_ADMIN dans l’abap puis se connecter au portail et vérifier la présence des trois onglets de base, et que par exemple l’UME fonctionne bien.
A ce stade on a un système BI 7.0 complet (abap et java) en SP09 avec le niveau de SP fournit dans l’installation.

Rien de spécial à signaler, comme d’hab, résoudre les erreurs si il y en a et relancer l’install.

Dans le meilleur des cas l’installation s’est terminée, le stack java a réussi à démarrer (parfois au bout de quelques heures le sapinst abandonne et indique qu’il n’arrive pas à démarrer java. Un shutdown de SAP puis de Oracle permet de récupérer de la mémoire et au redémarrage suivant, miracle, tout démarre.

Une précision tout de même: sur des machines très petites, le démarrage du stack java peut prendre plus de 30mn. Il est même possible d’avoir accès à nwa mais pas à irj/portal, tout dépend des ressources de la machine.


14) Update transport

Updater la SPAM (26) et le JSPM (SP13). Idéalement, prendre les versions à jour du moment (vérifier la compatibilité avec le niveau de SPS du système).


15) Mettre à jour le système SAP

Objectif : SP13 SPS du moment.
A partir du SPC13 (sp collection 13 pour abap et java) mettre à dispostion de JSPM tous les patches.
Passer les SP sur la partie abap.
Pour un « BI usage », si nécessaire rajouter le BI_CONT, puis FIN-SEM.


16) Vérifier la conf SLD

Note OSS 983156.
Dans Visual admin, serveur > service > sld data supplyer, onglet Runtime, onglet » HTTP Settings », vérifier l’url (pas de host mais le domain), et vérifier le user (pas J2EE_ADMIN mais SLDDSUSER) et dans l’onglet « CIM client Generation Settings » vérifier que les deux cases sont cochées, que le host et user sont corrects (comme précedemment).
Faire un test du SLD, ça doit être OK. Coté abap il est possible d’utiliser la transaction SLDCHECK, et pour mettre le bon user/pass utiliser la transaction SLDAPICUST


17) Configuration BEX web

Sur le portail dans nwa, onglet Deploy & Changer, exécuter les templates NWA et ensuite le BI-Java.
Eventuellement ajuster l’url dans la table RSPOR_T_PORTAL.


18 ) Problèmes sur stack java

Dans le cas où le portail ne démarre pas ou pout tout autre erreur java, visualiser les logs dans usrsapSIDinstj2eeclusterserver0logsystem
. Afficher le dernier fichier modifié.

MySQL réinitialiser le mot de passe admin

Commande pour réinitialiser le mot de passe admin de MySQL :

/etc/init.d/mysql stop
/usr/sbin/mysqld_safe —skip-grant-tables &
mysql --user=root mysql
update user set password=PASSWORD("passw") where user=’root’ ;
quit
killall mysql
/etc/init.d/mysql start

Ceci présume que le user administrateur de la base est « root ». Celui-ci a été crée lors l’installation de la base MySQL, sinon il est possible de le faire par la commande :

# mysqladmin -u root password passwd