Snipe-IT est une application Web de gestion des actifs informatiques gratuite et open source qui peut être utilisée pour le suivi des licences, des accessoires, des consommables et des composants. Il est écrit en langage PHP et utilise MySQL pour stocker ses données. Il s'agit d'une application multiplateforme qui fonctionne sur tous les principaux systèmes d'exploitation tels que Linux, Windows et Mac OS X. Elle s'intègre facilement à Active Directory, LDAP et prend en charge l'authentification à deux facteurs avec Google Authenticator.
Dans ce tutoriel, nous allons apprendre à installer Snipe-IT sur le serveur Debian 9.
Exigences
- Un serveur exécutant Debian 9.
- Un utilisateur non root avec des privilèges sudo.
Mise en route
Avant d'installer des packages, il est recommandé de mettre à jour le package système avec la dernière version. Vous pouvez le faire en exécutant la commande suivante :
sudo apt-get update -y
sudo apt-get upgrade -y
Ensuite, redémarrez le système pour appliquer toutes les mises à jour. Installez ensuite les autres packages requis avec la commande suivante :
sudo apt-get install git curl unzip wget -y
Une fois tous les packages installés, vous pouvez passer à l'étape suivante.
Installer le serveur LAMP
Snipe-IT fonctionne sur le serveur Web Apache, vous devrez donc installer LAMP (Apache, MariaDB, PHP) sur votre système.
Tout d'abord, installez Apache, PHP et d'autres bibliothèques PHP avec la commande suivante :
sudo apt-get install apache2 libapache2-mod-php php php-pdo php-mbstring php-tokenizer php-curl php-mysql php-ldap php-zip php-fileinfo php-gd php-dom php-mcrypt php-bcmath -y
Une fois tous les packages installés, démarrez le service Apache et activez-le au démarrage avec la commande suivante :
sudo systemctl start apache2
sudo systemctl enable apache2
Installer et configurer MariaDB
Snipe-IT utilise MariaDB pour stocker ses données. Vous devrez donc installer MariaDB sur votre système. Par défaut, la dernière version de MariaDB n'est pas disponible dans le référentiel Debian 9. Vous devrez donc installer le référentiel MariaDB sur votre système.
Tout d'abord, ajoutez la clé APT avec la commande suivante :
sudo apt-get install software-properties-common dirmngr -y
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
Ensuite, ajoutez le référentiel MariaDB à l'aide de la commande suivante :
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.hosteurope.de/mirror/mariadb.org/repo/10.1/debian stretch main'
Ensuite, mettez à jour le référentiel avec la commande suivante :
sudo apt-get update -y
Une fois le référentiel mis à jour, vous pouvez installer MariaDB avec la commande suivante :
sudo apt-get install mariadb-server mariadb-client -y
Ensuite, démarrez le service MariaDB et activez-le pour qu'il démarre au démarrage avec la commande suivante :
sudo systemctl start mysql
sudo systemctl enable mysql
Vous pouvez vérifier l'état du serveur MariaDB avec la commande suivante :
sudo systemctl status mysql
Si tout va bien, vous devriez voir le résultat suivant :
? mariadb.service - MariaDB database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2017-12-25 08:41:25 EST; 29min ago Process: 618 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 615 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS) Process: 436 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] && systemc Process: 429 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 418 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS) Main PID: 574 (mysqld) Status: "Taking your SQL requests now..." Tasks: 27 (limit: 4915) CGroup: /system.slice/mariadb.service ??574 /usr/sbin/mysqld Dec 25 08:41:07 debian systemd[1]: Starting MariaDB database server... Dec 25 08:41:14 debian mysqld[574]: 2017-12-25 8:41:14 140488893776448 [Note] /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) starting as p Dec 25 08:41:25 debian systemd[1]: Started MariaDB database server.
Ensuite, sécurisez votre MariaDB en exécutant le script suivant :
sudo mysql_secure_installation
Répondez à toutes les questions comme indiqué ci-dessous :
Set root password? [Y/n] n Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y
Une fois MariaDB sécurisée, connectez-vous au shell MariaDB avec la commande suivante :
mysql -u root -p
Entrez votre mot de passe root lorsque vous y êtes invité, puis créez une base de données pour Snipe-IT avec la commande suivante :
MariaDB [(none)]> create database snipeitdb character set utf8;
Ensuite, créez un utilisateur pour Snipe-IT et accordez tous les privilèges à Snipe-IT avec la commande suivante :
MariaDB [(none)]> GRANT ALL PRIVILEGES ON snipeitdb.* TO 'snipeit'@'localhost' IDENTIFIED BY 'password';
Ensuite, videz les privilèges avec la commande suivante :
MariaDB [(none)]> flush privileges;
Enfin, quittez la console MariaDB à l'aide de la commande suivante :
MariaDB [(none)]> quit
Installer Snipe-IT
Vous pouvez télécharger la dernière version de Snipe-IT à partir du référentiel Git avec la commande suivante :
git clone https://github.com/snipe/snipe-it snipe-it
Ensuite, déplacez le répertoire téléchargé vers le répertoire racine apache avec la commande suivante :
sudo mv snipe-it /var/www/
Ensuite, vous devrez installer Composer sur votre système. Vous pouvez l'installer avec la commande suivante :
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Ensuite, changez le répertoire en snipe-it et installez les dépendances PHP à l'aide de Composer avec la commande suivante :
cd /var/www/snipe-it
sudo composer install --no-dev --prefer-source
Ensuite, générez la "APP_Key" avec la commande suivante :
sudo php artisan key:generate
Vous devriez voir le résultat suivant :
************************************** * Application In Production! * ************************************** Do you really wish to run this command? (yes/no) [no]: > yes Application key [base64:uWh7O0/TOV10asWpzHc0DH1dOxJHprnZw2kSOnbBXww=] set successfully.
Ensuite, vous devrez remplir MySQL avec le schéma de base de données par défaut de Snipe-IT. Vous pouvez le faire en exécutant la commande suivante :
sudo php artisan migrate
Tapez oui, lorsque vous êtes invité à confirmer que vous souhaitez effectuer la migration :
************************************** * Application In Production! * ************************************** Do you really wish to run this command? (yes/no) [no]: > yes Migration table created successfully.
Ensuite, copiez l'exemple de fichier .env et apportez-y quelques modifications :
sudo cp .env.example .env
sudo nano .env
Modifiez les lignes suivantes :
APP_URL=http://example.com APP_TIMEZONE=US/Eastern APP_LOCALE=en # -------------------------------------------- # REQUIRED: DATABASE SETTINGS # -------------------------------------------- DB_CONNECTION=mysql DB_HOST=localhost DB_DATABASE=snipeitdb DB_USERNAME=snipeit DB_PASSWORD=password DB_PREFIX=null DB_DUMP_PATH='/usr/bin'
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, indiquez la propriété et les autorisations de fichier appropriées avec la commande suivante :
sudo chown -R www-data:www-data storage public/uploads
sudo chmod -R 755 storage public/uploads
Configurer Apache pour Snipe-IT
Ensuite, vous devrez créer une directive d'hôte virtuel apache pour Snipe-IT. Vous pouvez le faire en créant snipeit.conf
fichier dans /etc/apache2/sites-available
répertoire :
sudo nano /etc/apache2/sites-available/snipeit.conf
Ajoutez les lignes suivantes :
<VirtualHost *:80> ServerAdmin [email protected] <Directory /var/www/snipe-it/public> Require all granted AllowOverride All </Directory> DocumentRoot /var/www/snipe-it/public ServerName example.com ErrorLog /var/log/apache2/snipeIT.error.log CustomLog /var/log/apache2/access.log combined </VirtualHost>
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, activez l'hôte virtuel avec la commande suivante :
sudo a2ensite snipeit.conf
Ensuite, activez PHP mcrypt, le module mbstring et le module de réécriture Apache avec la commande suivante :
sudo phpenmod mcrypt
sudo phpenmod mbstring
sudo a2enmod rewrite
Enfin, redémarrez le serveur Web apache pour appliquer toutes les modifications :
sudo systemctl restart apache2
Configurer le pare-feu
Par défaut, Snipe-IT fonctionne sur le port 80, vous devrez donc autoriser le port 80 à travers le pare-feu. Par défaut, le pare-feu UFW n'est pas installé dans Debian 9, vous devrez donc d'abord l'installer. Vous pouvez l'installer en exécutant simplement la commande suivante :
sudo apt-get install ufw -y
Une fois UFW installé, activez-le pour qu'il démarre au démarrage avec la commande suivante :
sudo ufw enable
Ensuite, autorisez le port 80 à l'aide de la commande suivante :
sudo ufw allow 80
Ensuite, rechargez la règle de pare-feu UFW avec la commande suivante :
sudo ufw reload
Accéder à Snipe-IT
Tout est maintenant installé et configuré, il est temps d'accéder à l'interface web de Snipe-IT.
Ouvrez votre navigateur Web et saisissez l'URL http://example.com , vous serez redirigé vers la page suivante :
La page ci-dessus effectuera une vérification du système pour s'assurer que votre configuration semble correcte. Ensuite, cliquez sur Créer une table de base de données bouton vous devriez voir la page suivante :
Ici, cliquez sur Créer un utilisateur page, vous devriez voir la page suivante :
Ici, indiquez le nom de votre site, votre nom de domaine, votre nom d'utilisateur d'administrateur et votre mot de passe, puis cliquez sur Enregistrer l'utilisateur bouton, vous devriez voir le tableau de bord par défaut de Snipe-IT comme ci-dessous :
Conclusion
Dans le tutoriel ci-dessus, nous avons appris à installer Snipe-IT sur le serveur Debian 9. Nous avons également appris à configurer Snipe-IT via une interface Web. J'espère que vous avez maintenant suffisamment de connaissances pour déployer Snipe-IT dans votre environnement de production. Pour plus d'informations, vous pouvez consulter la page de documentation de Snipe-IT.