UniFi als Linux Service

Die UniFi WLAN Access Points gelten aktuell als das Nonplusultra wenn es um günstige Enterprise Hardware geht.

Doch diese erfordern zum konfigurieren eine java Webapplikation, welche offiziell nur als Desktopanwendung unterstützt wird – Und dort nicht gerade gut, bei einigen Konfiguration läuft es, bei anderen nicht.

Doch es gibt eine inoffizielle Version der Software, welche man ganz einfach auf einem Linux Server installieren kann und die gut läuft! Dies ist meiner Meinung nach auch die bessere Variante, da man in der Regel das Konfigurations-Webinterface ohnehin immer Abrufbar haben will.

Mit ein paar einfachen Schritten lässt isch die Software als CentOS/RHEL service installieren und mit ein paar kleinen Anpassungen passt sie auch auf andere Linux Systeme wie debian oder ubuntu.

Vorbereitung

Die folgenden Komponenten müssen zuvor installiert werden:

  • MongoDB (Für CentOS/RHEL bis und mit 7 wird dazu das EPEL repository benötigt!)
  • java
openjdk vs. oracle java
Im Falle von java empfiehlt es sich nicht, das „openjdk“ aus dem repository zu nehmen und stattdessen das „offizielle“ von oracle zu installieren.

Installation

Zuerst werden die benötigten Komponenten installiert:

yum install epel-release
yum install vim wget unzip mongodb-server

Nun wird ein Verzeichnis für JAVA erstellt und dieses dort installiert:

mkdir -v /opt/java
cd /opt/java/
wget 'http://javadl.oracle.com/webapps/download/AutoDL?BundleId=216424'
tar -xvzf jre1.8.0_111.tgz
rm -v jre1.8.0_111.tgz
ln -sv jre1.8.0_111/ 8
alternatives --install /usr/bin/java java /opt/java/8/bin/java 1

Als nächstes einen Benutzer für den unifi Service erstellen:

useradd -c "UniFi controller" -d /opt/unifi/ unifi
echo "umask 027" >> /opt/unifi/.bashrc
su - unifi
Achtung
Die folgenden Schritte sollten unbedingt als user „unifi“ und nicht als root erleidgt werden!

UniFi herunterladen und entpacken:

wget 'http://dl.ubnt.com/unifi/5.3.8/UniFi.unix.zip'
unzip UniFi.unix.zip -d controller
mv -v controller/UniFi/* controller/
rmdir -v controller/UniFi/
rm -v UniFi.unix.zip
MongoDB smallfiles

Standardmässig will die MongoDB 3GB freien Speicherplatz haben. Wer das nicht hat (etwa weil der Controller z.B. auf einem embedded device läuft) kann das mit dem Parameter „smallfiles“ abstellen:

echo "unifi.db.extraargs=--smallfiles" >> controller/data/system.properties

Nun noch ein systemd service file anlegen, den service enablen und starten (wieder als „root“ oder mit sudo):

sudo vim /etc/systemd/system/unifi.service
sudo systemctl enable unifi
sudo systemctl start unifi

Backup

Zum sichern der Konfiguration muss folgendes getan werden:

  • Den UniFi java Prozess beenden
  • Das Verzeichnis: /opt/unifi/controller/data/ sichern
  • Den UniFi java Prozess wieder starten

Quellen

Published by

Steven Varco

Steven ist ein Redhat RHCE-Zertifizierter Linux-Crack und ist seit über 15 Jahren sowohl beruflich wie auch privat auf Linux spezialisiert. In seinem Keller steht ein Server Rack mit diversen ESX und Linux Servern.

One thought on “UniFi als Linux Service”

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.