Archiv des Autors: hermann

Was soll auf einem Display angezeigt werden

In vielen Unternehmen beziehungsweise auch an öffentlichen Stellen hängen Display, die die verschiedensten Inhalte ausgeben. Es werden die nächsten Besucher angekündigt, das aktuelle Wetter, der Speiseplan oder andere verschiedene Dashboards. Die womöglich billigste Variante ist vermutlich einen Monitor / Fernseher zu verwenden, der an einem Raspberry Pi angeschlossen ist. Auf dem Raspberry Pi wird der Browser in dem Kiosk Modus gestartet und gibt die gewünschte Seite aus. Soll die Seite gewechselt werden, so wird die Konfiguration auf dem Raspberry Pi angepasst und der Browser wird neu gestartet. Gibt es mehrere Display die verwaltet werden müssen, so ist dies vermutlich ein gewisser Aufwand. Die kleine in Ruby on Rails geschriebene Webapplikation übernimmt die Verteilung der URL.

In der Webapplikation werden die Rasperry Pis hinterlegt und auf dem Raspberry Pis werden entsprechende Scripte eingerichtet. Damit die Webapplikation auf die Raspberry Pis zugreifen kann, muss der Public Key des Benutzers unter dem die Webapplikation läuft, auf dem Pi hinterlegt werden. Nun kann per Mausklick eine neue Url hinterlegt oder der Pi heruntergefahren bzw. neugestartet werden.

In der Webapplikation können Gruppen angelegt werden, Benutzer und Raspberry Pis werden der Gruppe zugeordnet. Die angelegten Benutzer können nur Raspberry Pis verwalten, die sich in der gleichen Gruppe befinden.

Verwaltung der Raspberry Pis

Git Repository https://github.com/Ostfriese26802/DashboardViewController

Betriebshandbuch

Für die Umgebung der IT gibt es die verschiedensten Möglichkeiten die Applikationen, Komponenten, Server usw. zu dokumentieren. In vielen Fällen kommt ein Wiki zum Einsatz, hier wird in Teilen eine Einheitliche Struktur verwendet. Was mich bislang daran gestört hat ist, das einige Punkte manuell gepflegt werden müssen bzw. Sie können nicht einfach miteinander verknüpft werden.
Bei Änderungen an Hardware wie RAM oder Festplatte, muss dies manuell angepasst werden. Wird zum Beispiel nach einem Change die Festplatte d erweitert, muss dieses im Nachgang im Wiki angepasst werden. An dieser Stelle wäre eine automatische Aktualisierung von Vorteil.

Ich habe mir hierzu ein paar Gedanken gemacht und ein kleines Ruby on Rails Projekt gestartet. Aktuell können dort folgende Punkte hinterlegt werden.

  • Kunden
  • Server
  • Hardware der Server
  • Applikationen
  • Komponenten
  • Monitoring
  • Technische Benutzer
  • Staging Stufe
  • interne Fachgruppen / Teams
  • externe Dienstleister
  • Supportmatrix

Es werden noch weitere Punkte hinzukommen wie automatischer Import der Server Hardware oder die Möglichkeit das gesamte BFH als PDF zu exportieren. Hierbei soll es eine Möglichkeit geben die zu exportierenden Punkte auszuwählen.

Wenn es Anregungen gibt was noch geben sollte, immer her damit.

Link zum Repository: https://github.com/Ostfriese26802/betriebshandbuch

Tabelle in SQLite Datenbank löschen

Aktuell spiele ich ein wenig mit Ruby on Rails rum und musste neulich eine Tabelle in der Datenbank löschen. Ich musste ein klein wenig suchen bis ich die einfache Lösung gefunden habe.

Zunächst mit rails c mit der console verbinden, im Anschluss über

ActiveRecord::Migration.drop_table(:table_name)

die entsprechende Tabelle löschen.

Nokogiri auf dem Mac installieren

Ich möchte mich ein wenig mit Ruby on Rails beschäftigen und bin für die Installation nach der Anleitung https://install-rails-mac.com/#check-the-gem-manager vorgegangen. Jedoch bin ich bei der Installation von nokogiri (gem install nokogiri) auf folgenden Fehler gestoßen.

ERROR:  While executing gem … (Gem::FilePermissionError)

    You don’t have write permissions for the /Library/Ruby/Gems/2.3.0 directory.

Mit dem dem folgenden Befehl war die Installation jedoch möglich.

sudo gem install nokogiri -n /usr/local/bin

[dashing] globale Variablen

Ich nutze zwei verschiedene Systemen für die Dashboards. Das eine System wird zur Entwicklung von Widgets bzw. Anpassung von Scripts verwendet, das andere System für die Produktive Darstellung. Bislang mussten die Scripte nachdem sie auf das Prodsystem kopiert wurden angepasst werden, da teilweise absolute Pfade hinterlegt wurden.

Das ganze muss durch das setzen einer globalen Variable nicht mehr erfolgen. In dem Jobs Verzeichnis wurde die Datei variable.rb abgelegt, in der Datei sind die benötigten Variablen wie folgt angegeben: $GPFAD=“testsystem“
Damit in den Ruby Dateien darauf zugegriffen werden kann, muss zunächst die variable.rb eingebunden werden.

require_relative(‚variable.rb‘)
Nun kann innerhalb der rb Datei über $GPFAD auf die Variable zugegriffen werden.