Installation de FlexLM sur CentOS7

Allez c’est parti, une premier tutorial bel et bien consacré à Genesys. Mais je vous rassure, pour faire une installation sous Linux. Et celui-ci m’a bien cassé les pieds pour avoir quelque chose de propre…

Bref, c’est parti pour l’installation de FlexLM sous CentOS 7 !

Ouverture des ports

On commence par du simple et classique : ouvrir le port nécessaire à FlexLM. Je suis parti sur le classique 7260, mais ensuite à vous de voir selon votre installation.

Pour ceux qui veulent aller vite :

sudo firewall-cmd --permanent --add-port=7260/tcp
sudo firewall-cmd --reload

Pour ceux qui veulent un peu plus d’infos, direction l’article qui explique un peu plus comment ouvrir les ports : https://www.grutt.org/2019/01/11/trucs-astuces-linux-eudbase-partie-1/

Installation de FlexLM

Petite spécificité pour ce logiciel tierce partie sous Linux, il ne s’installe pas techniquement. C’est une simple archive à décompresser dans le répertoire que vous souhaitez. En faisant par exemple :

tar -xvf lmgr11.13-i686-linux-rhe4.tar -C /opt/genesys/FlexLM_1113 

Souci, si vous essayez de lancer lmgrd immédiatement, vous aurez droit à un joli message d’erreur pour cause de dépendance manquante. Pour y remédier :

sudo yum install redhat-lsb

Suivi d’un :

sudo ln -s /lib/ld-linux.so.2 /lib/ld-lsb.so.3

Ayé, FlexLM démarre ! Enfin démarre, il est pas content sans son fichier de licence le petit gars. Allons donc le paramétrer 🙂

Paramétrer FlexLM

Première étape, on modifie son fichier de licence au niveau des deux premières lignes en remplaçant le nom du serveur (dans mon cas CentOS7-X, oui je manque d’imagination), ainsi que le chemin vers le démon genesys.d

SERVER CentOS7-2 001122334455 7260
DAEMON genesys.d /opt/genesys/FlexLM_1113

Maintenant que le fichier de licence est OK, la ligne de commande pour lancer FlexLM. Celle-ci se présente sous la forme :

./lmgrd -c licence.dat -l +/var/log/genesys/FlexLM/FlexLM.log

Où -c indique le lieu où trouver le fichier de licence, et -l où le fichier de log va être écrit.

Je vous conseille de lancer cette commande à ce moment là pour vérifier que FlexLM se lance bien, et que tout est OK au niveau du fichier de log.

Si tout est bon, tuons à coup de kill ce bon vieux lmgrd pour faire un système de lancement propre, à base de service.

Création d’un service en systemd

CentOS7 a été l’occasion pour RedHat de passer de System V à systemd pour la gestion des services. Alias : jetez à la poubelle ce que vous connaissiez de /etc/rc.d & co… Bon je suis méchant, dans les faits, il y a de la rétro-compatibilité, mais essayons de faire avec une techno « récente » (2010)

Nous allons commencer par créer le fichier flexlm.service dans /etc/systemd/system

Ce fichier va indiquer à systemd comment lancer FlexLM, depuis quel répertoire, à quel moment lors du démarrage… Bref c’est hyper puissant, j’ai pas encore tout compris mais ce qu’il y a ci-dessous, ça fonctionne 🙂

[Unit]
Description=FlexLM
After=network.target network.service

[Service]
User=genesys
Group=genesys
Type=forking
WorkingDirectory=/opt/genesys/FlexLM_1113
ExecStart=/opt/genesys/FlexLM_1113/lmgrd -c licence.dat -l +/var/log/genesys/FlexLM/FlexLM.log
# Restart=on-failure
# Delay before service is stopped forcefully
TimeoutStopSec=5

[Install]
WantedBy=multi-user.target

Une fois le fichier créé, on va demander à systemd de recharger l’ensemble des fichiers .service disponibles, puis tester le démarrage de notre FlexLM.

systemctl daemon-reload
systemctl start flexlm.service
systemctl status flexlm.service

La dernière commande « status » vous permettra de voir si FlexLM s’est bien lancé, avec normalement une superbe ligne « Active: active (running) since Sat 2019-02-02 15:11:26 CET; 5s ago »

Etant donné que FlexLM est nécessaire à « quelques » composants Genesys, j’aime bien le mettre en démarrage automatique.

Pour cela, il ne vous reste plus qu’à taper

systemctl enable flexlm.service

Redémarrez votre serveur, et vérifiez au démarrage que FlexLM est bien présent.

Et maintenant c’est fini ? Non malheureux ! Maintenant, intégrons FlexLM à Genesys pour pouvoir le suivre et l’intégrer à nos solutions.

Monitoring de l’application

Vous avez déjà eu cette impression vous aussi ?

Tout d’abord de manière classique, nous allons créer un nouveau template d’application basé sur le modèle Third Party Server
Dans l’onglet général, les options les plus importantes sont Working Directory, Command Line et Command Line Arguments.
La concaténation de ces 3 options correspond à la chaîne de caractère qui sera recherchée par LCA pour déterminer si oui ou non FlexLM est lancé.
Dans mon exemple, cela donne quelque chose qui ressemble à cela :

Rien de bien sorcier, faites juste attention à une concordance parfaite

A partir de ce moment là, vous devriez pouvoir voir le statut de FlexLM dans Genesys. Mais il reste encore une étape

Démarrage/arrêt depuis Genesys

En effet, si vous essayez de le démarrer-arrêter tel quel, le résultat n’est pas terrible. Ainsi, si vous arrêtez FlexLM depuis Genesys, systemctl « perd les pédales » et ne voit plus bien son statut. Alors autant faire les choses bien.
Pour cela, nous allons créer des options dans l’annexe « start_stop ». start_command et stop_command vont remplacer l’usage habituel et nous allons y placer… les commandes systemctl précédemment créées 😉

On y est presque

Allez, une dernière étape. En effet, vous avez pu remarquer en tapant ces commandes dans un shell que celui-ci vous demande votre mot de passe. Pas pratique pour un appel non interactif.

C’est pourquoi nous allons modifier le fichier /etc/sudoers afin de lui indiquer que ces commandes SPÉCIFIQUEMENT ne requièrent pas de mots de passe. Pourquoi ce mot en majuscule ? Car on pourrait le faire pour l’ensemble des commandes. Mais comme c’est souvent, c’est plus simple, mais c’est pas propre niveau sécurité. Du coup, ajoutons gaiement dans ce fichier les 2 lignes suivantes :

genesys ALL=(ALL) NOPASSWD: /bin/systemctl start flexlm
genesys ALL=(ALL) NOPASSWD: /bin/systemctl stop flexlm

Où genesys représente l’utilisateur qui lancera votre FlexLM, alias l’utilisateur qui lance LCA 🙂

Et voici la fin de ce premier tuto concernant réellement Genesys, je suis à l’écoute de toutes vos suggestions 🙂

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.