Installation

De Wiki de Jordan LE NUFF
Sauter à la navigation Sauter à la recherche

Présentation

Cette page a pour objet de décrire l'installation du produit iTop.

Le produit est téléchargeable depuis le site officiel : https://www.combodo.com/itop . A ce jour, la version disponible est la 2.6.1 (https://www.combodo.com/itop-2-6-1-is-released).

La documentation est accessible à https://www.itophub.io/wiki/page.

Prérequis

Serveur

Cet outil ne servant, dans le cas de cette installation, qu'à un usage personnel, et le nombre de CI (Configuration Item) étant par conséquent limité, la configuration minimale sera retenue :

ClipCapIt-190606-120603.PNG

C'est à dire :

  • 2 vCPU
  • 4 Go de RAM
  • 10 Go d'espace disque pour MySQL

Graphviz

Graphviz est un logiciel open source de visualisation graphique. Il est nécessaire à iTop afin de pouvoir afficher l'analyse graphique d'impact.

La dernière version officielle de Graphviz à ce jour est la version 2.40.1. Or, la dernière version disponible sur les dépôts officiels de CentOS 7 (système d'exploitation du serveur qui hébergera iTop) est la version 2.30.1.

Comme il n'est pas indiqué de version minimale requise de Graphviz pour iTop, d'une part, et comme la compilation de Graphviz en version 2.40.1 exige beaucoup de dépendance, d'autre part, il est décidé d'installer la version 2.30.1 à partir de yum.

Pour ce faire, lancer la commande suivante :

yum install graphviz

Cela installe beaucoup de dépendances. Pour prendre connaissance de la liste, dérouler le menu ci-dessous :

Résultat du yum install
==========================================================================================================================================
 Package                                    Architecture           Version                                  Dépôt                   Taille
==========================================================================================================================================
Installation :
 graphviz                                   x86_64                 2.30.1-21.el7                            base                    1.3 M
Installation pour dépendances :
 atk                                        x86_64                 2.28.1-1.el7                             base                    263 k
 avahi-libs                                 x86_64                 0.6.31-19.el7                            base                     61 k
 cairo                                      x86_64                 1.15.12-3.el7                            base                    741 k
 cups-libs                                  x86_64                 1:1.6.3-35.el7                           base                    357 k
 dejavu-fonts-common                        noarch                 2.33-6.el7                               base                     64 k
 dejavu-sans-fonts                          noarch                 2.33-6.el7                               base                    1.4 M
 fontconfig                                 x86_64                 2.13.0-4.3.el7                           base                    254 k
 fontpackages-filesystem                    noarch                 1.44-8.el7                               base                    9.9 k
 fribidi                                    x86_64                 1.0.2-1.el7                              base                     79 k
 gd                                         x86_64                 2.0.35-26.el7                            base                    146 k
 gdk-pixbuf2                                x86_64                 2.36.12-3.el7                            base                    570 k
 ghostscript                                x86_64                 9.07-31.el7_6.11                         updates                 4.3 M
 ghostscript-fonts                          noarch                 5.50-32.el7                              base                    324 k
 graphite2                                  x86_64                 1.3.10-1.el7_3                           base                    115 k
 gtk-update-icon-cache                      x86_64                 3.22.30-3.el7                            base                     28 k
 gtk2                                       x86_64                 2.24.31-1.el7                            base                    3.4 M
 harfbuzz                                   x86_64                 1.7.5-2.el7                              base                    267 k
 hicolor-icon-theme                         noarch                 0.12-7.el7                               base                     42 k
 jasper-libs                                x86_64                 1.900.1-33.el7                           base                    150 k
 jbigkit-libs                               x86_64                 2.0-11.el7                               base                     46 k
 lcms2                                      x86_64                 2.6-3.el7                                base                    150 k
 libICE                                     x86_64                 1.0.9-9.el7                              base                     66 k
 libSM                                      x86_64                 1.2.2-2.el7                              base                     39 k
 libX11                                     x86_64                 1.6.5-2.el7                              base                    606 k
 libX11-common                              noarch                 1.6.5-2.el7                              base                    164 k
 libXau                                     x86_64                 1.0.8-2.1.el7                            base                     29 k
 libXaw                                     x86_64                 1.0.13-4.el7                             base                    192 k
 libXcomposite                              x86_64                 0.4.4-4.1.el7                            base                     22 k
 libXcursor                                 x86_64                 1.1.15-1.el7                             base                     30 k
 libXdamage                                 x86_64                 1.1.4-4.1.el7                            base                     20 k
 libXext                                    x86_64                 1.3.3-3.el7                              base                     39 k
 libXfixes                                  x86_64                 5.0.3-1.el7                              base                     18 k
 libXft                                     x86_64                 2.3.2-2.el7                              base                     58 k
 libXi                                      x86_64                 1.7.9-1.el7                              base                     40 k
 libXinerama                                x86_64                 1.1.3-2.1.el7                            base                     14 k
 libXmu                                     x86_64                 1.1.2-2.el7                              base                     71 k
 libXpm                                     x86_64                 3.5.12-1.el7                             base                     55 k
 libXrandr                                  x86_64                 1.5.1-2.el7                              base                     27 k
 libXrender                                 x86_64                 0.9.10-1.el7                             base                     26 k
 libXt                                      x86_64                 1.1.5-3.el7                              base                    173 k
 libXxf86vm                                 x86_64                 1.1.4-1.el7                              base                     18 k
 libfontenc                                 x86_64                 1.1.3-3.el7                              base                     31 k
 libglvnd                                   x86_64                 1:1.0.1-0.8.git5baa1e5.el7               base                     89 k
 libglvnd-egl                               x86_64                 1:1.0.1-0.8.git5baa1e5.el7               base                     44 k
 libglvnd-glx                               x86_64                 1:1.0.1-0.8.git5baa1e5.el7               base                    125 k
 librsvg2                                   x86_64                 2.40.20-1.el7                            base                    132 k
 libthai                                    x86_64                 0.1.14-9.el7                             base                    187 k
 libtiff                                    x86_64                 4.0.3-27.el7_3                           base                    170 k
 libwayland-client                          x86_64                 1.15.0-1.el7                             base                     33 k
 libwayland-server                          x86_64                 1.15.0-1.el7                             base                     39 k
 libxcb                                     x86_64                 1.13-1.el7                               base                    214 k
 libxshmfence                               x86_64                 1.2-1.el7                                base                    7.2 k
 mesa-libEGL                                x86_64                 18.0.5-4.el7_6                           updates                 102 k
 mesa-libGL                                 x86_64                 18.0.5-4.el7_6                           updates                 162 k
 mesa-libgbm                                x86_64                 18.0.5-4.el7_6                           updates                  38 k
 mesa-libglapi                              x86_64                 18.0.5-4.el7_6                           updates                  44 k
 pango                                      x86_64                 1.42.4-2.el7_6                           updates                 280 k
 pixman                                     x86_64                 0.34.0-1.el7                             base                    248 k
 poppler-data                               noarch                 0.4.6-3.el7                              base                    2.2 M
 urw-fonts                                  noarch                 2.4-16.el7                               base                    3.0 M
 xorg-x11-font-utils                        x86_64                 1:7.5-21.el7                             base                    104 k

Résumé de la transaction
==========================================================================================================================================
Installation   1 Paquet (+61 Paquets en dépendance)

Taille totale des téléchargements : 23 M
Taille d'installation : 76 M

PHP

version

Comme indiqué dans le Change Log de la version 2.6.1 de iTop (https://www.itophub.io/wiki/page?id=2_6_0%3Arelease%3Achange_log), il supporte jusqu'à la version 7.3 de PHP.

Pour vérifier la version de PHP 7 sur le serveur, lancer la commande suivante :

php -v

Le retour suivant confirme que la version de PHP sur le serveur web est compatible avec iTop 2.6.1 :

PHP 7.3.4 (cli) (built: Apr 26 2019 09:53:20) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies

modules

Les modules nécessaires sont les suivants :

  • gd
    • optionnel mais nécessaire pour pouvoir ajouter des images avec CKEditor et redimensionner automatiquement les images à l'intérieur des champs HTML
  • json
  • ldap
  • mcrypt
    • Cette extension est nécessaire pour le cryptage des données
    • Depuis la version 7.2, ce module n'est plus disponible et le module openssl est préconisé en remplacement
  • mysql
  • soap
  • xml
  • zip

Pour vérifier la présence de ces modules, lancer la commande suivante :

php -m|grep -E "mysql|ldap|mcrypt|soap|json|^xml\$|gd|zip"

Sur le serveur web, cela donne le résultat suivant :

gd
json
ldap
mysqli
mysqlnd
pdo_mysql
soap
xml
zip

Excepté pour le module mcrypt dont l'alternative sera l'utilisation du module openssl, les modules nécessaires sont bien présents.

MySQL

Comme indiqué dans la documentation de migration de iTop 2.5.x vers 2.6.x (https://www.itophub.io/wiki/page?id=latest%3Ainstall%3A250_to_260_migration_notes#mysql_8_not_supported), la dernière version majeure MySQL (version 8) n'est pas supportée. Toutefois, la version 2.7 d'iTop planifiée pour janvier 2020 prévoit le support de MySQL 8.

Ainsi, il faut donc que le serveur de base de données sur lequel iTop se raccordera devra disposer de MySQL version 5.7 maximum.

Cela se vérifie avec la commande suivante :

mysql --version

La version de MySQL est bien 5.7 :

mysql  Ver 14.14 Distrib 5.7.26, for Linux (x86_64) using  EditLine wrapper

Téléchargement et déploiement des sources

Téléchargement

Se connecter en SSH au serveur qui hébergera iTop et lancer la commande suivante :

wget -O downloads/iTop-2.6.1-4463.zip https://freefr.dl.sourceforge.net/project/itop/itop/2.6.1/iTop-2.6.1-4463.zip

Déploiement des sources

Définir temporairement un umask à 0002 :

umask 0002

Créer un dossier iTop-2.6.1 et un lien symbolique current pointant vers ce dernier :

mkdir -p /chemin/vers/iTop/iTop-2.6.1
ln -s /chemin/vers/iTop/iTop-2.6.1 /chemin/vers/iTop/current

Dézipper le fichier des sources iTop vers son dossier d'installation nouvellement créé :

unzip -d /chemin/vers/iTop/current/ downloads/iTop-2.6.1-4463.zip

Redéfinir le umask par défaut :

. /etc/profile

Paramètres supplémentaires

La définition de ces paramètres s'est appuyée sur la documentation iTop : https://www.itophub.io/wiki/page?id=2_6_0%3Ainstall%3Aphp_and_mysql_configuration

Fichiers

Dossier temporaire

Définir temporairement un umask à 0002 :

umask 0002

iTop a besoin d'un dossier temporaire dans lequel pouvoir écrire. Le créer avec la commande suivante :

mkdir /chemin/vers/iTop/tmp

Redéfinir le umask par défaut :

. /etc/profile

Droits d'accès

Donner les droits d'accès à l'utilisateur Apache (www) au dossier applicatif d'iTop :

chown -R www:www /chemin/vers/iTop

PHP

Préconisations

Les préconisations de réglage de certaines options PHP sont les suivantes :

max_input_vars = 5000
max_file_uploads = 20
memory_limit = 256M <== doit être supérieur à max_allowed_packet de MySQL

D'autres réglages doivent simplement être présents et être définis en fonction des besoins

file_uploads
upload_tmp_dir
upload_max_filesize
post_max_size <== doit être supérieur à upload_max_filesize
max_input_time

Par ailleurs, dans le cas où le module apcu de PHP est activé, afin d'améliorer les performances, il est recommandé de définir les variables suivantes :

apc.shm_size = 128M
apc.ttl = 7200

Récapitulatif

Afin de passer ces variables spécifiquement à la configuration de iTop (et non à l'ensemble des applications hébergées sur le serveur), il va falloir créer un nouveau pool pour php-fpm.

Pour ce faire, créer un fichier /chemin/vers/php7/etc/php-fpm.d/itop.conf dont le contenu sera le suivant :

[itop]
user = php-fpm
group = php-fpm

; Socket Unix dédié à iTop
listen = /chemin/vers/php7/sockets/itop.sock

; Donner à Apache (www) les droits d'accès au socket
listen.owner = www
listen.group = www

; Tuning du pool php-fpm
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.status_path = /status
ping.path = /ping

; Récapitulatif des options PHP spécifiques à iTop
php_value[sys_temp_dir] = /chemin/vers/iTop/tmp
php_value[max_input_vars] = 5000
php_value[max_file_uploads] = 20
php_value[memory_limit] = 256M
php_value[file_uploads] = 1
php_value[upload_tmp_dir] = /chemin/vers/iTop/tmp
php_value[upload_max_filesize] = 20M
php_value[post_max_size] = 21M
php_value[max_input_time] = 60
php_value[apc.shm_size] = 128M
php_value[apc.ttl] = 7200

Créer le dossier qui hébergera le socket :

mkdir /chemin/vers/php7/sockets

Redémarrer le service php-fpm pour prendre en compte ces modifications :

systemctl restart php7-fpm.service

Via un systemctl status php7-fpm.service, on constate la bonne prise en compte du nouveau pool php-fpm :

● php7-fpm.service - PHP7 FastCGI process manager
   Loaded: loaded (/usr/lib/systemd/system/php7-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since mer. 2019-05-15 15:32:20 CEST; 7s ago
 Main PID: 7872 (php-fpm)
   Status: "Ready to handle connections"
   CGroup: /system.slice/php7-fpm.service
           ├─7872 php-fpm: master process (/chemin/vers/php7/etc/php-fpm.conf)
           ├─7873 php-fpm: pool itop
           ├─7874 php-fpm: pool itop
           ├─7875 php-fpm: pool www
           └─7876 php-fpm: pool www

MySQL

Préconisations

Le paramètre max_allowed_packet doit être supérieur à post_max_size de PHP et doit être défini dans les sections [mysqld] et [mysqldump] du fichier de configuration /etc/my.cnf.

La variable innodb_default_row_format doit être définie sur DYNAMIC (valeur par défaut) ou COMPRESSED.

La variable innodb_large_prefix doit être définie à ON.

Pour les variables suivantes, iTop préconise ces valeurs :

innodb_buffer_pool_size = 512M
query_cache_size = 32M
query_cache_limit = 1M

Création de la base de données

Une base de données dédiée à iTop doit être créée et un utilisateur dédié doit lui être associé.

Pour créer la base de données, se connecter en tant que root :

mysql -uroot -p

Créer une base de données nommée itop_db :

CREATE DATABASE itop_db;

Créer un utilisateur nommé itop_user et lui donner les droits d'accès à cette base :

CREATE USER 'itop_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxxxxxxxxxxx';
GRANT ALL PRIVILEGES ON itop_db.* TO 'itop_user'@'localhost' WITH GRANT OPTION;

Récapitulatif

Editer le fichier de configuration MySQL /etc/my.cnf afin d'y insérer le contenu suivant dans la section [mysqld] :

# iTop prerequisites
max_allowed_packet = 22M
innodb_default_row_format = DYNAMIC
innodb_large_prefix = ON
innodb_buffer_pool_size = 512M
query_cache_size = 32M
query_cache_limit = 1M

Redémarrer MySQL afin de prendre en compte ces modifications :

systemctl restart mysqld.service

Apache

Préconisations

Afin d'améliorer les performances, iTop préconise la présence des modules headers et expires avec les configurations suivantes :

<IfModule mod_expires.c>
	ExpiresActive On
	ExpiresByType image/gif  A172800
	ExpiresByType image/jpeg A172800
	ExpiresByType image/png  A172800
	ExpiresByType text/css   A172800
	ExpiresByType text/javascript A172800
	ExpiresByType application/x-javascript A172800
</IfModule>
<IfModule mod_headers.c>
	<FilesMatch "\.(gif|jpe?g|png|css|swf|js)$">
		Header set Cache-Control "max-age=2592000, public"
	</FilesMatch>
</IfModule>

Passer la commande suivante :

grep -E "mod_expires|mod_headers" /chemin/vers/apache/current/conf/httpd.conf

Cela permet de s'assurer que les lignes suivantes sont bien décommentées dans le fichier de configuration d'Apache /chemin/vers/apache/current/conf/httpd.conf :

LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so

Dans le cas contraire, éditer le fichier /chemin/vers/apache/current/conf/httpd.conf et relancer Apache pour la prise en compte des modifications :

httpd -k graceful

Récapitulatif

Afin de pouvoir publier iTop sur le serveur en tenant compte des prérequis, éditer le fichier /chemin/vers/apache/current/conf/sites/monserveurweb.conf afin de rajouter la section suivante :

# Configuration iTop
Alias /itop /chemin/vers/iTop/current/web
<Directory "/chemin/vers/iTop/current/web">
	Options FollowSymLinks
	DirectoryIndex index.php
	AllowOverride All
	Require all granted
	<FilesMatch \.php$>
		SetHandler "proxy:unix:/chemin/vers/php7/sockets/itop.sock|fcgi://localhost/"
	</FilesMatch>

	<IfModule mod_expires.c>
		ExpiresActive On
		ExpiresByType image/gif  A172800
		ExpiresByType image/jpeg A172800
		ExpiresByType image/png  A172800
		ExpiresByType text/css   A172800
		ExpiresByType text/javascript A172800
		ExpiresByType application/x-javascript A172800
	</IfModule>
	<IfModule mod_headers.c>
		<FilesMatch "\.(gif|jpe?g|png|css|swf|js)$">
			Header set Cache-Control "max-age=2592000, public"
		</FilesMatch>
	</IfModule>
</Directory>
# Fin de configuration iTop

Recharger Apache pour prendre en compte ces modifications :

httpd -k graceful

Créer un fichier de test tel que /chemin/vers/iTop/current/web/test.php dont le contenu est le suivant :

<?php
phpinfo();
?>

Et se rendre sur http://monserveurweb/itop/test.php pour vérifier le bon accès à une page récapitulative de la configuration PHP dédiée à iTop.

Si le test est concluant, penser à supprimer le fichier test.php

Installation

Se rendre sur la page http://monserveurweb/itop/.

Pour cette version de iTop (2.6.1) et la version 7.3.4 de PHP, un Warning s'affiche avertissant de possible problèmes de compatibilité. Ce n'est pas bloquant pour l'installation du produit

Le reste des prérequis est validé, cliquer sur Continue :

Vérification prérequis

Il est question d'installer un nouvel iTop, sélectionner Install a new iTop et cliquer sur Next :

Install or upgrade ?

Accepter les accords de licence open-source des différents composants de iTop et cliquer sur Next :

Accords de licence

Dans l'écran suivant, renseigner la section Database Server Connection avec les identifiants de l'utilisateur précédemment créé pour iTop dans la base de données. Cela aura pour effet d'afficher un message Database server connection Ok. et de détecter les bases de données accessibles par l'utilisateur (en l'occurrence, itop_db ici). Cliquer ensuite sur next :

Paramétres BDD

Définir un nom de l'utilisateur qui sera administrateur de l'outil et choisir la langue :

Administrateur iTop

Dans l'écran suivant, renseigner et/ou modifier les paramètres proposés, choisir I am installing a production instance et cliquer sur next.

Au regard l'utilisation simple qui sera faite de iTop, ne sélectionner que l'option Virtualization et cliquer sur Next :

Gestion des configurations

Sélectionner Service Management for Enterprises et cliquer sur Next :

Gestion des services

Activer l'outil de ticketing en sélectionnant Simple Ticket Management, cocher la case Enhanced Customer Portal et cliquer sur Next :

Type de tickets

Choisir l'option ITIL Change Management pour le type de ticket de change et cliquer sur Next :

Type de changes

Ne cocher aucune case dans l'écran suivant et cliquer sur Next :

Base de connaissance

Un récapitulatif des options s'affiche. Cliquer sur Install ! pour lancer l'installation d'iTop :

Résumé de l'installation

Une barre de progression de l'installation s'affiche :

Barre de progression

Une fois l'installation terminée, l'écran suivant apparaît :

Fin de l'installation

Des configurations complémentaires sont ensuite à réaliser. Les instructions sont accessibles derrière le lien Manual instructions for Tickets Management.

Pour ouvrir l'application iTop, cliquer sur Enter iTop :

Page d'accueil iTop

La page d'accueil s'affiche. iTop est désormais installé. Il faut donc le configurer côté applicatif.

Configuration

Organisation

Se rendre dans le menu Administration des données / Organisations :

Gestion des organisations

Cliquer sur My Company/Department :

Propriétés d'une organisation

Cliquer sur Modifier.... La modification des champs est alors possible.

Renseigner les champs comme suit :

  • Nom organisation
    • Ma superbe organisation
  • Code
    • JLN
  • Statut
    • active
  • Organisation Parent
    • Ne rien sélectionner
  • Modèle de support
    • Ne rien sélectionner

Cliquer sur appliquer. L'organisation a bien été modifiée.