IT Asset Management mit Snipe-IT
Je mehr Laptops, Computer und Mobile Endgeräte ein Unternehmen besitzt, um so schwieriger wird die Verwaltung. Hier kann ein IT Asset Management mit der OpenSource Software Snipe-IT helfen.
Warum ein Asset Management immer wichtiger wird
Insbesondere duch das aufkommen von Homeoffice sind nicht mehr alle Endgeräte im Unternehmen vor Ort, sondern immer mehr IT Ausstattung landet auch im Homeoffice der Mitarbeiter.
Während man bei weniger als 10 Mitarbeitern sich noch mit einer simplen Excel Liste behelfen kann, wird es bei mehr Mitarbeitern schnell unübersichtlich. In der Praxis sind wir immer wieder mit folgenden Fragen konfrontiert:
- Wer hat welches Laptop benutzt?
- Wie ist das Laptop ausgestattet?
- Hat das Laptop noch Garantie?
- Wie ist der Zustand vom Laptop?
Gerade wenn Mitarbeiter ausscheiden aus dem Unternehmen, stellt sich oft die Frage, was muss der Mitarbeiter am letzten Tag wieder im Unternehmen abgeben?
Was ist Snipe-IT?
Snipe-IT ist eine Open-Source Software zur Verwaltung der IT Assets im Unternehmen. Zu den möglichen Assets gehören offensichtliche Hardware wie Laptops, Computer oder mobile Endgeräte, aber auch Zubehör wie Monitore, Tastatur und Maus wie auch Headsets und Kameras. Nicht zu vernachlässigen ist auch die Verwaltung von Lizenzen.
Mit Snipe-IT lassen sich also alle diese Assets verwalten und deren Aushändigung sowie den Zustand Dokumentieren. Dabei kann genau erfasst werden, welcher Mitarbeiter welches Assets in einem bestimmten Zeitraum erhalten hat. Die Asset Verwaltung kann dabei von mehreren Benutzern im Unternehmen jederzeit eingesehen werden. Dadurch kann die Personalabteilung beim Ausscheiden eines Mitarbeiters schnell und selbstständig nachschauen, welche Assets am letzten Tag zurückgeben werden müssen.
Funktionen im Überblick
- Verwaltung von Assests (Hardware wie auch Lizenzen)
- Dokumentation von Assets
- Wartungshistorie
- Zuweisung zu Benutzer und Standort
- Zugriffsberechtigungen für verschiedene Nutzer möglich
Installationsanleitung Snipe-IT unter Ubuntu 22.04 LTS
Wir installieren Snipe-IT unter Ubuntu 22.04 LTS und benötigen den Port 443/TCP für den Zugriff auf das Webinterface und müssen ggf. git installieren via "apt install git".
Wir beginnen mit der Installation von PHP 8.1:
apt install php8.1-{bcmath,common,ctype,curl,fileinfo,fpm,gd,iconv,intl,mbstring,mysql,soap,xml,xsl,zip,cli} && apt-get install php-ldap
Anschließend installieren wir Composer:
curl -sS https://getcomposer.org/installer -o composer-setup.php
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Und installieren MariaDB, erstellen eine Datenbank und einen Datenbanknutzer:
apt install mariadb-server
mysql
Das Passwort müssen wir durch ein eigenes sicheres ersetzen:
mysql> CREATE DATABASE snipeit;
mysql> GRANT ALL ON snipeit.* TO snipeit@localhost identified by '<mein-passwort>';
mysql> FLUSH PRIVILEGES;
mysql> \q
Jetzt erstellen wir das Verzeichnis für Snipe-IT und wechseln in das neue Verzeichnis:
mkdir /var/www && mkdir /var/www/html && cd /var/www/html
Wir downloaden Snipe-IT von Github und wechseln in das Verzeichnis:
git clone https://github.com/snipe/snipe-it snipe-it && cd snipe-it
Nun müssen wir die .env.example kopieren und in .env umbennen:
cp .env.example .env
Und wir öffnen die .env Datei:
nano .env
Folgende Einträge müssen geändert werden und anschließend speichern wir die Datei.
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
APP_URL=https://meine-url.xy
APP_TIMEZONE='Europe/Berlin'
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_DATABASE=snipeit
DB_USERNAME=snipeit
DB_PASSWORD=mein-passwort
Anschließend müssen die Berechtigungen für die eben erstellten Ordner gesetzt werden.
chown -R www-data: /var/www/html/snipe-it
chmod -R 755 /var/www/html/snipe-it
Und wir updaten die dependencies:
composer update --no-plugins --no-scripts
sowie installieren alle dependencies:
composer install --no-dev --prefer-source --no-plugins --no-scripts
Abschließend muss der Laravel App Key generiert und in die .env Datei geschrieben werden:
php artisan key:generate
Damit Snipe-IT via Webbrowser aufgerufen werden kann, brauchen wir Webserver. Dafür nutzen wir nginx und installieren nginx:
apt install nginx
Wir wechseln zum /tmp Verzeichnis und erstellen ein selbstsigniertes SSL Zertifikat. Alternativ kann natürlich auch Certbot mit Let's Encryption genutzt werden.
cd /tmp
openssl req -newkey rsa:4096 \
-x509 \
-sha256 \
-days 3650 \
-nodes \
-out snipeit.crt \
-keyout snipeit.key
Wir verschieben die outline.crt Datei nach /etc/ssl/certs und die Datei outline.key nach /etc/ssl/private.
mv snipeit.crt /etc/ssl/certs
mv snipeit.key /etc/ssl/private
Und öffnen die Konfigurationsdatei von nginx:
nano /etc/nginx/conf.d/snipeit.conf
Und fügen folgende Konfiguration ein, dabei müssen wir <meine-domain> ändern:
server {
listen 80;
server_name <meine-domain>;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 443 http2 ssl;
server_name <meine-domain>;
root /var/www/html/snipe-it/public;
index index.php;
# certificate locations
ssl_certificate /etc/ssl/certs/snipeit.crt;
ssl_certificate_key /etc/ssl/private/snipeit.key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_protocols TLSv1.3 TLSv1.2;
ssl_ciphers 'TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384';
ssl_ecdh_curve X448:secp521r1:secp384r1;
ssl_prefer_server_ciphers on;
client_max_body_size 1G;
client_body_timeout 3600s;
client_body_buffer_size 512k;
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/>
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header Referrer-Policy "no-referrer" always;
add_header Permissions-Policy "interest-cohort=(), geolocation=(),midi=(),sync-xhr=(),microphone=(),camera=(),magnetometer=(),gyroscope=(),fullscreen=(self),payment=()";
add_header X-Download-Options "noopen" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "noindex, nofollow" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
# SNIPEIT
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi.conf;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Nun müssen wir die Konfiguration nur noch teste und nginx neustarten:
nginx -t
service nginx restart
Snipe-IT ist nun über https://<meine-domain> per Webbrowser erreichbar.
Updates können ganz einfach mittels upgrade.php installiert werden. Dazu erstellen wir zunächst den nicht root user snipeit:
useradd -g snipeit
cd /var/www/html/snipe-it
und vergeben Berechtigungen für das Verzeichnis:
chown -R snipeit storage public/uploads bootstrap/cache
chmod -R 775 storage
chmod -R 775 public/uploads
chmod -R 775 bootstrap/cache
su snipeit
und können anschließend die upgrade.php ausführen:
cd /var/www/html/snipe-it && upgrade.php