GLPI em Debian 9
3 Julho 2018Para 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.
Boa tarde e o banco de dados?
Sidney, adicionei a parte da base de dados. Estava perdida num post de rascunho. Também adicionei como actualizar o GLPI.
Muito obrigado pelo post. Ajudou muito. Alguma anotações para complementar:
1. Caso para alguém apareça algum alerta em “Testando a extensão CAS” informando que o módulo não foi encontrado, pode resolver instalando o pacote:
# apt-get install php-cas
2. Caso apareça algum alerta em “O acesso web ao diretório de arquivos está protegido” informando que a pasta está desprotegida, pode resolver seguindo os passos abaixo:
2.1. Edite o arquivo apache.conf
# nano /etc/apache2/apache2.conf
2.2. Adicione o texto abaixo dentro do arquivo
Options -Indexes
Options -Indexes