Projekt Common NodeDB


#1

In diesem Thread wollen wir uns über das Weiterarbeiten an der Common NodeDB austauschen.
Geplant ist

  • eine neue VM (Ralf).
  • ein Dockerfile mit Common Node DB (Christian).
  • die Libraries auf ein aktuelleres Debian anzupassen.
  • eine olsrdv2-Erweiterung für den Spiderdienst der CNDB zu machen.

Redeemer or Node-DB
#2

Bitte was ist das?
CNDB? Spiderdienst?


#3

folgend die ssh zugangsdaten zu der debian 9.3 vm wo ich versucht habe die nodedb nach anleitung zu installieren:
www.nodedb.wien.funkfeuer.at
user: hab ich euch per mail gesendet (wer auch will, bitte info, dann leite ich das mail weiter)
pass: hab ich euch per mail gesendet (wer auch will, bitte info, dann leite ich das mail weiter)
könnt euch gerne darauf austoben, eigene user erstellen usw…
(wenn die vm “hin” is, richte ich eben eine neue vm ein… kein thema)
bin mit der anleitung bis zum folgenden punkt gekommen:
With a small config-file, the deploy-app can automatically create an Apache configuration file and a fcgi script.

erkenntnisse:

  • beim apt install, “apache2-mpm-worker” gibts nicht mehr, "apache2"
    stattdessen.

  • beim pip install fehlt virtualenv, das wird später benötigt…
    (braucht man die zweite pip install zeile in der readme?)

  • beim httpd config erstellen bekomm ich folgenden fehler zurück:
    (std) ffm@nodedb:~$ python active/www/app/deploy.py create_config -HTTP_Config foo.config -input_encoding=utf-8
    Usage :
    active/www/app/deploy.py command …
    Manage deployment of FFM application.

    Command/argument/option error: Unkown sub-command create_config,
    specify one of: (app, babel, fcgi_config, info, migrate, pycompile,
    setup_cache, shell, switch, ubycms, update, uwsgi_config, vc, wsgi_config)

  • bei den apache modulen welche zusätzlich geladen werden:
    ERROR: Module mod_expires does not exist!
    Module fcgid already enabled

  • beim füttern der datenbank:
    ffm@nodedb:~$ python active/www/app/deploy.py create
    Traceback (most recent call last):
    File “active/www/app/deploy.py”, line 39, in
    from _GTW import GTW
    ImportError: No module named _GTW

leider blick ich da nicht durch um das besser zu debuggen und zum laufen
zu bekommen :confused:


#4

lasst uns erst einmal eine instanz auf einem aktuellen debian zum laufen bekommen.
wenn wir das haben bzw. wissen welche schritte es für eine installation braucht, ist das dockerfile nicht weit entfernt…


#5

CNDB = Common NodeDB
die nodedb hat auch einen spider/crawler um weitere daten (z.b. firmware version usw) von aktiven ips zu holen.


Redeemer or Node-DB
#6

Geil :slight_smile:! Kann mich erinnern dass damals bei einem NodeDB meeting darüber diskutiert wurde. Schön dass das wirklich umgesetzt wurde.

@pocki: Monitoring Script als Plugin für die NodeDB? :stuck_out_tongue:


#7

Cool. Aber zuerst man ich sehen, dass die CNDB die aktuellen Redeemer-Funktionen erfüllt! Dieser Weg kommt mir fürs erste Herausforderung genug vor.


#8

Wer ist nun eigentlich dran, auf www.nodedb.wien.funkfeuer.at die Installation abzuschliessen?
Ich komme da zwar via SSH drauf, aber mir fehlt es eindeutig an (Projekt-)Wissen, um das WebUI-Login-fähig zu machen.


#9

Niemand. Wir bekommen eine neue Installation - siehe VM im Leitposting.


#10

ich würde gern die installation abschliessen, mir fehlt aber das wissen, wie man die cndb mit wsgi config im apache einbindet … laut readme gibts da einen config generator, der aber mit aktuellem debian fehlschlägt…
darum komm ich da nicht weiter…
hab die zugangsdaten zu der vm euch allen zukommen lassen…


#11

Also das letzte :
beim füttern der datenbank:
ffm@nodedb:~$ python active/www/app/deploy.py create
Traceback (most recent call last):
File “active/www/app/deploy.py”, line 39, in
from _GTW import GTW
ImportError: No module named _GTW

Ist zu lösen indem man den Librarypath richtig setzt also check

env |grep PYTHONPATH
und ggf
export PYTHONPATH=/home/ffm/active/lib/


bei den Modulen: die mod_expires ist laut packages.debian in apache-bin drinnen und lässt sich bei mir mittels
sudo a2enmod expires
auch aktivieren.


#12

Ok. Hier ein update:
Wenn man die App zum laufen bekommt hängt es bei mir bei:

Exit code: 1
Stderr: | Traceback (most recent call last):
| File “/home/nodedb/passive/www/app/model.py”, line 85, in
| import _GTW._OMP._Auth.Nav
| ImportError: No module named Nav

Die app model.py hat git GTW als dep, die wurde weiterentwickelt. in dem Manual wird mittels git Clone die neue version gezogen. es gibt aber offenbar changes wie:
“Change Nav.Admin to UI_Spec, DRY” => change log entry
Ich vermute mal, dass dies die App bricht.
Man könnte mal schauen man die dependencies auf altem stand ziehen kann und ob es dann nach beschreibung geht.
Es ist doch andvanced Python code und ich bin da kein Experte.

BTW: offensichtlich kann man die app als fcgi, uwsgi_config, wsgi_config fahren. da kommen mit fehler zumindest ausführbare skripts raus die man in ein händisch gemachtes Apache conf machen kann oder den Befehl in der Shell ausführen.
Bei mir lande ich da eben an obigen Fehler.

Soweit, ich gehe dann mal kinder holen, mlg
-mike


#13

Ich habe jetzt einige Äderungen probiert bei meiner Instanz probiert und es wird komplexer.

Es gab eine Function Spec die mehrfach verwendet wurde:
$ grep Spec.Entity -R active
active/www/app/_FFM/Nav.py:# 8-May-2013 (RS) Add channels to Spec.Entity for Wireless_Interface
active/www/app/_FFM/Nav.py:FFM.Antenna_Type.GTW.afs_spec = Spec.Entity (include_links = (“bands”,))
active/www/app/_FFM/Nav.py:FFM.Antenna.GTW.afs_spec = Spec.Entity (include_links = (“interface”, ))
active/www/app/_FFM/Nav.py:FFM.Net_Device.GTW.afs_spec = Spec.Entity
active/www/app/_FFM/Nav.py:### FFM.Net_Device_Type.GTW.afs_spec = Spec.Entity
active/www/app/_FFM/Nav.py:FFM.Wireless_Interface.GTW.afs_spec = Spec.Entity \

Die Änderungen müssen wohl analog dieses commits durchgeführt werden.
Changes in Spec.Entity

Ich seh mich da im moment nicht raus, uu mache ich später noch was…


#14

Darf ich da auch mal vorsichtig auf nodedb.funkfeuer.at mittels ssh reinschauen? Würde mich sehr über einen User freuen… :wink:


#16

Ja? vchrizz vergibt den Login für www.nodedb.wien.funkfeuer.at, doch meinte ich nodedb.funkfeuer.at - das ist nicht der gleiche Host.


#17

yessa. vm != nodedb.funkfeuer.at, und auf der VM warst du ja schon.
zeit ins bett zu gehen :wink:


#18

Ist diese Common NodeDB eigentlich schon irgendwo im Einsatz?
Es gibt ja im Funkfeuer Github Konto eine eigenen Banch für Graz - setzen die das ein oder gab es mal eine Initiative das in Graz einzuführen und wie weit ist diese gekommen?

UPDATE: Hab gerade das hier entdeckt:
https://eddie.funkfeuer.at/Doc/CNDB


#19

Hallo!

Ich konnte ein wenig Zeit in die Sache stecken:
Die CNDB an die Änderungen in Tapyr anzupassen ist ein wenig Arbeit, wieviel zu machen wäre kann ich schwer abschätzen. Einige commits sind sicher interessant (python3 compat, security sachen).
Um die Install mittels Readme abzuschliessen kann man tapyr-1d254ef9c8d3cf13492b121a7384b340b6f98078 nehmen
Dann ist auch wieder create-config da, etc.
uu könnte jemand mit den account info der CNDB auf github einen fork in den CNDB-user machen damit die CNDB mit dependencies konsistent ausgecheckt werden kann.

Ich mach mal wieder was anderes. Ich hoffe ihr könnt jetzt auf der VM die installation auch abschliessen

mlg
-michael


#20

Ich wollte etwas in den Sourcecode reinlesen, bin aber kläglich an der Art und Weise gescheitert, wie das gemacht wurde. Da habe ich von Python wohl zu wenig Ahnung.

Daher meine Frage: wie “weit” sind wir denn so entfernt, um

  • die Instanz funktionsfähig zu bekommen?
  • Daten vom Redeemer migrieren zu bekommen?
  • die aktuellen Redeemer-Funktionen nutzen zu können?
  • die APIs für DNS, Smokeping, Map umstellen zu können?

Bitte um eure Einschätzung! Ich hab da sowas von keinen Plan - ist für mich alles Chinesisch.


#21

Also damit das ding bei mir rennt habe ich jetzt nochmals alles durchgespielt.
am besten macht man beim holen der lib (tapyr)

[…]
$ git clone -n git://github.com/Tapyr/tapyr.git v/1/lib
$ cd v/1/lib
$ git checkout -b CNDB 1d254ef9c8d3cf13492b121a7384b340b6f98078
$ cd
[…]

der rest ging durch, nur die config die man bekommt sind in einem das fcgi script und eine apache conf.
Dort muss man noch:

Remove any “Order deny,allow”, “Order allow,deny”, and related lines
Replace “Deny from all” to “Require all denied”
Replace “Allow from all” to “Require all granted”
(siehe http://httpd.apache.org/docs/2.4/upgrading.html#run-time)

und dann noch aufs script dir ein “Require all granted” machen

Dann startet die anwendung auch.

Ich habe dann bei aufrufen des Login links die fehlermeldung " You are not authorized to access the page /Auth/login" bekommen. ich vermute die anwendung will ein login erzeugen aber das schlägt fehl.

Für die accounts muss man vmtl fixtures.py verwenden um initiale admin logins zu erzeugen. von dort geht es weiter.

Es gibt auch ein convert_0xff.py script, das offenbar auf den redeemer zugeschnitten ist und daten von dort in die neue DB konvertieren kann. ich vermute das geht, bis auf änderungen die nach 2014/2015 daher kamen.

Dokumentation zu diesen beiden skripts fand ich adhoc keine.

Viel spaß beim vervollständigen der VM und weiteren tests :wink: