Hallo,
mein Ziel ist es den UniFi Controller 5.8.24 auf eine Raspberry PI 3 zu installieren und betreiben.
Inhaltsverzeichnis
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.
- Etcher downloaden: https://etcher.io/
- 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/
- 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
- DIY herunterladen
wget https://dl.ubnt.com/unifi/5.8.24/UniFi.unix.zip
- 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:
- Benutzer für den Dienst anlegen:
useradd -g nogroup --shell /etc/false -M -r unifi
- systemD Service erstellen
touch /etc/systemd/system/unifi.service
- 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
- Dienste aktualisieren
systemctl daemon-reload
- UniFi Controller starten:
systemctl start unifi.service
- Bei Systemstart mitstarten:
systemctl enable unifi
Quellen
https://www.aligrant.com/web/blog/2017-10-27_unifi_controller_on_opensuse