raspberry:fedberry_quick_install
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
raspberry:fedberry_quick_install [2018/01/30 16:10] – gpipperr | raspberry:fedberry_quick_install [2018/01/30 16:20] (aktuell) – [IPV6 disablen] gpipperr | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | =====Fedberry Linux Betriebsystem mit dem Raspberry PI 2 für einen Ubiquiti Network Controller===== | ||
+ | |||
+ | **November 2017** | ||
+ | |||
+ | Aufgabe: | ||
+ | |||
+ | Ubiquiti Network Controller für die Wlan Infrastruktur von Haus und Büro auf einem Raspberry PI 2 aufsetzen, zusätzlich sollen auf dem System noch weitere Monitorring Script auf Python 3 Basis laufen. | ||
+ | |||
+ | Da auch [[raspberry: | ||
+ | |||
+ | Warum Raspberry PI 2? Ist noch übrig .-). Warum überhaupt selber bauen? | ||
+ | |||
+ | Im Prinzip kaufmänisch völlig uninteressant, | ||
+ | |||
+ | Die Bastel Lösung unter einem RedHat Derivat kann das hier nicht bieten, da die Package Funktionalität von Debian von der Unifi Software für das AutoUpdate verwendet wird. | ||
+ | |||
+ | |||
+ | Ablauf Installation Basis-System: | ||
+ | * Download Image von https:// | ||
+ | * Check des MD5 Hash (Wert " | ||
+ | * Auspacken des Images mit [[http:// | ||
+ | * Schreiben des Images auf eine Micro SD Card mit [[https:// | ||
+ | * SD Karte in den Raspberry | ||
+ | * Anschluss Raspberry Strom und Netz | ||
+ | * System konfigurieren | ||
+ | * Statische IP Adresse vergeben | ||
+ | * Java 8 installieren | ||
+ | Ablauf Ubiquiti UniFi Controller | ||
+ | * Software im RPM und im Debian Format organisieren | ||
+ | * Software im RPM Format installieren | ||
+ | * Scripte und Libs aus dem Debian Package ausleihen | ||
+ | * Versuch den Autostart mit dem Java Demon Runner hinzubekommen (erstmal gescheitert ...) | ||
+ | |||
+ | |||
+ | ==== Basis System konfigurieren ==== | ||
+ | |||
+ | Wird die Version XFCE & LXQt release images gewählt, wird doch noch eine Tastatur und Monitor benötigt. | ||
+ | |||
+ | |||
+ | Siehe auch erst hier => https:// | ||
+ | |||
+ | Alternativ bei einer Minimal Version: | ||
+ | |||
+ | Nach dem Einschalten wird eine dynamische IP Adresse vergeben, diese aus der IP Umgebung ermitteln z.b. über den DHCP Server oder über einen Netzwerkscan, | ||
+ | |||
+ | ===XFCE & LXQt release=== | ||
+ | |||
+ | Über die graphische Oberfläche: | ||
+ | |||
+ | * Zeitzone einstellen | ||
+ | * Netzwerk und Hostname | ||
+ | * Root Password setzen | ||
+ | * Admin User anlegen, hier den Hacken " | ||
+ | * Am System anmelden | ||
+ | |||
+ | |||
+ | Nach der Grundkonfiguration kann nun wieder entspannt weiter über die Console gearbeitet werden, ssh Session auf den den Server als Admin user starten, evtl. nächstes mal die Version ohne graphische Oberfläche wählen, braucht dann wohl auch weniger Platz. | ||
+ | |||
+ | |||
+ | ===Updates einspielen=== | ||
+ | |||
+ | <code bash> | ||
+ | sudo yum update | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===X beim boot ausschalten=== | ||
+ | |||
+ | <code bash> | ||
+ | su - | ||
+ | |||
+ | rm / | ||
+ | ln -sf / | ||
+ | |||
+ | To switch back: | ||
+ | |||
+ | rm / | ||
+ | ln -sf / | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ===IPV6 disablen=== | ||
+ | |||
+ | Bei mir wollte dann immer der Unfi auf der IP V6 Adresse laufen, daher IPV6 ausgeschaltet, | ||
+ | <code bash> | ||
+ | vi / | ||
+ | |||
+ | net.ipv6.conf.all.disable_ipv6 = 1 | ||
+ | |||
+ | sysctl -w net.ipv6.conf.all.disable_ipv6=1 | ||
+ | |||
+ | systemctl restart network | ||
+ | |||
+ | #Fedora?? | ||
+ | vi / | ||
+ | |||
+ | install ipv6 /bin/true | ||
+ | options ipv6 disable=1 | ||
+ | |||
+ | |||
+ | # Hosts uncomment localhost entry | ||
+ | vi /etc/hosts | ||
+ | # ::1 | ||
+ | |||
+ | # | ||
+ | vi / | ||
+ | |||
+ | IPV6_AUTOCONF=no | ||
+ | IPV6INIT=no | ||
+ | |||
+ | # nun sollte es auch nach einem Boot klappen | ||
+ | reboot | ||
+ | |||
+ | </ | ||
+ | |||
+ | === Java 8 einrichten=== | ||
+ | |||
+ | Download from http:// | ||
+ | File dk-8u151-linux-arm32-vfp-hflt.tar.gz | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | cp jdk-8u151-linux-arm32-vfp-hflt.tar.gz /srv | ||
+ | |||
+ | tar xvfz jdk-8u151-linux-arm32-vfp-hflt.tar.gz | ||
+ | |||
+ | cd / | ||
+ | |||
+ | mv / | ||
+ | |||
+ | |||
+ | cd / | ||
+ | |||
+ | ./java -version | ||
+ | |||
+ | / | ||
+ | |||
+ | |||
+ | # Versionen anzeigen | ||
+ | / | ||
+ | |||
+ | # Version einstellen | ||
+ | / | ||
+ | # Version auswählen | ||
+ | |||
+ | # testen | ||
+ | java -version | ||
+ | java version " | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | ===nmon - Htop für das Performance Monitoring=== | ||
+ | |||
+ | Siehe auch http:// | ||
+ | |||
+ | <code bash> | ||
+ | yum install htop | ||
+ | </ | ||
+ | |||
+ | siehe auch http:// | ||
+ | |||
+ | nmon16b_arm.tar.gz | ||
+ | |||
+ | <code bash> | ||
+ | wget http:// | ||
+ | |||
+ | tar xvfz nmon16b_arm.tar.gz | ||
+ | |||
+ | chmod 777 nmon16b_arm_raspian | ||
+ | |||
+ | cp nmon16b_arm_raspian /sbin/nmon | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | ==== Unifi Software installieren ==== | ||
+ | |||
+ | ===Unfi User === | ||
+ | |||
+ | <code bash> | ||
+ | groupadd -g 1100 unifi | ||
+ | useradd -u 1101 -g unifi unifi | ||
+ | mkdir / | ||
+ | mkdir / | ||
+ | mkdir / | ||
+ | chown -R unifi:unifi UniFi/ | ||
+ | chown -R unifi / | ||
+ | </ | ||
+ | |||
+ | === Mongo DB Server=== | ||
+ | <code bash> | ||
+ | yum install mongodb-server | ||
+ | |||
+ | # Verzeichnisse anlegen | ||
+ | mkdir / | ||
+ | mkdir / | ||
+ | |||
+ | # config Datei anlegen | ||
+ | vi / | ||
+ | |||
+ | # See http:// | ||
+ | # Run mongod --help to see a list of options | ||
+ | |||
+ | bind_ip = 127.0.0.1 | ||
+ | quiet = true | ||
+ | dbpath = / | ||
+ | logpath = / | ||
+ | logappend = true | ||
+ | |||
+ | |||
+ | # Vorerst manuell starten mit | ||
+ | |||
+ | / | ||
+ | |||
+ | # Autostart muss dann noch eingerichtet werden! | ||
+ | |||
+ | </ | ||
+ | |||
+ | === Unifi Software=== | ||
+ | Für Fedberry bzw. Redhat Linux Derivate steht keinen direkteren Download zur Verfügung. | ||
+ | |||
+ | Aber in einem inoffiziellen Repostitory gibt es eine Variante für Linux auf X86 | ||
+ | <code bash> | ||
+ | # Ein dnf install http:// | ||
+ | # klappt wegen falscher Architektur nicht | ||
+ | # RPM direkt verwendet | ||
+ | wget http:// | ||
+ | rpm -ivh --ignorearch unifi-controller-5.6.22-1.el7.x86_64.rpm | ||
+ | #Rechte vergeben | ||
+ | chown -R unifi:unifi /opt/UniFi | ||
+ | cd /opt/UniFi | ||
+ | cat Readme.txt | ||
+ | # hmm, mal sehen ob das dann auch sauber so läuft ... | ||
+ | </ | ||
+ | |||
+ | ===Unifi Software starten === | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | cd /opt/UniFi | ||
+ | |||
+ | #Port und IP Adresse einstellen | ||
+ | # Sonst horcht die Anwendung nicht auf der IP4 Adresse! | ||
+ | vi / | ||
+ | |||
+ | portal.http.port=8880 | ||
+ | portal.https.port=8843 | ||
+ | system_ip=192.168.1.210 | ||
+ | unifi.http.port=8080 | ||
+ | unifi.https.port=8443 | ||
+ | #Starten mit : | ||
+ | java -jar lib/ace.jar start | ||
+ | |||
+ | # in einer zweiten Session prüfen ob das auch geklappt hat: | ||
+ | |||
+ | netstat -tlpn | ||
+ | |||
+ | #Firewall erstmal ausschalten | ||
+ | |||
+ | systemctl list-unit-files --state=enabled | grep firewall | ||
+ | |||
+ | systemctl stop firewalld.service | ||
+ | # Besser die richtigen Regeln eintragen! | ||
+ | systemctl disable | ||
+ | </ | ||
+ | |||
+ | |||
+ | Nun kann im Browser die Unifi Oberfläche aufgerufen werden < | ||
+ | |||
+ | | ||
+ | |||
+ | |||
+ | === Einstellungen vom alten Controler (Softwareversion) retten === | ||
+ | |||
+ | |||
+ | Im nächsten Schritt will ich dann versuchen das Backup von meinem " | ||
+ | |||
+ | Über Settings/ | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Feintuning ==== | ||
+ | Bei der inoffiziellen Variante fehlen z.B. die Autostart Skripte, die Debian Variante lässt sich zwar nicht nach RPM umwandeln aber auspacken, d.h. wir können das auch manuell zusammensetzen und damit evtl. sogar eine Auto Update fähige Variante erhalten. Hierzu mit Alien das DB Package ausgepackt. | ||
+ | <note warning> | ||
+ | !Achtung, ab jetzt wird es ein gebastel und etwas wirr .....!</ | ||
+ | |||
+ | |||
+ | |||
+ | === Alien verwenden um das Debian Package zu analysieren== | ||
+ | <code bash> | ||
+ | yum install alien | ||
+ | cd /srv | ||
+ | |||
+ | wget http:// | ||
+ | |||
+ | # alles auspacken in das RPM Format | ||
+ | alien --to-rpm | ||
+ | |||
+ | # Wieder ein RPM Bauen | ||
+ | rpmbuild --buildroot=/ | ||
+ | |||
+ | #das läßt sich dann leider nicht so einfach einspielen da die Pfade komplett anders lauten | ||
+ | |||
+ | </ | ||
+ | |||
+ | Nun haben wir aber alle Scripte aus dem Debian Package + den Code der Applikation und können das auch so installieren, | ||
+ | |||
+ | Scripte übernehmen: | ||
+ | <code bash> | ||
+ | cd / | ||
+ | |||
+ | cp ubnt-apttool unifi.init / | ||
+ | |||
+ | # | ||
+ | vi / | ||
+ | |||
+ | |||
+ | set_java_home () { | ||
+ | |||
+ | # hack add your acutal Java 8 Home directly | ||
+ | JAVA_HOME=/ | ||
+ | return | ||
+ | |||
+ | ... | ||
+ | BASEDIR="/ | ||
+ | .... | ||
+ | |||
+ | |||
+ | # nach | ||
+ | cd / | ||
+ | #Datei unifi.service anpassen | ||
+ | |||
+ | vi unifi.service | ||
+ | |||
+ | [Unit] | ||
+ | Description=unifi | ||
+ | After=local-fs.target remote-fs.target network-online.target | ||
+ | Wants=network-online.target | ||
+ | Conflicts=shutdown.target | ||
+ | |||
+ | [Service] | ||
+ | Type=forking | ||
+ | TimeoutSec=5min | ||
+ | IgnoreSIGPIPE=no | ||
+ | KillMode=process | ||
+ | RemainAfterExit=yes | ||
+ | ExecStart=/ | ||
+ | ExecStop=/ | ||
+ | ExecReload=/ | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | |||
+ | |||
+ | # Datei nach / | ||
+ | |||
+ | #save copy | ||
+ | mv / | ||
+ | |||
+ | cp unifi.service / | ||
+ | |||
+ | |||
+ | systemctl enable unifi | ||
+ | Created symlink / | ||
+ | |||
+ | |||
+ | # / | ||
+ | yum install redhat-lsb-core | ||
+ | # jsvc - Java start as service | ||
+ | yum install apache-commons-daemon-jsvc | ||
+ | |||
+ | |||
+ | mkdir / | ||
+ | mkdir / | ||
+ | mkdir / | ||
+ | |||
+ | # | ||
+ | # add to / | ||
+ | |||
+ | vi / | ||
+ | |||
+ | status_of_proc () | ||
+ | { | ||
+ | local pidfile daemon name status OPTIND; | ||
+ | pidfile=; | ||
+ | OPTIND=1; | ||
+ | while getopts p: opt; do | ||
+ | case " | ||
+ | p) | ||
+ | pidfile=" | ||
+ | ;; | ||
+ | esac; | ||
+ | done; | ||
+ | shift $(($OPTIND - 1)); | ||
+ | if [ -n " | ||
+ | pidfile=" | ||
+ | fi; | ||
+ | daemon=" | ||
+ | name=" | ||
+ | status=" | ||
+ | pidofproc $pidfile $daemon > /dev/null || status=" | ||
+ | if [ " | ||
+ | log_success_msg "$name is running"; | ||
+ | return 0; | ||
+ | else | ||
+ | if [ " | ||
+ | log_failure_msg "could not access PID file for $name"; | ||
+ | return $status; | ||
+ | else | ||
+ | log_failure_msg "$name is not running"; | ||
+ | return $status; | ||
+ | fi; | ||
+ | fi | ||
+ | } | ||
+ | log_daemon_msg () { | ||
+ | # Dummy function to be replaced by LSB library. | ||
+ | |||
+ | echo $@ | ||
+ | } | ||
+ | |||
+ | log_end_msg () { | ||
+ | # Dummy function to be replaced by LSB library. | ||
+ | |||
+ | if test " | ||
+ | echo "Error with $DESCRIPTION: | ||
+ | fi | ||
+ | return $1 | ||
+ | } | ||
+ | |||
+ | #jetzt fehlt noch die Commons Demon jar .-( | ||
+ | |||
+ | # https:// | ||
+ | |||
+ | cd /srv/ | ||
+ | wget http:// | ||
+ | |||
+ | tar xvfz commons-daemon-1.1.0-bin.tar.gz | ||
+ | |||
+ | cd / | ||
+ | |||
+ | ln -s / | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | Leider start der Controller nicht sauber, keine echten Fehlermeldungen .. tippe auf ein Problem mit Pfaden bzw. Klassenpfaden. | ||
+ | |||
+ | Hmm, mal sehen ob sich die Mühe lohnt oder doch lieber kaufen... | ||
+ | |||
+ | Demnächst mehr (vieleicht ...) | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | |||
+ | ==== Quellen ==== | ||
+ | |||
+ | * http:// | ||
+ | |||
+ | |||
raspberry/fedberry_quick_install.txt · Zuletzt geändert: 2018/01/30 16:20 von gpipperr