System-Administration

Einige Anpassungen und Kommandos benötigen die Arbeit in der Systemumgebung des Rechners. Metador bietet einige Befehle an, die für diese Arbeiten genutzt werden können.

app/console Allgemein

Im Metador Installationsverzeichnis liegt im Unterordner app der console Befehl, der einige Symfony und Doctrine Befehle aber auch Metador spezifische Befehle ausführt. Diese sind in PHP implementiert, so dass diese Konsolenbefehle letztenendes PHP Logik ausführen.

Der Befehl wird immer mit app/console ausgeführt, also dem Verzeichnisnamen app und dem Befehl console. Wird der Befehl ohne Parameter ausgeführt, listet er die möglichen Befehle.

Eine gekürzte Ausgabe sieht wie folgt aus:

/srv/metador2 $ app/console
Symfony version 2.8.8 - app/dev/debug

Usage:
  command [options] [arguments]

Options:
  [...]

Available commands:
  help                                 Displays help for a command
  list                                 Lists commands
 assets
  assets:install                       Installs bundles web assets under a [...]
 doctrine
  [...]
  doctrine:database:create             Creates the configured database
  [...]
  doctrine:schema:update               Executes (or dumps) the SQL needed to update the database schema to match the current mapping metadata.
  [...]
 metador
  metador:disable:plugin               Disable plugin
  metador:dump:helptext                Export helptext into twig file.
  metador:enable:plugin                Enable plugin
  metador:export:helptext              Export helptext.
  metador:health-check                 Determine the health of the application
  metador:import:helptext              Import helptext.
  metador:init:database                Create system groups and user
  metador:list:plugins                 Lists all available plugins
  metador:reset:plugins                Uninstall all plugins
  metador:reset:superuser              Create new password for root user
  metador:taskmanager:run              Runs the Taskmanager
 [...]

Die Metador-spezifischen Kommandos sind im Unterpunkt „metador“ verfügbar und werden in den folgenden Abschnitten erläutert.

Das Passwort des Superusers zurücksetzen

Um das Passwort des Administrators in Metador zurückzusetzen nimmt man den Befehl metador:reset:superuser. Der Befehl setzt das Passwort des Superusers zurück, falls man es vergessen haben sollte.

/srv/metador2$ app/console metador:reset:superuser
User     : root
Password : 5yHYdCXxUe

Plugin-Kontrolle auf der Konsole

Mit den Befehlen metador:list:plugins, metador:enable:plugin und metador:disable:plugin können die Metador Plugins aufgelistet, aktiviert und deaktiviert werden.

Der Befehl metador:list:plugins listet die einzelnen Metador-Plugins auf, deren Status und deren Herkunft.

/srv/metador2 $ app/console metador:list:plugins

Plugins
=======

+------------------------------+--------------------+---------+--------------------------------------------------------------+
| Key                          | Name               | Enabled | Description                                                  |
+------------------------------+--------------------+---------+--------------------------------------------------------------+
| metador-helptext             | Hilfetexte         | yes     | Schreiben und abrufen von Hilfetexten                        |
| metador-address              | Adressen           | yes     | Legt automatisch Adressen in der Datenbank ab                |
| lvermgeo-theme               | LVermGeo Theme     | no      | LVermGeo Theme                                               |
| metador-import               | Import             | yes     | Ermöglicht das importieren von Metadaten                     |
| metador-inspire-validator    | Inspire Validator  | no      | ...                                                          |
| metador-logging              | Logging            | yes     | Logging Bundle für Metador                                   |
| metador-map                  | Karte              | no      | Einfache Karte zum Anzeigen von Geometadaten für Metador 2.1 |
| metador-publish              | Veröffentlichen    | yes     | Metadaten Veröffentlichen                                    |
| profile-dataset              | Daten              | yes     | Metadatenprofil für Daten                                    |
| profile-lvermgeo-dataseries  | Dataseries Profile | no      | Metadatenprofil für Datenreihe                               |
| profile-lvermgeo-dataset     | Dataset Profile    | no      | Metadatenprofil für Datensätze                               |
| profile-lvermgeo-service     | Service Profile    | no      | Metadatenprofil für Dienste                                  |
| profile-lvermgeo-tile        | Tile Profile       | no      | Metadatenprofil für Tiles                                    |
| profile-service              | Dienste            | yes     | Metadatenprofil für Dienste                                  |
| wheregroup-catalogue-service | Catalogue Service  | yes     | Catalogue Service                                            |
+------------------------------+--------------------+---------+--------------------------------------------------------------+

Die Befehle metador:enable:plugin und metador:disable:plugin aktivieren bzw. deaktieren ein Plugin. Hier am Beispiel des Plugins Hilfetexte, das zuerst deaktiviert und dann wieder aktiviert wird. Es wird dabei immer der „Key“ als Parameter übergeben.

Deaktivieren eines Plugins:

/srv/metador2 $ app/console metador:disable:plugin metador-helptext

Plugin deaktivieren
===================


 [OK] Erfolgreich abgeschlossen

Aktivieren eines Plugins:

/srv/metador/lvermgeo_mis/metador2 $ app/console metador:enable:plugin metador-helptext

Plugin aktivieren
=================


 [OK] Erfolgreich abgeschlossen

Hilfetexte exportieren und importieren.

Mit den Befehlen metador:import:helptext und metador:export:helptext werden die Hilfetexte zu den einzelnen Formularelementen in eine Datei exportiert bzw. können aus einer Datei importiert werden.

Dabei wird beim Exportieren mit dem Parameter -f die Datei angegeben, in die exportiert werden soll.

/srv/metador2 $ app/console metador:export:helptext -f helptext.json
File saved to "helptext.json".

Ebenso wird beim Import der Hilfetexte verfahren:

/srv/metador2 $ app/console metador:import:helptext -f helptext.json
Import done.

TaskManager

Der TaskManager wurde erstellt um Aufgaben im Hintergrund ausführen zu können. Dazu gehören unter Anderem der Export des Logbuchs oder die Prüfung der Datenkonsistenz. Plugins können sich in den TaskManager reinhängen.

Angestoßen wird der TaskManager per cronjob, der im Grunde app/console metador:taskmanager:run ausführt.

Der Taskmanager legt eine Datei TASKMANAGER.LOCK im Verzeichnis var/config an. Zeigt das Logging die Meldung: „Taskmanager kann nicht gestartet werden.“ überprüfen Sie bitte, ob diese LOCK-Datei vorhanden ist und löschen Sie diese. Dies kann in seltenen Fällen bei einem Systemfehler vorkommen. Der Administor bekommt eine Mail bei diesem Fehler.

Die initialen Import-Befehle aus dem Archiv können einige Zeit in Anspruch nehmen. Daher sollte man bei der initialen Befüllung die PHP Parameter max_execution_time und memory_limit hochsetzen. Die Parameter finden sich in der php.ini Datei des Apache Webservers (z.B. /etc/php/7.0/apache2/php.ini):

max_execution_time = 300
memory_limit = 128M

Export der Logging-Informationen

Um die Logging-Informationen in eine Textdatei zu exportieren, dient der folgende Befehl.

bin/console metador:dump:logs --delete --older-than 1 ./

Dabei bedeuten die Parameter:

  • –delete: Bewirkt, dass exportierte Logs in der Datenbank gelöscht werden.
  • –older-than n: Bewirkt, dass nur Logs älter als n Monate exportiert werden.
  • ./: Der Pfad, in den die Logdatei hingelegt werden soll. In diesen Beispiel der gleiche Ordner.

Health Check

Der Health Check ist ein kleines Tool, das ähnlich der Startseite der Metador Administration Konfigurations- oder Einrichtungsfehler im System auflistet. Das können z.B. fehlende Schreibrechte des Webserver-Benutzers auf ein bestimmtes Verzeichnis sein.

/srv/metador2 $ app/console metador:health-check

Health-Check
============


 [OK] Es scheint alles in Ordnung zu sein :)

Das System in den Wartungszustand versetzen

Der System-Administrator kann über einen Befehl das System in den Wartungszustand versetzen. In dieser Zeit sind keine Editierungen mehr möglich und die Schnittstellen sind nicht verfügbar.

Der Befehl zur Einschaltung des Wartungsmodus lautet metador:stop.

/srv/metador2 $ app/console metador:stop

Stop application
================

 [OK] Anwendung befindet sich nun im Wartungsmodus.

In der Zeit des Wartungsmodus, wird eine andere Webseite dargestellt.

Wartungsmodus Webseite

Wartungsmodus Webseite

Die Wartungsseite lässt sich durch einen Parameter in der parameters.yml austauschen und verweist per Voreinstellung auf die Seite web/wartung.html.

# app/config/parameters.yml
parameters:
    maintenance_file: '%kernel.root_dir%/../web/wartung.html'

Der Befehl zum Beenden des Wartungsmodus lautet metador:start.

/srv/metador2 $ app/console metador:start

Start application
=================

 [OK] Anwendung ist wieder erreichbar.

Synchronisierungsbefehle in der Kommandozeile

Mit dem Befehl

bin/console lvermgeo:sync

kann der Synchronisierungsbefehl per Hand angestoßen werden. Es werden die Konfigurationen aus dem Einstellungen zur Schnittstelle externes System übernommen.

Synchronisierung Konsole

Synchronisierung Konsole

In dieser Beispielausgabe merkt Metador, dass im externen System die Sourcen intern, extern, etc. fehlen und legt diese an.

Anpassungen der Größe des erlaubten Dateiuploads

Für die Kartenkomponente ist ein Dateiupload von Shape-Dateien möglich. Die maximale Größe des Dateiuploads ist eine PHP-spezifische Einstellung. Diese muss in der php.ini des Webbereiches (unter Linux gewöhnlich im Apache-Zweig der PHP-Einstellungen, also z.B. /etc/php/7.0/apache2/php.ini) vorgenommen werden.

upload_max_filesize = 40M
post_max_size = 40M

In diesem Beispiel wäre die maximale Größe auf 40 MB eingestellt.