Server Internes
IN BEARBEITUNG!!!
Git-Repository
Die aktuellste ffdd-server Version sowie Release Informationen findest du direkt auf der Projektseite.
https://github.com/Freifunk-Dresden/ffdd-server
Bereitstellung / Initialisierung
Die Initialisierung des Gateway-Server erfolgt über das init_server.sh Script. Dieses stellt sicher dass der Server auf dem aktuellen Stand ist und alle Abhängigkeiten sowie Konfigurationen vorhanden sind.
Wichtige Punkte sind hier:
- Konfiguration:
- /etc/nvram.conf (Enthält alle Gateway Spezifische Informationen)
- /etc/salt/minion.d/freifunk-masterless.conf (Definiert das Arbeitsverzeichnis für Salt - /srv/ffdd-server/salt/freifunk/base/ )
- Pakete:
- git - für die Bereitstellung und Aktualisierung des Repositories
- salt-minion (Salt) - Automatisierung 'Masterless-Orchestration-Management'
- Bereitstellung des Repositoryies unter
/srv/ffdd-server/
Salt übernimmt nun die weitere Initialisierung des Gateway-Server.
Im init_server.sh Script wird der "salt-call state.highstate --local" Befehl aufgerufen um sicherzustellen das alle Konfigurationen, Paket,.. wie gewünscht auf dem Server bereitgestellt werden.
Dies geschieht im laufenden Betrieb auch regelmäßig über einen Cronjob (siehe: Server_Internes#cron).
Betrieb / Operating
Salt Basics
Salt benötigt seine Konfiguration ( /etc/salt/minion.d/freifunk-masterless.conf )
file_client: local
file_roots:
base:
- /srv/ffdd-server/salt/freifunk/base
und das Arbeitsverzeichnis ( /srv/ffdd-server/salt/freifunk/base/ ) welches einen "Ablaufplan" die top.sls bereitstellt.
Alle hier definierten Aufgaben bekommen je nach Umfang und Komplexität im Arbeitsverzeichnis entweder:
eine Konfigurationsdatei ( ../freifunk/base/AUFGABE.sls )
oder
einen Unterordner ( ..freifunk/base/AUFGABE/ ) welcher eine init.sls enthält.
Desweiteren gibt es noch ein Konfigurationfile, die config.jinja, welche dynamische Variablen enthält. Diese Variablen können in den einzelnen "Aufgaben-Scripten" einfach eingebunden und genutzt werden.
Salt - Aufgaben (top.sls)
Konfiguriert benötigte Pakete um das Betriebssystem des Gateway-Server aktuell zuhalten.
Entfernt alle Pakete welche die Funktionalität des Servers einschränken könnten.
Installiert alle für den Server nötigen Pakete welche keine zusätzliche Konfiguration benötigen.
Stellt Programme und Verknüpfungen als "Helferlein" für die Unterstützung des Administrators bereit.
Hinterlegt für den User 'root' eine .bashrc Konfiguration für die default shell: bash.
In dieser werden unter anderem aliases (Kürzel) bereitgestellt Kommandos abzukürzen.
Es gibt die Möglichkeit auch eigene aliases in der /root/.bash_user_aliases zu definieren. Diese wird in '/root/.bash_aliases' eingebunden und automatisch mitgeladen.
Stellt sicher das alle Benutzer für den Betrieb mit den richtigen Berechtigungen vorhanden sind.
Hinterlegt die Standart Konfiguration für "bash".
Hinterlegt die Standart Konfiguration für das Console-Verhalten.
Konfiguriert die Server-Ausgabe-Sprache.
Konfiguriert die Serverzeit.
Stellt sicher dass die Serverzeit immer aktuell ist.
Die /etc/nvram.conf enthält alle Gateway Spezifische Informationen.
nvram Konfigurtations Optionen
Hier ist eine nvram.conf mit allen verfügbaren Optionen:
# install_dir !Please do not touch! install_dir=/srv/ffdd-server # set autoupdate (0=off 1=on) autoupdate=1 # Git-Branch branch=T_RELEASE_latest # Register key must be uniq. See http://wiki.freifunk-dresden.de/index.php/Technische_Information#Berechnung_IP_Adressen ddmesh_node= ddmesh_registerkey= # If set to 1, vserver will not announce itself as gateway. normally you do not need to change this. ddmesh_disable_gateway=0 # used by webpage and /etc/issue.net servername=VPN Server <number> #vserver network interface; this depends on vserver provider (hoster) ifname=eth0 # this is the secret key which is used to decrypt secured backbone connection # the corresponding public key should be given to the peers, so those can encrpyt/connect to this server # To generate the keys: /etc/init.d/S53backbone-fastd genkey fastd_secret= fastd_public= # to accept all in comming connection, set this to 0 or remove this line. # When set to 1, only already known connections are accepted. this may be used # to prevent overloading a server. fastd_restrict=0 # SSH Password-Authentification # To disable tunneled clear text passwords (0=off 1=on) ssh_pwauth=1 # BMXD #bmxd_prefered_gateway= # gps coordinates. see /var/www/sysinfo.json # this functionality is not part of Basic Vserver installation, as this service should only run on one or an backup server. gps_latitude=51.033865 gps_longitude=13.653252 gps_altitude=0 city=Dresden contact_name= contact_location=your Hosting Provider contact_email= contact_note=VPN X