Autoupdater: Unterschied zwischen den Versionen

Aus Freifunk-Rheinbach Wiki
Zur Navigation springen Zur Suche springen
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 80: Zeile 80:
Die Software vor dem 20. Oktober 2016 zeigt noch auf einen alten, nicht funktionierenden Update-Server. Einige Router laufen noch mit dieser Software. Die neue Autoupdate-Konfiguration kann mit wenigen Befehlen auf dem Router importiert werden, ohne dass der Router neu installiert werden muss.
Die Software vor dem 20. Oktober 2016 zeigt noch auf einen alten, nicht funktionierenden Update-Server. Einige Router laufen noch mit dieser Software. Die neue Autoupdate-Konfiguration kann mit wenigen Befehlen auf dem Router importiert werden, ohne dass der Router neu installiert werden muss.


Dazu habe ich die Konfiguration exportiert und in der Datei [http://images.freifunk-rheinbach.de/autoupdater.uci autoupdater.uci] auf dem Image Server und auf einem Router unter [http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/autoupdater.uci autoupdater.uci] abgelegt. In dieser Datei ist die '''Option enabled = 1''' gesetzt. Ist der eigene Rechner im Freifunk-Netz angemeldet, lässt sich ein Router mit dem folgenden Befehl auf die neue Konfiguration umstellen.
Dazu habe ich die Konfiguration exportiert und in der Datei [http://images.freifunk-rheinbach.de/autoupdater.uci autoupdater.uci] auf dem Image Server und auf einem Router unter [http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/fffw/autoupdater.uci autoupdater.uci] abgelegt. In dieser Datei ist die '''Option enabled = 1''' gesetzt. Ist der eigene Rechner im Freifunk-Netz angemeldet, lässt sich ein Router mit dem folgenden Befehl auf die neue Konfiguration umstellen.


Wer mittels [[SSH]] auf seinem Router angemeldet ist, kann die Änderung mit folgendem Befehl anstoßen.
Wer mittels [[SSH]] auf seinem Router angemeldet ist, kann die Änderung mit folgendem Befehl anstoßen.


<pre>
<pre>
wget -O - http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/autoupdater.uci | uci import
wget -O - http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/fffw/autoupdater.uci | uci import
</pre>
</pre>


Zeile 91: Zeile 91:


<pre>
<pre>
wget -O - http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/autoupdater.uci | ssh root@<ipv6-addr-des-router> uci import
wget -O - http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/fffw/autoupdater.uci | ssh root@<ipv6-addr-des-router> uci import
</pre>
</pre>


Oder die Datei autoupdater.uci wird vom Image-Server heruntergeladen. (Auf dem Router selbst geht dies nur, wenn die Namensauflösung funktioniert, was in der Regel nicht der Fall ist. Außerdem benötigt der Server eine IPv6-Adresse, was ich noch nicht eingerichtet habe.  
Oder die Datei autoupdater.uci wird vom Image-Server heruntergeladen. (Auf dem Router selbst geht dies nur, wenn die Namensauflösung funktioniert, was in der Regel nicht der Fall ist. Außerdem benötigt der Server eine IPv6-Adresse, was ich noch nicht eingerichtet habe.)


<pre>
<pre>
Zeile 107: Zeile 107:


=== Autoupdate erzwingen ===
=== Autoupdate erzwingen ===
 
Mit dem anschließenden Befehl zieht der Router sich sofort die aktuelle Firmware aus dem Zweig '''stable''':  
Mit dem anschließenden Befehl zieht der Router sich sofort die aktuelle Firmware aus dem Zweig '''stable''':  


Zeile 113: Zeile 113:
ssh root@<ipv6-addr-des-router> autoupdater -f
ssh root@<ipv6-addr-des-router> autoupdater -f
</pre>
</pre>


=== USB_Support ===
=== USB_Support ===


Wer USB-Support auf dem Router benötigt, der muss den Branch ''stableusb'' nehmen und ''stable'' entsprechend durch ''stableusb'' ersetzen. Die Autoupdater Konfiguration für USB-Support liegt unter [http://images.freifunk-rheinbach.de/autoupdater-usb.uci autoupdater-usb.uci].
Wer USB-Support auf dem Router benötigt, der muss den Branch ''stableusb'' nehmen und ''stable'' entsprechend durch ''stableusb'' ersetzen. Die Autoupdater Konfiguration für USB-Support liegt unter [http://images.freifunk-rheinbach.de/autoupdater-usb.uci autoupdater-usb.uci].

Aktuelle Version vom 27. Januar 2017, 22:46 Uhr

Mittels der Autoupdate-Funktion können Freifunkrouter automatisch auf dem aktuellen Stand der Firmware gehalten werden.

Autoupdate auf Rheinbacher Knoten

Für die Autoupdate-Funktion müssen ein oder mehrerer Update-Server in der Datei site.conf konfiguriert werden. Für die Rheinbacher Software wird ein TP-LINK TL-WR1043v2 als Fileserver genutzt. Hier liegen die Images auf einem USB_Stick. Die Konfiguration ist in der Datei site.conf abgelegt und sieht zur Zeit wie folgt aus:

...
autoupdater = {
    enabled = false,
    branch = 'stable',
    branches = {
      stable = {
        name = 'stable',
        mirrors = {
          'http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/stable/images/sysupgrade/'
        },
        good_signatures = 1,
        pubkeys = {
          '3905b03a3eb6201013fa9e8af5a8cfc7208ac30eb92ff253eb91785b2b58a514' -- Thomas
        },
      },
      stableusb = {
        name = 'stableusb',
        mirrors = {
          'http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/stableusb/images/sysupgrade/'
        },
        good_signatures = 1,
        pubkeys = {
          '3905b03a3eb6201013fa9e8af5a8cfc7208ac30eb92ff253eb91785b2b58a514' -- Thomas
        },
      },
    },
  },
...

Das Autoupdate ist zur Zeit deaktiviert und muss (wenn gewünscht) nach der Installation von Hand aktiviert werden.

Auf dem Router ergibt dies folgende Konfiguration. Der Eintrag option enabled '0' bedeutet Autoupdate deaktiviert.

package autoupdater

config autoupdater 'settings'
        option version_file '/lib/gluon/release'
        option branch 'stableusb'
        option enabled '0'

config branch 'stable'
        list mirror 'http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/fffw/stable/images/sysupgrade/'
        option good_signatures '1'
        option name 'stable'
        list pubkey '3905b03a3eb6201013fa9e8af5a8cfc7208ac30eb92ff253eb91785b2b58a514'

config branch 'stableusb'
        list mirror 'http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/fffw/stableusb/images/sysupgrade/'
        option good_signatures '1'
        option name 'stableusb'
        list pubkey '3905b03a3eb6201013fa9e8af5a8cfc7208ac30eb92ff253eb91785b2b58a514'

Nachträgliche (De-) Aktivierung des Autoupdate

Die Autoupdate-Funktion lässt sich über den Setup Modus nachträglich aktivieren. Einfacher geht es auf der Kommandozeile.

uci set autoupdater.settings.enabled='1' ; uci commit autoupdater

oder deaktivieren:

uci set autoupdater.settings.enabled='0' ; uci commit autoupdater


Autoupdate ohne Neuinstallation anpassen

Die Software vor dem 20. Oktober 2016 zeigt noch auf einen alten, nicht funktionierenden Update-Server. Einige Router laufen noch mit dieser Software. Die neue Autoupdate-Konfiguration kann mit wenigen Befehlen auf dem Router importiert werden, ohne dass der Router neu installiert werden muss.

Dazu habe ich die Konfiguration exportiert und in der Datei autoupdater.uci auf dem Image Server und auf einem Router unter autoupdater.uci abgelegt. In dieser Datei ist die Option enabled = 1 gesetzt. Ist der eigene Rechner im Freifunk-Netz angemeldet, lässt sich ein Router mit dem folgenden Befehl auf die neue Konfiguration umstellen.

Wer mittels SSH auf seinem Router angemeldet ist, kann die Änderung mit folgendem Befehl anstoßen.

wget -O - http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/fffw/autoupdater.uci | uci import

Wer sich nicht extra auf dem Router einloggen will, der kann es auch schneller mit folgendem Befehl erledigen. Dabei ist <ipv6-addr-des-router> durch die IPv6-Adresse des Routers zu ersetzen.

wget -O - http://[fda0:747e:ab29:2241:16cc:20ff:fecd:15bc]/fffw/autoupdater.uci | ssh root@<ipv6-addr-des-router> uci import

Oder die Datei autoupdater.uci wird vom Image-Server heruntergeladen. (Auf dem Router selbst geht dies nur, wenn die Namensauflösung funktioniert, was in der Regel nicht der Fall ist. Außerdem benötigt der Server eine IPv6-Adresse, was ich noch nicht eingerichtet habe.)

wget -O - http://images.freifunk-rheinbach.de/autoupdater.uci | ssh root@<ipv6-addr-des-router> uci import

Eine weitere Alternative wäre, die obigen Text zu markieren und mit xclip nach StdOut zu kopieren:

xclip -o | ssh root@<ipv6-addr-des-router> uci import

Autoupdate erzwingen

Mit dem anschließenden Befehl zieht der Router sich sofort die aktuelle Firmware aus dem Zweig stable:

ssh root@<ipv6-addr-des-router> autoupdater -f

USB_Support

Wer USB-Support auf dem Router benötigt, der muss den Branch stableusb nehmen und stable entsprechend durch stableusb ersetzen. Die Autoupdater Konfiguration für USB-Support liegt unter autoupdater-usb.uci.