Snipe-IT – Installation du serveur

snipeit

Snipe-IT est une solution Open Source sous licence AGPLv3 de gestion logistique des matériels et d’équipements informatiques (entre autres).
Elle est développée depuis 2013 par la société Grokability, Inc., basée à San Diego en Californie.
Cet outil permet à un département informatique de savoir qui possède tel ordinateur portable, quand il a été acheté, quelles licences logicielles sont disponibles, quels accessoires ou consommables sont en stock, etc.
Ses principales caractéristiques sont :

  • Gestion centralisée par l’intermédiaire d’une plateforme Web
  • Génération simple de codes barres et QR codes
  • Gestion des licences logicielles
  • Gestion des localisations et emplacements
  • Alertes mail en cas d’épuisement d’un stock de consommables/accessoires/composants ou d’expiration des licences ou garanties
  • Personnalisation des champs relatifs à un équipement
  • Import/Export des équipements
  • Historique des mouvements d’un équipement
  • Authentification par l’intermédiaire d’un annuaire LDAP
  • L’installation se fait sur la base d’un serveur LAMP (Linux-Apache-MariaDB-PHP)
  • Utilisation du framework PHP Laravel
  • Peut être installé sur une distribution Debian/Ubuntu/CentOS/RedHat mais aussi Windows Server

 

Objectif

 

L’objectif de cet article est l’installation et la configuration d’un serveur auto-hébergé Snipe-IT en version 3.5.2 sur une distribution Linux Debian Jessie 8.4 32bits.

 

Schéma logique

 

snipeit

 

Pré-requis

 

1. Pré-requis avant réalisation

  • Un serveur Debian Jessie 8.4 32 bits fonctionnel (installation basique avec utilitaires usuels du système et service SSH)
  • Packages de base supplémentaires : sudo, resolvconf
  • Domaine utilisé : opensharing.priv

 

2. Configuration réseau initiale

Serveur Snipe-IT
FQDN snipeit.opensharing.priv
Adresse IP 192.168.1.17
Réseau 192.168.1.0/24
Passerelle 192.168.1.1
dns-nameservers 192.168.1.11 192.168.1.12
dns-search opensharing.priv

 

Contenu initial du fichier /etc/network/interfaces :

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
	address 192.168.1.17
	netmask 255.255.255.0
	network 192.168.1.0
	broadcast 192.168.1.255
	gateway 192.168.1.1
	dns-search opensharing.priv
	dns-nameservers 192.168.1.11 192.168.1.12

 
Contenu initial du fichier /etc/hosts :

127.0.0.1	localhost.localdomain           localhost
192.168.1.17	snipeit.opensharing.priv        snipeit

Rmq : L’adresse 127.0.1.1 doit être retirée sur un serveur à IP fixe et remplacée par cette dernière, tel que l’exemple ci-dessus.
 
Contenu initial du fichier /etc/host.conf :

order hosts, bind
multi on

 
Contenu initial du fichier /etc/resolv.conf :

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.11
nameserver 192.168.1.12
search opensharing.priv

Rmq :
Le fichier /etc/resolv.conf ne doit pas être édité dès lors que le paquet resolvconf a été installé.

Pour prendre en compte les modifications des fichiers de configuration relatifs au réseau, redémarrage du service réseau :

# /etc/init.d/networking restart
# /etc/init.d/networking reload

 

Réalisation

 

Pré-requis communs aux différentes alternatives : Mise à jour du système

 

# apt update
# apt upgrade

Concernant l’installation proprement dite du serveur, il existe 4 alternatives :

  • Installation par le biais d’un script automatisant une grande partie de la procédure
  • Téléchargement des sources
  • Installation via la commande git : méthode recommandée
  • Déploiement d’une image Docker (ne sera pas abordé ici)

 

Alternative 1 : Installation à partir d’un script

 

snipeit

# mkdir /home/adminsys/snipeit/
# cd /home/adminsys/snipeit/
# wget https://raw.githubusercontent.com/snipe/snipe-it/master/install.sh
# chmod 744 install.sh
# ./install.sh
# cat /etc/apache2/sites-available/snipeit.conf > /etc/apache2/sites-available/000-default.conf
# /etc/init.d/apache2 restart

C’est terminé pour cette alternative d’installation. La configuration se finalise avec la partie commune aux 3 alternatives.

 

Remarques sur le script d’installation install.sh :

Ce script téléchargera le script snipeit.sh qui procédera à quelques vérifications :

  • Détection de l’OS : Debian, Ubuntu ou CentOS/RedHat
  • Questions relatives à la configuration de la base de données snipeit et à l’utilisateur snipeit

Le script installera ensuite les paquets suivants (et leurs dépendances) après un update/upgrade :

mariadb-server mariadb-client
apache2
git unzip php5 php5-mcrypt php5-curl php5-mysql php5-gd php5-ldap libapache2-mod-php5 curl

 

Visualisation des paquets installés par le script snipeit.sh :
# diff installed_before.txt installed_after.txt --side-by-side --suppress-common-lines
		>	apache2/stable,now 2.4.10-10+deb8u7 i386  [installé]
		>	apache2-data/stable,now 2.4.10-10+deb8u7 all  [installé, automatique]
		>	apache2-utils/stable,now 2.4.10-10+deb8u7 i386  [installé, automatique]
		>	curl/stable,stable,now 7.38.0-4+deb8u4 i386  [installé]
		>	git/stable,stable,now 1:2.1.4-2.1+deb8u2 i386  [installé]
		>	git-man/stable,stable,now 1:2.1.4-2.1+deb8u2 all  [installé, automatique] 
		>	libaio1/stable,now 0.3.110-1 i386  [installé, automatique]
		>	libapache2-mod-php5/stable,now 5.6.26+dfsg-0+deb8u1 i386  [installé]
		>	libcurl3/stable,stable,now 7.38.0-4+deb8u4 i386  [installé, automatique]
		>	libdbd-mysql-perl/stable,now 4.028-2+deb8u2 i386  [installé, automatique] 
		>	libdbi-perl/stable,now 1.631-3+b1 i386  [installé, automatique]
		>	liberror-perl/stable,now 0.17-1.1 all  [installé, automatique]
		>	libhtml-template-perl/stable,now 2.95-1 all  [installé, automatique]
		>	libmcrypt4/stable,now 2.5.8-3.3 i386  [installé, automatique]
		>	libmysqlclient18/stable,now 5.5.52-0+deb8u1 i386  [installé, automatique] 
		>	libonig2/stable,now 5.9.5-3.2 i386  [installé, automatique]
		>	libqdbm14/stable,now 1.8.78-5+b1 i386  [installé, automatique]
		>	libreadline5/stable,now 5.2+dfsg-2 i386  [installé, automatique]
		>	libterm-readkey-perl/stable,now 2.32-1+b1 i386  [installé, automatique]
		>	mariadb-client/stable,now 10.0.27-0+deb8u1 all  [installé]
		>	mariadb-client-10.0/stable,now 10.0.27-0+deb8u1 i386  [installé]
		>	mariadb-client-core-10.0/stable,now 10.0.27-0+deb8u1 i386  [installé, automatique]
		>	mariadb-common/stable,now 10.0.27-0+deb8u1 all  [installé, automatique]
		>	mariadb-server/stable,now 10.0.27-0+deb8u1 all  [installé]
		>	mariadb-server-10.0/stable,now 10.0.27-0+deb8u1 i386  [installé, automatique]
		>	mariadb-server-core-10.0/stable,now 10.0.27-0+deb8u1 i386  [installé, automatique]
		>	mysql-common/stable,now 5.5.52-0+deb8u1 all  [installé, automatique]
		>	php5/stable,now 5.6.26+dfsg-0+deb8u1 all  [installé]
		>	php5-cli/stable,now 5.6.26+dfsg-0+deb8u1 i386  [installé, automatique]
		>	php5-common/stable,now 5.6.26+dfsg-0+deb8u1 i386  [installé, automatique]
		>	php5-curl/stable,now 5.6.26+dfsg-0+deb8u1 i386  [installé]
		>	php5-gd/stable,now 5.6.26+dfsg-0+deb8u1 i386  [installé]
		>	php5-json/stable,now 1.3.6-1 i386  [installé, automatique]
		>	php5-ldap/stable,now 5.6.26+dfsg-0+deb8u1 i386  [installé]
		>	php5-mcrypt/stable,now 5.6.26+dfsg-0+deb8u1 i386  [installé]
		>	php5-mysql/stable,now 5.6.26+dfsg-0+deb8u1 i386  [installé]
		>	php5-readline/stable,now 5.6.26+dfsg-0+deb8u1 i386  [installé, automatique]
		>	rsync/stable,now 3.1.1-3 i386  [installé, automatique]
		>	ssl-cert/stable,now 1.0.35 all  [installé, automatique]

Puis le script snipeit.sh procédera au dézippage de l’archive master.zip dans un répertoire temporaire :

# wget -P /tmp/snipeit/ https://github.com/snipe/snipe-it/archive/master.zip
# unzip qo /tmp/snipeit/master.zip -d /tmp/snipeit/

Contenu de l’archive qu’il copie ensuite récursivement dans le répertoire relatif au service web :

cp -R /tmp/snipeit/snipe-it-master/ /var/www/snipeit/

Suivi par la création d’un virtualhost dans le fichier /etc/apache2/sites-available/snipeit.conf :

<VirtualHost *:80>
ServerAdmin admin@opensharing.priv
    <Directory /var/www/snipeit/public>
        Require all granted
        AllowOverride All
   </Directory>
    DocumentRoot /var/www/snipeit/public
    ServerName snipeit.opensharing.priv
        ErrorLog /var/log/apache2/snipeIT.error.log
        CustomLog /var/log/apache2/access.log combined
</VirtualHost>

Enfin il procédera à la configuration relative à la base de données MariaDB dans le fichier caché /var/www/snipeit/.env :

APP_TIMEZONE=$(cat /etc/timezone)
DB_HOST=localhost
DB_DATABASE=snipeit
DB_USERNAME=snipeit
DB_PASSWORD=$mysqluserpw
APP_URL=http://$fqdn
APP_KEY=$random32

 

Alternative 2 : Installation à partir des sources

 

Installation des paquets pré-requis
# apt install mariadb-server mariadb-client
# apt install apache2
# apt install git unzip php5 php5-mcrypt php5-curl php5-mysql php5-gd php5-ldap libapache2-mod-php5 curl

 

Téléchargement des sources
# mkdir /home/adminsys/snipeit/
# cd /home/adminsys/snipeit/
# wget https://github.com/snipe/snipe-it/archive/master.zip
# unzip master.zip

Ceci génère un dossier snipe-it-master contenant tous les fichiers relatifs à l’application web.
Il est alors nécessaire de copier son contenu dans /var/www/snipeit/.

# cp -R /home/adminsys/snipeit/snipe-it-master/ /var/www/snipeit/

Cette dernière commande crée le répertoire /var/www/snipeit avant d’y copier le contenu de l’archive dézippée.

 

Création de la base de données snipeit et d’utilisateur snipeit

Dans un premier temps, réinitialisation de la configuration MariaDB :

# mysql_secure_installation
Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Change the root password? [Y/n] n
 ... skipping.

Remove anonymous users? [Y/n] Y
 ... Success!

Disallow root login remotely? [Y/n] n
 ... skipping.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reload privilege tables now? [Y/n] Y
 ... Success!

Rmq : Les réponses aux questions ci-dessus sont purement subjectives.
Puis création proprement dite de la base de données snipeit sur laquelle l’utilisateur snipeit a le contrôle total :

# mysql -u root -p
Enter password:

MariaDB [(none)]> create database snipeit;
Query OK, 1 row affected (0.02 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| snipeit            |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> create user snipeit;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all on snipeit.* to 'snipeit'@'localhost' identified by 'snipeit';
Query OK, 0 rows affected (0.00 sec)

 

Vérification de la connexion à la base de données snipeit
# mysql -u snipeit -p snipeit
Enter password: 

MariaDB [snipeit]>

 

Configuration de Apache

Supprimer le contenu par défaut du fichier 000-default.conf et le remplacer par le VirtualHost ci-dessous.

# nano /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerAdmin admin@opensharing.priv
    <Directory /var/www/snipeit/public>
        Require all granted
        AllowOverride All
   </Directory>
    DocumentRoot /var/www/snipeit/public
    ServerName snipeit.opensharing.priv
        ErrorLog /var/log/apache2/snipeIT.error.log
        CustomLog /var/log/apache2/access.log combined
</VirtualHost>

La configuration se finalise avec la partie commune aux 3 alternatives.

 

Alternative 3 : Installation via git (recommandée)

 

 

Installation des paquets pré-requis
# apt install mariadb-server mariadb-client
# apt install apache2
# apt install git unzip php5 php5-mcrypt php5-curl php5-mysql php5-gd php5-ldap libapache2-mod-php5 curl

 

Clonage via l’utilitaire git
# git clone https://github.com/snipe/snipe-it /var/www/snipeit/

La commande ci-dessus crée le dossier de destination /var/www/snipeit/ et y dépose le contenu du dépôt situé à l’adresse https://github.com/snipe/snipe-it
Pour mettre à jour Snipe-IT (lorsqu’une mise à jour sera disponible), il suffira alors d’exécuter la commande suivante :

# cd /var/www/snipeit/
# git pull

 

Configuration de la base de données snipeit
# mysql_secure_installation
Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Change the root password? [Y/n] n
 ... skipping.

Remove anonymous users? [Y/n] Y
 ... Success!

Disallow root login remotely? [Y/n] n
 ... skipping.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reload privilege tables now? [Y/n] Y
 ... Success!

Rmq : Les réponses aux questions ci-dessus sont purement subjectives.

# mysql -u root -p
Enter password:

MariaDB [(none)]> create database snipeit;
Query OK, 1 row affected (0.02 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| snipeit            |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> create user snipeit;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all on snipeit.* to 'snipeit'@'localhost' identified by 'snipeit';
Query OK, 0 rows affected (0.00 sec)

 

Vérification de la connexion à la base de données snipeit
# mysql -u snipeit -p snipeit
Enter password: 

MariaDB [snipeit]>

 

Configuration de Apache

Supprimer le contenu par défaut du fichier 000-default.conf et le remplacer par le VirtualHost ci-dessous.

# nano /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerAdmin admin@opensharing.priv
    <Directory /var/www/snipeit/public>
        Require all granted
        AllowOverride All
   </Directory>
    DocumentRoot /var/www/snipeit/public
    ServerName snipeit.opensharing.priv
        ErrorLog /var/log/apache2/snipeIT.error.log
        CustomLog /var/log/apache2/access.log combined
</VirtualHost>

La configuration se finalise avec la partie commune aux 3 alternatives.

 

Configuration commune aux différentes alternatives

 

Création du fichier .env stockant les variables de configuration du système Snipe-IT
# cd /var/www/snipeit/
# cp .env.example .env

 

Modification du fichier .env :
# nano .env

Tel que :

[...]
APP_URL=http://snipeit.opensharing.priv
APP_TIMEZONE='Europe/Paris'
APP_LOCALE=fr
[...]
DB_HOST=localhost
DB_DATABASE=snipeit
DB_USERNAME=snipeit
DB_PASSWORD=snipeit
[...]

 

Finalisation de la configuration Apache
# chown -R www-data:www-data /var/www/
# php5enmod mcrypt
# a2enmod rewrite
# /etc/init.d/apache2 restart

 

Installation des dépendances PHP via composer :
# cd /var/www/snipeit/
# curl -sS https://getcomposer.org/installer | php
# sudo -u www-data php composer.phar install --no-dev --prefer-source
# sudo -u www-data php composer.phar dump-autoload
# php artisan migrate
# php artisan config:clear
# php artisan key:generate

 

Pre-Flight & Setup

La dernière phase de l’installation de Snipe-IT consiste à se connecter, via un navigateur, à l’application Web :
http://snipeit.opensharing.priv
Elle se fait en 4 étapes simples et assistées :

  • Etape 1 : Configuration Check
  • Etape 2 : Create Database Tables
  • Etape 3 : Create Admin user
  • Etape 4 : Première connexion

Il suffit alors de se laisser guider en s’assurant qu’aucune erreur n’est signalée à l’étape 1 : Configuration Check

snipeit1
snipeit2
snipeit3
snipeit4
snipeit5
 

Pour aller plus loin

 

Les sauvegardes

Il est possible d’effectuer une sauvegarde via l’interface Web de Snipe-IT :
Admin > Backups > Generate Backup
Revient à effectuer :

# cd /var/www/snipeit/
# php artisan snipeit:backup
Starting backup...
Dumping database snipeit...
Determining files to backup...
Zipped 43 files...
Copying 2016-10-28-140453.zip (size: 134.09 KB) to disk named local...
Successfully copied .zip file to disk named local.
Backup completed!

ou

# /usr/bin/php /var/www/snipeit/artisan snipeit:backup

snipeit-backup1

La sauvegarde est une archive zip de la forme AAAA-MM-JJ-hhmmss.zip stockée dans /var/www/snipeit/storage/app/backups
Elle contient principalement les fichiers uploadés ou générés et le répertoire config (seuls les répertoires ont été ici affichés) :

var/www/snipeit/
├── config
├── public
│   └── uploads
│       ├── assets
│       ├── avatars
│       ├── barcodes
│       ├── models
│       └── suppliers
└── storage
    └── private_uploads
        ├── assetmodels
        ├── assets
        ├── imports
        ├── licenses
        └── users
            ├── assetmodels
            ├── assets
            ├── imports
            ├── licenses
            └── users

Mais aussi une sauvegarde de la base de données nommée snipeit.sql lisible puisqu’au format ASCII txt :

# file snipeit.sql
snipeit.sql: ASCII text, with very long lines

Au final, la création automatisée d’une sauvegarde zip via l’interface web équivaut à exécuter :

# mysqldump --user=snipeit --password=snipeit --databases snipeit > snipeit.sql
# zip -Dr 2016-10-28-152212.zip /var/www/snipeit/config/ /var/www/snipeit/public/uploads/
/var/www/snipeit/storage/private_uploads/ snipeit.sql

Rmq : Il est important, en parallèle de ce backup, de sauvegarder le fichier .env qui stocke toutes les variables relatives à la configuration de Snipe-IT et notamment la clef APP_KEY en base64.

 

Restauration d’une sauvegarde

Une sauvegarde, après dézippage, contient l’arborescence des dossiers depuis le dossier var et une sauvegarde de la base de donnée nommée snipeit.sql.
Il faut donc restaurer chacun de ses éléments.

# unzip 2016-10-28-152212.zip
# cp -r var/ /
# mysql --user=snipeit --password=snipeit snipeit < snipeit.sql
# cp -a .env /var/www/snipeit/
# chown -R www-data:www-data /var/www/

Rmq : Le fichier .env n’est pas contenue dans la sauvegarde, il faut systématiquement en posséder une copie.

 

Sauvegarde complète manuelle

# mkdir p /home/adminsys/backup/3.5.2/
# cd /home/adminsys/backup/3.5.2/
# tar -czvf backup-snipeit-20161102.tar.gz -C /var/www/ snipeit/
# cp -a /var/www/snipeit/.env .
# mysqldump --user=snipeit --password=snipeit --databases snipeit > snipeit-20161102.sql

 

L’upgrade de version

 

Si l’installation s’est faite avec git

Effectuer une sauvegarde de la base de données snipeit et de l’arborescence des dossiers/fichiers dans /var/www/snipeit/, ainsi que le fichier de configuration .env puis :

# cd /var/www/snipeit/
# git pull
# chown -R www-data:www-data /var/www/
# sudo -u www-data php composer.phar install --no-dev --prefer-source
# php artisan config:clear
# sudo -u www-data php composer.phar dump-autoload
# php artisan migrate
# php artisan view:clear

Rmq : Le plus prudent reste toujours de se référer aux notes de versions.

 

Si l’installation s’est faite depuis les source ou le script install.sh

# cd /home/adminsys/snipeit/
# wget https://github.com/snipe/snipe-it/archive/master.zip
# unzip master.zip
# cp -R /home/adminsys/snipeit/snipe-it-master/. /var/www/snipeit/
# chown -R www-data:www-data /var/www/
# cd /var/www/snipeit/
# sudo -u www-data php composer.phar install --no-dev --prefer-source
# php artisan config:clear
# sudo -u www-data php composer.phar dump-autoload
# php artisan migrate
# php artisan view:clear

Rmq : Le plus prudent reste toujours de se référer aux notes de versions.

 

La configuration des alertes par mail

 

Activation des alertes via l’interface Web

Admin > Settings > Edit Settings > (cocher) Alerts enabled

snipeit12

 

Paramétrage des informations relatives au serveur de messagerie

# nano /var/www/snipeit/.env
[...]
# --------------------------------------------
# REQUIRED: OUTGOING MAIL SERVER SETTINGS
# --------------------------------------------
MAIL_DRIVER=smtp
MAIL_HOST=smtp.opensharing.priv
MAIL_PORT=587
MAIL_USERNAME=service.informatique
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDR=snipeit@opensharing.priv
MAIL_FROM_NAME='Snipe-IT'
MAIL_REPLYTO_ADDR=snipeit@opensharing.priv
MAIL_REPLYTO_NAME='Snipe-IT'
[...]

Les paramètres sont propres à chaque configuration, mais dans tous les cas un utilisateur valide doit être saisi.

 

Les notifications d’expiration de licences/garanties et d’épuisement d’un bien

 
snipeit10

 
Admin > Settings > Edit Settings > Expiring Alerts Threshold (in days)
snipeit14
Si cette valeur est à 30 jours alors une notification par mail sera envoyée si une licence/garantie expire dans moins de 30 jours.
snipeit8

 
Admin > Settings > Edit Settings > Inventory Alert Threshold
snipeit15
Si cette valeur est à 5 alors une notification par mail sera envoyée si un composant/accessoire/consommable arrive à épuisement, c’est-à-dire que seuls 5 exemplaires ou moins restent disponibles.
snipeit9
Rmq :
Si aucune quantité minimale n’est spécifiée pour cet accessoire, alors elle prend la valeur par défaut 0 et c’est le paramètre global qui est pris en compte (cf ci-dessus)
Si une quantité minimale pour cet accessoire a été spécifiée, alors celle-ci est prioritaire par rapport à cette valeur globale (cf ci-dessous)
snipeit16

Parallèlement à cette notification par mail d’épuisement d’inventaire, une notification identique apparait sur l’interface Web d’administration :
snipeit6
snipeit7

 

La vérification périodique des licences et inventaires

Les conditions d’envoi de mails ont été définies mais la tâche planifiée de vérification de ces conditions ne l’est pas encore.
En d’autres termes, il faut mettre en place un cron quotidien (ou autre, en fonction des besoins) pour vérifier si certaines licences ne sont pas arrivées à expiration en fonction des conditions définies ou si des biens de type composant/accessoire/consommable n’arrivent pas à épuisement.

Ex pour une vérification quotidienne :

# crontab -e
0 0 * * * /usr/bin/php /var/www/snipeit/artisan schedule:run >> /dev/null 2>&1

ou

@daily /usr/bin/php /var/www/snipeit/artisan schedule:run >> /dev/null 2>&1

Ceci aura pour effet de vérifier quotidiennement si les tâches planifiées PHP suivantes doivent être exécutées :

$schedule->command('snipeit:expiring-alerts')->daily();
$schedule->command('snipeit:inventory-alerts')->daily();
$schedule->command('snipeit:backup')->weekly();

C’est à dire :

  • Vérification quotidienne de l’état des licences/garanties
  • Vérification quotidienne de l’état des composants/accessoires/consommables
  • Sauvegarde hebdomadaire de la base de données snipeit, des fichiers uploadés et de configuration

Au final, ce cron général (schedule:run) équivaut à effectuer 3 cron distincts :

@daily /usr/bin/php /var/www/snipeit/artisan snipeit:expiring-alerts
@daily /usr/bin/php /var/www/snipeit/artisan snipeit:inventory-alerts
@weekly /usr/bin/php /var/www/snipeit/artisan snipeit:backup

Il est toutefois possible de lancer ces tâches manuellement :

# cd /var/www/snipeit/
# php artisan snipeit:expiring-alerts
0 expiring assets
1 expiring licenses
Report sent to admin@opensharing.priv
# php artisan snipeit:inventory-alerts
# php artisan snipeit:backup
Starting backup...
Dumping database snipeit...
Determining files to backup...
Zipped 40 files...
Copying 2016-11-03-173128.zip (size: 905.49 KB) to disk named local...
Successfully copied .zip file to disk named local.
Backup completed!

Rmq : La deuxième commande, celle de vérification d’inventaire, ne retourne rien avec la version testée de Snipe-IT (v. 3.5.2) mais un mail est bien émis si les conditions sont respectées (quantité inférieure à 5 par défaut).

 

Références

Fermer le menu
%d blogueurs aiment cette page :