Installazione GLPI in ambiente Windows
Quando le infrastrutture informatiche assumo dimensioni consistenti o la cui complessità richiede più persone per la gestione comincia a farsi sentire l’esigenza di adottare un software per la gestione del parco informatico e del servizio di helpdesk. Un altro scenario in cui tali tipi di software sono particolarmente utili è quello in cui un fornitore di servizi informatici si trovi a dove gestire più piccole aziende con la necessità di offrire un servizio di helpdesk e anche la gestione del parco macchine e apparecchiature dei proprio clienti.
Vari sono i software che propongono soluzioni in tal senso, ma molti di essi affrontano il problema tramite scansione della rete per rilevare in modo automatizzato gli asset informatici presenti, sebbene questo tipo di approccio sia in determinati scenari molto pratico in altri può non essere applicabile o comodo. Infatti in scenari in cui non tutti gli asset possono essere gestiti tramite rilevazione automatica in rete in quanto non raggiungibili o privi di interfaccia di rete o ancora perché è necessario poterli gestire prima che vengano inseriti in rete (si pensi ad esempio ad asset mantenuti in magazzino come ricambi).
Inoltre molto spesso la necessità della gestione del parco informatico parte da specifiche necessità di carattere più amministrativo che tecnico, come la gestione dei rinnovi delle garanzie, la gestione del mazzino, la gestione della posizione fisica degli asset o il computo dell’impatto dell’helpdesk declinato in base alle richieste o per tipologia di asset su cui sono avvenuti gli interventi.
Un prodotto che risponde a queste esigenze è GLPI (Gestion Libre de Parc Informatique), un progetto Open Source gratuito distribuito sotto licenza GPL che consente l’IT Asset Management, l’issue tracking system, fornisce una soluzione di service desk solution e consente la gestione di tasks amministrativi e finanziari, di seguito alcune interessanti caratteristiche:
- Gestione di Multi-entities (multi-park, multi-structure)
- Gestione Multiutenza
- Sistema di autenticazione multipla (locale, LDAP, AD, Pop/Imap, CAS, x509…) e multi servers
- Multilingual (al momento sono disponibili 45 localizzazioni)
- Gestione di Permissions e profili
Per l’elenco completo delle caratteristiche si veda FEATURES LIST OF GLPI.
GLPI è un applicazione web-based nata nel 2003 come progetto Community based a cui chiunque può contribuire tramite lo lo sviluppo di moduli su GitHub – GLPI o mediante lo sviluppo di GLPi plugins, il progetto ha subito negli anni varie evoluzioni sino ad arrivare all’attuale versione 9.1.1, di seguito la time line dell’evoluzione del progetto tratto dalla pagina Wikipedia dedicata al progetto.
Prerequisiti d’installazione di GLPI
Come riportato nel seguente Prerequisites for installing GLPI l’applicazione web ha i seguenti prerequisiti software:
- Un Web Server con supporto PHP (Apache 2 o superiore oppure Microsoft IIS)
- PHP 5.3 o superiore (si veda il seguente Web Server Prerequisites per le estensioni PHP richieste
- Database MySQL 4.23, ma è raccomando utilizzare per ragioni di performance la versione 5.5.x, in alternativa è possibile utilizzare il DBMS MariaDB (a riguardo si veda Database server Prerequisites)
Dal momento che come viene riportato in Database server Prerequisites, GLPI utilizza l’engine MyISAM non è possibile al momento utilizzare SQL Server come DBMS in quanto quest’ultimo utilizza un engine derivato da quello di Sybase SQL Server frutto di una partnership tra Microsoft e Sybase del 1987 (per maggiori dettagli sulla storia dell’evoluzione dell’engine di SQL Server si veda SQL MythBusters – “SQL Server is really a Sybase product not a Microsoft one.”).
Scenario d’installazione
Nel seguente articolo GPLI sarà installato su IIS 8.5 in Windows Server 2012 R2 utilizzando Microsoft Web Platform Installer 5.0 per installare la versione PHP 7.0.9 a 64 Bit, mentre per quanto riguarda il DBMS sarà installato MariaDB 10.1.19 a 64 Bit.
La scelta di non utilizzare MySQL ma MariaDB che è uno dei fork del primo, nato il 29 ottobre 2009, e scritto dagli sviluppatori originali di MySQL dipende dal fatto di utilizzare un DBMS totalmente OpenSource dal momento che andrà a supporto di un applicativo Open Source qual è GLPI. MySQL infatti dalla versione 5.5 include estensioni non Open Source disponibili solo nella versione Enterprise, tale evoluzione di MySQL è frutto dell’acquisizione di Sun Microsystems da parte di Oracle avvenuta il 27 gennaio 2010 (per quanto riguarda l’evoluzione di MySQL e la nascita MariaDBa riguardo si vedano le relative pagine su Wikipedia). In conseguenza al fatto che MySQL non è più un DBMS solo Open Source (esistono infatti due versioni quella Open Source denominata MySQL Community Server e quella proprietaria denominata Enterprise Server) ha portato vari progetti Open Source a sostituire MySQL con MariaDB, come ad esempio Wikipedia (a riguardo si veda Wikipedia Adopts MariaDB) e alcune distribuzioni Linux quali ad esempio Fedora e RedHat (a riguardo si veda Oracle who? Fedora & openSUSE will replace MySQL with MariaDB).
Per quanto riguarda i prerequisiti hardware dovranno essere rispettati almeno quelli consigliati per il sistema operativo (a riguardo si veda System Requirements and Installation Information for Windows Server 2012 R2):
- Processore almeno 1.4 GHz a 64-bit
- 1024 MB di Ram e nel caso una macchina virtuale in Hyper-V è preferibile utilizzare la memoria statica
- 32 GB per il volume dedicato al sistema operativo, è preferibile installare GLPI e il relativo database su un volume dedicato
Dal momento che i vari pacchetti d’installazione di PHP e MariaDB sono disponibili solo in lingua Inglese è consigliabile installare anche il sistema operativo in lingua Inglese configurando le impostazioni del ormato data e ora per la nazionalità italiana. Al termine dell’installazione aggiornare il sistema installando gli aggiornamenti necessari.
Per la documentazione relativa a GLPI si faccia riferimento al Wiki del progetto, mentre per ulteriori informazioni sui prerequisiti si veda https://github.com/glpi-project/glpi mentre per informazioni sui changelog delle varie versioni si veda https://github.com/glpi-project/glpi/releases
Installazione del ruolo Web Server (IIS)
Installare il ruolo Web Server (IIS) con le impostazioni di default, al termine dell’installazione aggiornare il sistema installando gli eventuali aggiornamenti necessari.
Come indicato nei seguenti non è possibile (fatta esclusione per alcune cartelle) spostare IIS su un volume dedicato in quanto IIS è un componente di sistema:
- Do we need to install/move IIS related folders to a non-System drive?
- KB2752331 Guidance for relocation of IIS 7.0 and IIS 7.5 content directories
- IIS7: Moving the INETPUB directory to a different drive
Installazione PHP
Il modo più pratico per installare PHP è quello di utilizzare il Microsoft Web Platform Installer, attualmente è disponibile la versione 5.0 che va installata prima di poter avviare l’installazione del PHP. Per avviare l’installazione del Microsoft Web Platform Installer occorre prima disabilitare la funzionalità IE Enhanced security Configuration per il gruppo Administrators (terminata l’installazione sarà possibile riabilitare tale funzionalità).
Una volta installato il Microsoft Web Platform Installer sarà possibile installare PHP selezionando PHP 7.0.9 a 64 Bit tra i prodotti del gruppo Frameworks
L’installazione comporterà l’installazione di ulteriori package e features:
Per verificare la funzionalità di PHP è possibile creare un file phpinfo.php in %SystemDrive%\inetpub\wwwroot col seguente contenuto:
<?php phpinfo(); ?>
Aprire poi la pagina http://localhost/phpinfo.php che mostrerà le informazioni di configurazione tra cui il percorso del file ini di configurazione per default in (%ProgramFiles%\PHP\v7.0\php.ini)
Abilitazione dell’estensione PHP FileInfo e verifica delle configurazioni nel php.ini
Modificare il file %ProgramFiles%\PHP\v7.0\php.ini aggiungendo nella sezione [ExtensionList] la seguente impostazione:
extension=php_fileinfo.dll
Come indicato nel seguente Web Server Prerequisites verificare che le seguenti variabili nel file %ProgramFiles%\PHP\v7.0\php.ini rispettino le seguenti indicazioni (le impostazioni predefinite dovrebbero essere coerenti a tali indicazioni):
memory_limit = 64M ; // Minimum Value
file_uploads = on ;
max_execution_time = 600 ; // Optional but not mandatory
register_globals = off ; // Optional but not mandatory
magic_quotes_sybase = off ;
session.auto_start = off ;
session.use_trans_sid = 0 ; // Optional but not mandatory
Nel caso si intenda utilizzare l’autenticazione integrata di windows abilitare l’estensione LDAP aggiungendo nella sezione [ExtensionList] la seguente impostazione:
extension=php_ldap.dll
Per ulteriori informazioni sulle estensoni PHP in Windows si veda Installation of extensions on Windows.
Terminata l’editazione del file %ProgramFiles%\PHP\v7.0\php.ini riavviare IIS tramite lnternet Information Services (IIS) Manager (InetMgr.exe) o mediante il seguente comando:
iisreset /restart
Installazione del DBMS MariaDB
Scaricare dal sito http://mariadb.org (la pagina di download è disponibile al seguente https://downloads.mariadb.org/) il package per piattaforma Windows a 64 Bit dell’ultima versione di MariaDB, al momento l’ultima versione stabile è la 10.1.19 (mariadb-10.1.19-winx64.msi), come riportato la versione 10.1 ha oltre alla features di MySQL 5.6 & 5.7 anche nuove funzionalità. Sebbene esista anche un package ZIP (mariadb-10.1.19-winx64.zip) questo è indicato solo per semplici scenari di test, ma è meno preformante dell’installazione come servizio e meno sicuro, a riguardo si veda Installing MariaDB Windows ZIP Packages.
Avviare l’installazione di MariaDB 10.1.19 x64 eseguendo il package msi con le seguenti impostazioni (per la documentazione sulla procedura d’installazione si veda Installing MariaDB MSI Packages on Windows).
Accettare l’installazione delle funzionalità di default.
Selezionare Database instance per impostare il path dei file di dati tramite il pulsante Browse, nello scenario di esempio saranno memorizzati in S:\MariaDB 10.1\data.
Impostare la password dell’utente root che dovrà essere utilizzato solo motivi amministrativi
Impostare le proprietà dell’istanza configurandola come servizio come raccomandato e se non è necessario connettersi remotamente al DBMS disabilitare l’opzione di networking (come nel caso dello scenario di esempio in quanto GLPI sarà installato sullo stesso server), in questo caso per la connessione al database sarà utilizzato named pipes. Inoltre dal momento che GLPI per ora non utilizza InnoDB occorre deselezionare l’opzione Optmize for transaction (a riguardo si vedano Closing ticket time issue #1150 e Change storage engine to innodb #644).
Per informazioni sulle impostazioni si vedano le seguenti note riportate in Installing MariaDB MSI Packages on Windows:
-
Install as service
Defines if the database should be run as a service and the service name. It is recommended to run your database instance as a service as it greatly simplifies database management. The default service name is “MySQL”, for compatibility reasons (this is the same name that “mysqld.exe –install” would choose too). -
Enable networking
Whether to enable TCP/IP (recommended) and which port MariaDB should listen to. If security is a concern, you can change the bind-address parameter post-installation to bind to only local addresses. If the “Enable networking” checkbox is deselected, the database will use named pipes for communication. -
Optimize for transactions
If this checkbox is selected, the default storage engine is set to Innodb (or XtraDB) and the sql_mode parameter is set to “NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES”. You can also define the Innodb/Xtradb buffer pool size. The default buffer pool size is 12.5% of RAM and depending on your requirements you can give innodb more (up to 70-80% RAM). 32 bit versions of MariaDB have restrictions on maximum buffer pool size, which is approximately 1GB, due to virtual address space limitations for 32bit processes.
Per modificare successivamente le impostazioni è possibili intervenire successivamente editando il file my.ini memorizzato nella directory d’installazione (nello scenario di esempio S:\MariaDB 10.1\data), per informazioni sulla configurazione tramite file d’impostazioni si vedano:
Per connettersi all’istanza di MariaDB è possibile utilizzare HeidiSQL, installato per default insieme a MariaDB, configurando una connessione localmente tramite named pipe, come nello scenario d’esempio.
Creazione del sito e del database per GLPI
Scaricare l’ultima versione di GLPI dal sito http://glpi-project.org (la pagina di download è disponibile al seguente http://glpi-project.org/spip.php?article41), al momento l’ultima versione è la 9.1.1 (glpi-9.1.tar.gz). Estrarre il package tar.gz, ad esempio tramite 7Zip, e copiare la cartella glpi in locale, nelle scenario di esempio verrà copiata inS:\glpi. Quindi creare in IIS all’interno del Default Web Site una Virtual Directory che punta alla cartella gpli in modo da mantenere l’applicazione su un volume diverso da quello del sistema operativo.
Aprire il sito http://localhost/glpi per eseguire la prima parte dell’installazione di GLPI che creerà il database.
Selezionare la localizzazione italiana.
Accettare la licenza (GNU General Public License Versione 2).
Selezionare Installa.
Controllare che tutte le verifiche siano eseguite con successo.
Inserire le credenziali per accedere all’istanza locale (.)del DBMS MariaDB tramite named pipe con l’account root per creare il database.
Creare un nuovo database, nello scenario d esempio sarà denominato glpi.
Attendere la creazione del database
Creazione di un utente per l’accesso al database di GLPI da parte dell’applicazione
Creare tramite HeidiSQL un utente che verrà poi utilizzato dall’applicazione GLPI per accesso locale con soli i privilegi sul database di GLPI, nello scenario di esempio il database è denominato glpi mentre l’utente sarà denominato UsrGLPI.
Installazione dell’applicazione GLPI
Riavviare la procedura d’installazione aprendo nuovamente la pagina http://localhost/glpi rieseguendo le seguenti operazioni:
- Selezionare la localizzazione italiana.
- Accettare la licenza (GNU General Public License Versione 2).
- Selezionare Installa.
- Controllare che tutte le verifiche siano eseguite con successo.
Inserire le credenziali per accedere all’istanza locale (.)del DBMS MariaDB tramite named pipe con l’account dedicato a GLPI, nello scenario di esempio tale utente è denominato UsrGLPI.
Selezionare il database che verrà utilizzato da GLPI, nello scenario di esempio tale database è denominato glpi (le informazioni relative alla connessione al database verranno memorizzate nel file glpi\config\config_db.php).
Attendere l’inizializzazione del database.
Attendere il termine dell’installazione.
Terminata l’installazione sarà possibile accedere a GLPI tramite la pagina http://localhost/glpi autenticandosi con l’account di amministrazione di default (username=glpi e password=glpi) per iniziare a configurare l’applicazione.
Gestione dei Plugin
Come anticipato all’inizio dell’articolo le funzionalità di GLPI possono essere estese tramite plugins sviluppati da volontari che contribuiscono al progetto, per il catalogo dei plugins disponibili si veda la Plugin directory, mentre se si intende cimentarsi nello sviluppo di un plugin è possibile trovare informazioni utili ai seguenti:
Per quanto riguarda l’installazione di un plugin l’operazione è descritta al seguente Plugin installation Procedure in GLPI e consiste nelle seguenti operazioni:
- Eseguire un backup del database (tramite il menù Amministrazione\Manutenzione)
- Scaricare il plugin dalla directory GLPI plugins verificando che sia compatibili con la versione di GLPI installata
- Estrarre il file .tar.gz in una sottocartella col nome del plugin nella directory glpi/plugins dell’applicazione, per estrarre i file .tar.gz è possibile utilizzare ad esempio 7Zip (il nome della cartella del plugin deve rispettare quello presente all’interno del file .tar.gz altrimenti il plugin potrebbe non funzionare correttamente)
- Eseguire il Log off ed un successivo Log in
- Installare il plugin tramite il menu Configurazione\Plugins selezinando Installa in corrispondenza del plugin
- Attivare il plugin selezinando Attiva in corrispondenza del plugin
Alcuni plugin necessitano di modifiche al database, che verranno eseguite al primo avvio dello stesso, oppure possono essere necessarie configurazion, in questo caso vi saranno avvisi nella pagina dell’installazione/attivazione del plugin.
L’aggiornamento di un plugin è sostanzialmente simile all’installazione, ma con le precauzioni necessarie per consentire un eventuale ripristino alla versione precedente, di seguito le operazioni da eseguire:
- Eseguire un backup del database (tramite il menù Amministrazione\Manutenzione) o delle tabelle create dal plugin che dovrebbero essere specificate nel file readme nella directori del plugin syessto (glpi/plugins/<pluginName>)
- Rinominare la directory del plugin per esempio da glpi/plugins/<pluginName> a glpi/plugins/<pluginName-Versione>
- Procedere nuovamente all’installazione del plugin come visto precedentemente
Se si intende invece rimuovere un plugin è possibile procedere come segue:
- Eseguire un backup del database (tramite il menù Amministrazione\Manutenzione)
- Accedere all’elenco dei plugin installati tramite il menu Configurazione\PluginsS
- Selezionare Disinstalla in corrispondenza del plugin da rimuovere
Si noti che ovviamente l’utilizzo dei plugin comporterà il controllo che questi siano supportati anche nelle future release di GLPI quanto verranno rilasciate e si deciderà di installarle.
Conclusioni
Grazie al Microsoft Web Platform Installer 5.0 che permette di installare velocemente applicazioni PHP in Windows l’installazione di GLPI si risolve velocemente. Con Windows Server 2016 e la sua integrazione nativa con i container Docker tale installazione potrà ulteriormente essere semplificata. Su GitHub sono infatti presenti vari progetti con la finalità di realizzare containe Docker per GLPI, si veda ad esempio driket/docker-glpi – Deploy GLPI (any version) with Docker.