Seit über 6 oder 7 Jahren verwende ich UniFi Access Point der Firma UBIQUITI NETWORKS, sei es geschäftlich oder auch privat. Anfangs betrieb ich die Controller-Software auf einem Windows Rechner. Aus Gründen wie Platzverhältnisse, Stromverbrauch, SW-Updates usw. entschied ich mich letztes Jahr die Umgebung auf einem Raspberry Pi 3B+ zu migrieren.

Ubiquiti Networks

Migration des UniFi Controllers

Eigentlich läuft soweit alles einwandfrei auf meinem Raspberry 3B+ jedoch ist das "Grundrauschen" der CPU seit einem Raspbian Stretch Update im Juni oder Mai 2019 so hoch, dass die Temperatur regelmässig über 70°C ansteigt.
Weiss der Geier wieso!


Quellen:

UniFi - How to Install and Update via APT on Debian or Ubuntu
UniFi Network Controller Stable 5.10.25
UniFi - How to Install & Upgrade the UniFi Network Controller Software (Nachtrag vom 01.09.19)
UniFi Installation Scripts | UniFi Easy Update Script (Nachtrag vom 01.09.19)

Vorbereitung des RasPi
Nach der Installation von Raspbian Buster und Konfiguration einer fixen IP lohnt es sich auf jeden Fall das Debian basierte Linux aufzufrischen (ACHTUNG: es erfolgt anschliessend ein automatischer Neustart!):

sudo apt update && sudo apt dist-upgrade -y && sudo apt-get autoremove && sudo apt-get autoclean && sudo reboot

 

Bevor die eigentliche Installation und Migration beginnt, habe ich haveged installiert da ich das Problem hatte, dass es nach einem Neustart des Raspi bis zu 10 Minuten dauerte bis ich mich an der Weboberfläche des Controllers anmelden konnte. Dieses Tutorial löste mein Problem:

sudo apt-get install haveged
sudo update-rc.d haveged defaults
sudo reboot

 

 

Nachtrag 3 (01.09.19):
Mein Controller zeigt an, dass die Version 5.11.39 zum download verfügbar ist, jedoch findet Raspian die neue Version nicht im Repositorium und somit kann auch kein Update durchgeführt werden! Gemäss Community bin ich nicht alleine mit dieser Tatsache.
Eigentlich wollte ich zuerst nach dieser Anleitung ein Update durchführen, bin dann auch diesen Artikel gestossen und dachte mir "Kannst ja nichts verlieren, habe ja ein komplett Backup des RasPi" und Schwups, die neue Version war innerhalb von 2 Minuten installiert!

Somit ist die folgende Anleitung eigentlich hinfällig!

 

Nun beginnt die eigentliche Controller Installation mit dem bereitstellen der UniFi Source:

sudo apt update && sudo apt install ca-certificates apt-transport-https

echo 'deb http://www.ui.com/downloads/unifi/debian stable ubiquiti' | sudo tee /etc/apt/sources.list.d/100-ubnt-unifi.list

 

GPG-Schlüssel herunterladen, damit die UniFi Source als sicher eingestuft wird (Methode A, bevorzugt):

sudo wget -O /etc/apt/trusted.gpg.d/unifi-repo.gpg https://dl.ui.com/unifi/unifi-repo.gpg

 

Update des Repositorium und anschliessender Installation der Controller Software:

sudo apt update
sudo apt install apt-transport-https
sudo apt install unifi

 

Raspberry Pi 4B mit Raspbian BUSTER lite hat Java 9 mit im Paket, jedoch läuft der UniFi Controller nur mit Java 8, deshalb müssen wir Java 8 installieren: 

sudo apt-get install openjdk-8-jre-headless -y

 

Gemäss diversen Communities wird die MongoDB mit-installiert, die wird jedoch nicht gebraucht, deshalb deaktivieren wir den Dienst, stoppen ihn und starten den Raspi neu:

sudo systemctl disable mongodb
sudo systemctl stop mongodb
sudo reboot now

 

Jetzt ist es an der Zeit vom bestehenden (alten) Controller ein Backup zu machen. Dazu über den Browser am (alten-) Controller anmelden. Unter Wartung-> Backup-> Keine Begrenzung kann eine aktuelle Sicherung erstellt und lokal auf dem PC gespeichert werden (dauert ca. 1-2 Minuten):

https://IP-alter-Raspi:8443
(z.B. https://192.168.1.10:8443)

 

Danach am "alten Controller" per SSH anmelden und den UniFi Dienst stoppen und deaktivieren. Optional kann nach erfolgreicher Migration die Controller Software auch de-installiert werden. Ich verzichte auf die De-Installation damit ich für den Notfall auf dem Raspberry 3B+ die UniFi Software wieder hochfahren kann:

sudo systemctl stop unifi
sudo systemctl disable unifi

 

Nun können wir die Sicherung von vorhin im neuen Controller einlesen. Dazu über den Browser die Webseite önnen und den Punkt aus vorigem Backup wiederherstellen anklicken. Nach ca. 1-2 Minuten wird die Seite automatisch neu aufgebaut und man kann sich wie gewöhnt an der Weboberfläche anmelden:

https://IP-neuer-Raspi:8443
(z.B. https://192.168.1.20:8443)

 

Unter Login-> Einstellungen-> Controller-> 'Controller Name' (z.B.: UniFi-RasPi) und 'Controller-Hostname/IP' (z.B. 192.168.1.20) anpassen.

In der USG musste ich mal 2 Port-Weiterleitungen für STUN und INFORM eintragen, diese müssen natürlich auch auf die neue IP-Adresse angepasst werden (Quelle: Tutorial).

Falls nach 2-3 Minuten die Einbindung nicht stattgefunden hat, kann man auch per SSH auf jedes UniFi Gerät verbinden, den folgenden Befehl manuell eingeben und anschliessend das Device neu starten:

set-inform http://192.168.1.20:8080/inform

 

 

Nachtrag 1 (30.07.19):
Da mich letzte Nacht meine UniFi-App auf dem Handy ununterbrochen daran erinnerte, dass der (alte) Controller On- bzw. Offline ist habe ich mich dazu entschlossen die Software auf dem RasPi definitiv zu de-installieren. Grund dazu war das automatisierte Backup (dabei wird der UniFi Dienst vor der Sicherung gestoppt und nach der Sicherung wieder gestartet) mit anschliessender Erstellung einer *.IMG Datei auf mein NAS, damit bei einem Ausfall der SD-Karte der entsprechende RasPi innerhalb von ca. 5-10 Minuten wieder betriebsbereit ist (mehr dazu folgt in einem sep. Atikel).
sudo dpkg -P unifi

 

Ausserdem wäre wahrscheinlich die Migration noch effizienter wenn so vorgegangen würde:

  • Controller auf neuem RasPi installieren.
  • Konfiguration auf altem RasPi sichern und auf neuem RasPi installieren (gleich nach der Installation).
  • Auf dem neuen RasPi soweit alles auf die neue IP-Adresse vorbereiten
  • Auf beiden RasPi's den neuen Controller hinterlegen: Einstellungen-> Controller-> 'Controller Name' (z.B.: UniFi-RasPi) und 'Controller-Hostname/IP' (z.B. 192.168.1.20) anpassen.

Danach sollten sich alle UniFi-Geräte selbständig auf den neuen Controller verbinden und anschiessen kann der alte Controller heruntergefahren und de-installiert werden.

 

Nachtrag 2 (31.07.19):
Nachdem ich etwas im File-System des alten UniFi-Controller herumgestöbert bin, habe ich unter /var/lib/mongodb tatsächlich ca. 750MB in drei Journal-Dateien gefunden! Für ein Linux-System auf 6GB SD-Karte ist das ja eine ganz schöner Brocken! Diese Dateien habe ich dann gelöscht und mich hat es natürlich gewurmt, dass ich auf dem neuen RasPi auch wieder Schrott aufbewahre der nicht gebraucht wird.

Kurzerhand habe ich mit sudo apt-get purge mongodb-* (Auf keinen Fall ausführen!!) die MONGODB de-installiert, jedoch wurde gleichzeitig auch der komplette UniFi-Controller entfernt! Was für ein Desaster!!!

Dank meiner Anleitung hier konnte ich jedoch den Controller innerhalb von 5 Minuten wieder betriebsbereit machen, leider hatte ich kein manuelles Backup der Konfiguration erstellt, jedoch wäre unter /var/lib/unifi/backup eine automatisch generierte Sicherung vorhanden gewesen... wenn denn dieser Ordner mit der De-Installation von MONGODB nicht auch automatisch gelöscht worden wäre!

Dank einem coolen Tool von Framp rapsiBackup konnte ich glücklicherweise aus dem Backup von letzter Nacht die gewünschte Konfigurations-Datei wieder herstellen.

Nichtsdestotrotz habe ich auf dem neuen RasPi 4 die mongodb Jornaldateien gelöscht und somit wieder 750MB mehr Platz!

 

Kommentare   
Mirko
+1 # RE: UniFi - Controller mit Raspberry Pi 4B (Raspbian Buster)Mirko 2019-11-28 11:13
Vielen Dank, bei mir hat alles super geklappt! Lediglich bei der Installation von "haveged" bzw. der Konfiguration zum Starten nach dem Booten ist mir ein kleiner Fehler aufgefallen:

Zitat:
sudo update-rc.d haveged default
Bei default fehlt meiner Ansicht nach ein s, es müsste also:

Zitat:
sudo update-rc.d haveged defaults


heißen. Ist auch so in deinem verlinkten Tutorial angegeben.

Viele Grüße
Antworten | Antworten mit Zitat | Zitieren | Dem Administrator melden
Peter
0 # CopyPaste ist manchmal eben Glücksache :oPeter 2019-11-28 22:29
hi Mirko

Vielen Dank für dein Feedback. Ja du hattest recht, ich habe den Fehler oben korrigiert und das fehlende s hinzugefügt.

Peter
Antworten | Antworten mit Zitat | Zitieren | Dem Administrator melden
Matthias
0 # RE: UniFi - Controller mit Raspberry Pi 4B (Raspbian Buster)Matthias 2019-11-15 11:10
Hallo zusammen,

ich bin bin Einsteiger auf dem Gebiet des Raspi und habe ebenfalls versucht, den Unifi Controller auf dem Pi4 mit Raspbian Buster zu installieren. Die Installation scheint grundsätzlich auch funktioniert zu haben, jedoch startet der Controller nicht.

sudo systemctl status unifi bringt folgendes Resultat:

Nov 15 10:38:27 raspberrypi systemd[1]: Failed to start unifi.

Trotz der Installation von Java 8 (sudo apt-get install openjdk-8-jre-headless -y) erhalte ich bei der Abfrage der Java Version noch immer die Rückmeldung, dass Version 11.0.5 installiert ist.

Wäre super, wenn ihr noch eine Idee habt, wie ich der Lösung des Problems näher komme.

Danke euch
Matthias
Antworten | Antworten mit Zitat | Zitieren | Dem Administrator melden
Peter
0 # RE: UniFi - Controller mit Raspberry Pi 4B (Raspbian Buster)Peter 2019-11-15 17:54
Hallo Matthias

Bin per Zufall soeben auf diese Webseite gestossen: medium.com/.../...

Stefan Natter schreibt auch von dem dir beschriebenen Java Problem und hat dazu eine Lösung beschrieben. Vielleicht hilft dir das weiter?

Viel Erfolg!
Peter
Antworten | Antworten mit Zitat | Zitieren | Dem Administrator melden
Oliver
+1 # Unifi Controller in Docker containerOliver 2019-10-18 21:18
Halle, gut erklärt alles, ich bin noch einen Schritt weiter gegangen, ich habe Docker auf dem Raspiberry PI installiert und lasse damit dann den Unifi Controller im Container laufen. Der Pi hat noch Reserven (wenn die SD Karte größer ist) für weitere Container (aktuell 3 insgesamt) Das nur mal als Anregung
Antworten | Antworten mit Zitat | Zitieren | Dem Administrator melden
Kommentar schreiben