GLPI em Debian 9

3 Julho 2018 Por Adriano Afonso

Para quem trabalha com parques informáticos, uma das grandes dificuldades de o gerir é saber com quem é que está cada máquina, a sua localização, o seu estado, etc. Quando a escala começa a ser grande, tora-se cada vez mais difícil gerir cada equipamento. Respondendo a grande parte dos standards, o GLPI permite aos gestores de parques informáticos ter uma base de dados integrada e actualizada de todos os equipamentos.

Neste momento uma das empresas para quem colaboro está realmente a precisar de implementar um sistema de ITSM, para além do que também dá muito jeito um sistema de helpdesk para acompanhar os pedidos.

Seguindo a ajuda do GLPI disponibilizada aqui, deixo aqui a minha implementação. Estou a usar um servidor LAMP previamente instalado, e portanto, seguir a ligação deste para as restantes configurações.

Apache2

Abaixo segue a instalação e activação dos módulos necessários do apache:

apt-get install apache2
apt-get install php php-curl php-gd php-json php-mbstring php-mysql php-simplexml php-xml php-xmlrpc php-mcrypt php-zip php-imap php-ldap php-apcu php-cas
apache2 restart

NOTA: Obrigado ao Julius Carvalhus pela nota do php-cas.

PHP

Algumas alterações devem ser feitas no php.ini, das quais:

nano /etc/php/7.0/apache2/php.ini
memory_limit = 64M ;        // max memory limit
file_uploads = on ;
max_execution_time = 600 ;  // not mandatory but adviced
register_globals = off ;    // not mandatory but adviced
magic_quotes_sybase = off ;
session.auto_start = off ;
session.use_trans_sid = 0 ; // not mandatory but adviced

MySQL

Para instalar o servidor de base de dados, correr os seguintes comandos:

apt-get install mysql-server mysql-client

Um comando que deve sempre ser corrido é o que permite retirar as configurações por default do MySQL server, e caso se tenham esquecido, de atribuir uma password diferente ao root:

mysql_secure_installation

phpMyAdmin

Para que depois seja feita a administração das bases de dados, dá muito jeito ter o phpMyAdmin instalado

apt-get install mcrypt phpmyadmin

Uma das grandes preocupações que deve existir, é, configurar o acesso SSL:

nano /etc/phpmyadmin/config.inc.php

E adicionar a seguinte linha em “Server(s) configuration”

/**  * Server(s) configuration  */ 
$cfg['ForceSSL'] = 'true'; 
$i = 0;

Não esquecer que nesta configuração, o acesso ao phpMyAdmin deve ser feito pelo utilizador phpmyadmin que é configurado durante a instalação do mesmo e não como root.

Caso aconteça ficar sem privilégios de criação de base de dados dentro do phpMyAdmin, basta entrar no mySQL e executar o seguinte comando:

mysql
GRANT ALL PRIVILEGES ON *.* TO phpmyadmin@localhost

GLPI

Primeiro, temos de descarregar a aplicação que está disponível no GitHub

wget https://github.com/glpi-project/glpi/releases/download/9.3.0/glpi-9.3.tgz

A seguir, basta descomprimir, colocar na pasta o Apache e atribuir as respectivas permissões:

tar zxvf glpi-9.3.tgz
mv glpi /var/www/html/
chown -R www-data:www-data /var/www/html/glpi/

A partir daqui, apenas basta adicionar a seguinte linha ao:

nano /etc/apache2/apache2.conf
<Directory /var/www/html/glpi/>
AllowOverride All
</Directory>

E a instalação do GLPI está completa!

Actualização

Ainda não existe, ou pelo menos não encontrei, um manual devidamente completo e traduzido em inglês, o original que eu segui está disponibilizado aqui. Para verificar se há uma nova actualização de versão, consultar o menu Administration > Maintenance > Check if a new version is available, se sim, abrir a ligação e copiar a ligação do ficheiro propriamente dito. A seguir, descarregar para o servidor (exemplo para a versão 9.3.1) e descompactar:

service apache2 stop
wget https://github.com/glpi-project/glpi/releases/download/9.4.3/glpi-9.4.3.tgz
tar zxvf glpi-9.4.3.tgz
cd /var/www/html/
mv glpi glpi_old
cd
mv glpi /var/www/html/

A seguir devemos copiar as pastas /files e /config

cd /var/www/html/ 
cp -avr glpi_old/config/ /glpi/
cp -avr glpi_old/files/ /glpi/
chown -R www-data:www-data /var/www/html/glpi/
service apache2 start

Mesmo assim o GLPI pediu-me user/pass da base de dados, mas no acesso à plataforma, especifiquei que estava a fazer upgrade. Convém ter atenção a este ponto, pois não sei até que ponto podemos fazer um reset à base de dados.

Por fim, por uma questão de segurança, retirem sempre a pasta:

rm -r /var/www/html/glpi/install/

LDAP Sync

Uma das coisas que o GLPI não faz automaticamente é a sincronização de utilizadores entre o GLPI e a Active Directory [AD]. Para isso temos que correr um script que deve ser activado via CronJob:

crontab -u www-data -e
*/15 * * * * cd /var/www/html/glpi/scripts && php -q -f ldap_mass_sync.php -- action=1 server_id=1
*/15 * * * * cd /var/www/html/glpi/scripts && php -q -f ldap_mass_sync.php -- action=0 server_id=1

FusionInventory

O plugin FusionInventory, através de um agente instalado nas máquinas cliente, permite uma gestão muito mais fácil do parque informático, visto que todas as informações da máquina (números de série, sistema operativo, disco, RAM, etc.) são adicionadas automaticamente ao GLPI via esse mesmo agente. Para o instalar, segui os passos da seguinte página. Aconselho sempre descarregar a última versão que está listada no github.

Deixo as duas versões para tar.gz e tar.bz2:

cd /var/www/html/glpi/plugins/ 
wget https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi9.3%2B1.2/fusioninventory-9.3+1.2.tar.gz
tar -vzxjf fusioninventory-9.3+1.2.tar.gz
cd /var/www/html/glpi/plugins/ 
wget https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi9.4%2B1.1/fusioninventory-9.4+1.1.tar.bz2
tar jxf fusioninventory-9.4+1.1.tar.bz2

A partir daqui, basta ir a Setup > Plugins no GLPI, instalar e activar o plugin. Outra coisa que tem de ser feita, é adicionar um cron para o FusionInventory.
NOTA: Correcções feitas no cron de PHP5 para PHP7 e Debian 8 para 9.

crontab -e -u www-data
* * * * * /usr/bin/php7.0 /var/www/html/glpi/front/cron.php &>/dev/null

NOTA: Ainda não percebi porque razão, mas sempre que o GLPI for actualizado, há que limpar o FusionInventory, e voltar a reinstala-lo.

Domínios

Um plugin que vos pode dar imenso jeito é Domains, que permite adicionar uma lista de domínios, sabendo assim quando é que cada um vai expirar.

#copiar o link para descarregar a ultima versão aqui
cd /var/www/html/glpi/plugins
wget https://github.com/InfotelGLPI/domains/releases/download/2.1.0/glpi-domains-2.1.0.tar.gz
tar zxvf glpi-domains-2.1.0.tar.gz

De seguida, proceder como no FusionInventory, ir a Setup > Plugins no GLPI, instalar e activar o plugin. A opção Domains fica disponível no menu Assets.