Installation
m (Jordan a déplacé la page ITop/Installation vers Outilllage/iTop/Installation sans laisser de redirection) |
m (Jordan a déplacé la page Outilllage/iTop/Installation vers Outillage/iTop/Installation sans laisser de redirection) |
(Aucune différence)
|
Version du 6 juin 2019 à 12:24
Sommaire
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 :
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 :
========================================================================================================================================== 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 :
Il est question d'installer un nouvel iTop, sélectionner Install a new iTop et cliquer sur Next :
Accepter les accords de licence open-source des différents composants de iTop et cliquer sur Next :
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 :
Définir un nom de l'utilisateur qui sera administrateur de l'outil et choisir la langue :
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 :
Sélectionner Service Management for Enterprises et cliquer sur Next :
Activer l'outil de ticketing en sélectionnant Simple Ticket Management, cocher la case Enhanced Customer Portal et cliquer sur Next :
Choisir l'option ITIL Change Management pour le type de ticket de change et cliquer sur Next :
Ne cocher aucune case dans l'écran suivant et cliquer sur Next :
Un récapitulatif des options s'affiche. Cliquer sur Install ! pour lancer l'installation d'iTop :
Une barre de progression de l'installation s'affiche :
Une fois l'installation terminée, l'écran suivant apparaît :
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 :
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 :
Cliquer sur My Company/Department :
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.
Intégration avec l'Active Directory
Téléchargement de l'extension
Depuis le site officiel d'iTop, télécharger l'extension Data Collector for LDAP. L'extension est gratuite. Toutefois, la création d'un compte, qui est gratuite et qui n'exige aucune information sensible, est nécessaire pour pouvoir la télécharger.
Une fois l'extension téléchargée, la déposer sur le serveur web dans le dossier downloads
.
Déploiement de l'extension
Se connecter en SSH au serveur web et décompresser l'extension dans le dossier /chemin/vers/iTop/current/web/extensions
:
unzip -d /chemin/vers/iTop/current/web/extensions/ downloads/Data_Collector_for_LDAP_1.2.0.zip
Changer le propriétaire des fichiers :
chown -R www:www /chemin/vers/iTop/current/web/extensions/ldap-data-collector
Configuration
Créer un fichier /chemin/vers/iTop/current/web/extensions/ldap-data-collector/conf/params.local.xml
dont le contenu sera le suivant :
<parameters>
<itop_url>http://monserveurweb/itop/</itop_url>
<itop_login>itop_adm</itop_login>
<itop_password>xxxxxxxxxxxxxxxxxxxxx</itop_password>
<contact_to_notify>moi@mondomain.com</contact_to_notify>
<synchro_user>itop_adm</synchro_user>
<ldaphost>AdServer.mondomain.com</ldaphost>
<ldapport>389</ldapport>
<ldapdn>DC=mondomain,DC=com</ldapdn>
<ldaplogin>CN=queryAdUser,OU=serviceAccounts,OU=Users,DC=undomaine,DC=com</ldaplogin>
<ldappassword>xxxxxxxxxxxxxxxxxxxxx</ldappassword>
<!--
Set a non empty (and unique) prefix if you run several instances of the collector against the same iTop Server
This is the recommended method to collect data from several LDAP servers. (assign a unique prefix to each "source" LDAP server)
Note: this prefix can be set but do not touch the one inside json_placeholders
-->
<prefix>AD1</prefix>
<json_placeholders>
<full_load_interval>604800</full_load_interval><!-- 7 days (in seconds): 7*24*60*60 -->
<synchro_status>production</synchro_status>
</json_placeholders>
<!-- Parameters for Person synchronization -->
<ldappersonfilter>(objectClass=person)</ldappersonfilter>
<person_fields>
<!-- Mapping between LDAP fields and iTop Person's object fields -->
<primary_key>samaccountname</primary_key>
<name>sn</name>
<first_name>givenname</first_name>
<email>mail</email>
<function>title</function>
</person_fields>
<person_defaults>
<!-- Default values for iTop Person's object fields -->
<org_id>JLN</org_id>
<status>active</status>
</person_defaults>
<!-- Parameters for User synchronization -->
<collect_person_only>no</collect_person_only>
<ldapuserfilter>(&(objectClass=person)(mail=*))</ldapuserfilter>
<synchronize_profiles>no</synchronize_profiles>
<itop_group_pattern>/^CN=itop-(.*),OU=.*/</itop_group_pattern>
<user_fields>
<!-- Mapping between LDAP fields and iTop UserLDAP's object fields -->
<primary_key>samaccountname</primary_key>
<login>samaccountname</login>
<contactid>mail</contactid>
</user_fields>
<user_defaults>
<!-- Default values for iTop UserLDAP's object fields -->
<profile>Portal user</profile>
<language>FR FR</language>
</user_defaults>
</parameters>