UniFi Controller auf einem Raspberry Pi 3

By | 9. August 2018

Hallo,

mein Ziel ist es den UniFi Controller 5.8.24 auf eine Raspberry PI 3 zu installieren und betreiben.

Verwendete Komponenten

Board: Raspberry PI 3 Modell B (ARMv8 1,2 GHz mit 1GB RAM)

microSD Karte: Transcend 16GB 300x

OS: OpenSuse Leap 42.3 (JeOS Image, 64bit)

Tools: Etcher 1.3.1

Betriebssystem

Abbild schreiben

Ich verwende OpenSuse als Betriebssystem, da MongoDB ein 64bit OS benötigt.

  1. Etcher downloaden: https://etcher.io/
  2. OpenSuse 42.3 downloaden (openSUSE-Leap42.3-ARM-JeOS-raspberrypi3.aarch64-2017.07.26-Build1.1.raw.xz): http://download.opensuse.org/ports/aarch64/distribution/leap/42.3/appliances/
  3. Das JeOS (Just Enough Operating System) Image mittels Etcher auf die microSD Karte flashen

Der Login erfolgt mit dem Benutzer root und dem Passwort linux.

Aktualisierungen einspielen

Um das Paket Repository zu aktualisieren, verwende ich zypper:

zypper refresh

Updates spielt man über den folgenden Befehl ein:

zypper update

Danach empfehle ich ein Neustart, da ein neuer Kernel zur Verfügung steht.

UniFi Controller

Den UniFi Controller gibt es auch als Do-it-your-own Paket (ohne Support). Ich verwende es, da beim RPM Paket die Abhängigkeit zur MongoDB nicht aufgelöst werden kann.

Es existiert ein RPM Community Paket, allerdings habe ich es nicht getestet: https://software.opensuse.org/download.html?project=home%3Ahgraeber&package=unifi

Abhängigkeiten installieren

Es wird Java und MongoDB als Datenbank benötigt:

zypper install java mongodb

installieren

  1. DIY herunterladen
    wget https://dl.ubnt.com/unifi/5.8.24/UniFi.unix.zip
  2. Entpacken nach /opt/
    unzip UniFi.unix.zip -d /opt/

Dienst erstellen

Damit beim starten des Pis der Controller ebenfalls gestartet wird, erstelle ich einen SystemD Dienst:

  1. Benutzer für den Dienst anlegen:
    useradd -g nogroup --shell /etc/false -M -r unifi
  2. systemD Service erstellen
    touch /etc/systemd/system/unifi.service
  3. Dienst konfigurieren
    vi /etc/systemd/system/unifi.service
    [Unit]
    Description=Ubiquiti UniFi Controller
    After=local-fs.target remote-fs.target network-online.target
    Wants=network-online.target
    
    [Service]
    Type=simple
    WorkingDirectory=/opt/UniFi
    ExecStartPre=+/usr/bin/chown -R unifi:nogroup /opt/UniFi
    ExecStartPre=-/usr/bin/mkdir /opt/UniFi/logs
    ExecStart=/usr/bin/java -Xmx768M -jar /opt/UniFi/lib/ace.jar start
    ExecStop=/usr/bin/java -jar /opt/UniFi/lib/ace.jar stop
    SyslogIdentifier=unifi
    User=unifi
    TasksMax=infinity
    [Install]
    WantedBy=multi-user.target
  4. Dienste aktualisieren
    systemctl daemon-reload
  5. UniFi Controller starten:
    systemctl start unifi.service
  6. Bei Systemstart mitstarten:
    systemctl enable unifi

 

Quellen

https://www.aligrant.com/web/blog/2017-10-27_unifi_controller_on_opensuse

 

 

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.