Archiv der Kategorie: linux

[vmware] lvm vergrößern

Das schöne an virtuellen Maschinen ist, die Hardware lässt sich anpassen bzw erweitern.

Um eine Festplatte zu erweitern ist es am einfachsten, das diese zuvor über lvm als Volume eingerichtet wurde.

Als erstes musste ich wissen auf welcher Festplatte mein Volume lag, dieses konnte ich über pvdisplay in Erfahrung bringen. In meinem Fall war es die /dev/sdc und über die Verwaltungstools von VMware vergrößerte ich die Festplatte um 30GB.

Damit das Betriebssystem mitbekommt das die Festplatte sich vergrößert hat, habe ich die Partitionstabelle mit Hilfe von blockdev --rereadpt /dev/sdc neu eingelesen. Dann musste pvresize /dev/sdc ausgeführt werden, um das Physical Volume zu vergrößern.

Nachdem ich mit lvdisplay das Logical Volume ermittelt hatte, vergrößerte ich es mit dem Befehl lvextend -L+30G /dev/VolGroup02/LogVol_daten . Zum Schluss noch resizefs /dev/VolGroup02/LogVol_daten um das Filesystem zu vergrößern.

Das Gute an dieser Variante ist, das Betriebssystem muss nicht neugestartet werden.

[Raspberry Pi] Ein und Ausschalter

Von Haus aus bietet der Raspberry Pi keine Möglichkeit für ein einfaches aus beziehungsweise einschalten. Zum einschalten muss der Raspberry Pi nur mit Spannung versorgt werden, zum ausschalten muss er sauber heruntergefahren werden. Möchte man den Pi nun wieder einschalten, muss er von der Spannungsversorgung getrennt und wieder verbunden werden.

Für das wieder einschalten gibt es eine einfache Möglichkeit und zwar müssen hierfür nur die beiden Kontakte neben dem HDMI Anschluss (gekennzeichnet mit P6) verbunden werden. Ich habe die beiden Kontakte mit einem einfachen Taster verbunden und kann nun den Raspberry Pi wieder einschalten. Wenn das Betriebssystem auf dem Raspberry noch nicht herunterfahren ist, würde ich vermeiden den Taster zu betätigen. Durch den Reset wird das Betriebssystem vorher nicht sauber heruntergefahren und könnte im schlimmsten Fall im Anschluss nicht mehr starten.

Reset beim Raspberry Pi

Raspberry Pi und der Ausschalter
Für das Ausschalten benötigt man einen der GPIO Ports, ich nutze im weiteren Verlauf den GPIO 22.
Um den Port als Eingang zu definieren, müssen die folgenden zwei Befehle auf der Kommandozeile ausgeführt werden:
echo 22 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio22/direction

Über cat /sys/class/gpio/gpio22/value wird der Zustand abgefragt.

Damit der Port den entsprechenden Zustand erreicht, lege ich ihn auf Masse (Zustand 0) oder 3,3 Volt (Zustand 1).
Ich habe den Port 22 mit einen Pullup Widerstand (10 kOhm) an Pin 1 (3,3V) angeschlossen und über einen Kippschalter kann ich den Gpio 22 Port auf Masse legen. Per Cronjob wird der Wert in der Datei /sys/class/gpio/gpio22/value abgefragt und bei einer 0 wird das System heruntergefahren.

shutdown script
#!/bin/bash
i=`cat /sys/class/gpio/gpio22/value`
if [ $i -eq 0 ]
then
/sbin/shutdown -h now
fi

Reset der GPIO Ports nach neustart
Leider gehen nach einem Neustart die Einstellungen für die GPIO Ports verloren. Mit Hilfe eines Scripts, welches in der /etc/rc.local hinterlegt wird, werden die Einstellungen beim starten neu gesetzt.

set_gpio22.sh:
#!/bin/bash
echo 22 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio22/direction

Festplatte aus einem Mac unter Linux mounten

Beim mounten einer Festplatte die mit hfsplus formatiert war, erhielt ich die folgende Meldung in der /var/log/syslog.

hfs: unable to find HFS+ superblock

Damit Ubuntu die Festplatte überhaupt erkannte, musste ich zuvor die hfsprogs(apt-get install hfsprogs) installieren.

Mit Hilfe von fdisk /dev/sde fand ich heraus, das die Festplatte anscheinend nur eine Partition hat. Diese versuchte ich mit mount -t hfsplus /dev/sde1 /media/temp zu mounten, jedoch ohne Erfolg. Im Internet fand ich die verschiedensten Optionen die ich mit angeben konnte, die Lösung war aber die zweite Partition zu mounten.

Das Problem ist, das fdisk in diesem Fall nur die mbr Tabelle anzeigen kann und es sich bei der sde1 um die EFI Partition gehandelt hat. Die sde2 Partition läßt sich dann mit mount -t hfsplus /dev/sde2 /media/temp als read only mounten. Der Grund für das read only ist, das unter Mac das journaling aktiviert wurde. Um die Festplatte auch schreibbar zu mounten, muss vorher das journaling deaktiviert werden. Dieses geht jedoch leider nur unter einem Mac mit dem Befehl:

diskutil disableJournal Volume Name

SSH Keys verwalten

Ich finde ein ssh-keymanager ist sinnvoll wenn man mehrere Benutzer und Linuxserver verwalten muss. Angenommen man hat um die 40 Entwickler die auf bis zu 100 verschiedene Server zugreifen müssen. Für jeden Entwickler ein Benutzerkonto auf dem jeweiligen System zu erstellen ist sehr zeitaufwendig und bedarf auch einer guten Dokumentation. Meine Idee ist es ein Benutzerkonto zu erstellen zum Beispiel ewl , unter diesem Benutzer können sich alle Entwickler anmelden. Vorraussetzung ist das der Publickey des Entwickler in der authorized_keys hinterlegt wurde. Das hinterlegen des Keys würde in diesem Fall der ssh-keymanager übernehmen.

Installation
Die Inbetriebnahme des ssh-keymanagers ist recht einfach. Den Ordner entpacken und in ein entsprechendes Verzeichniss ablegen, auf den der Apache zugreifen kann. Eine Mysqldatenbank erstellen, den mitgelieferten Dump einspielen und die Zugangsdaten in der inc/connect.inc.php hinterlegen. Nun die Webseite aufrufen und mit admin / itbasic anmelden.

Damit die Keys verteilt werden können muss der Apache Benutzer in der Lage sein eine shell auszuführen, gegebenenfalls muss dafür die /etc/passwd angepasst werden. Zusätzlich muss unter dem Apache Benutzer ein Public key erstellt werden, dieser wird in der Mysqldatenbank(Tabelle systemkey) hinterlegt.

Host und Linuxbenutzer anlegen
Ein neuer Host wird über „Host => hinzufügen“ hinzugefügt, wichtig ist hierbei das die korrekte IP Adresse angegeben wird. Nachdem der Host angelegt wurde, kann über „Host => anzeigen“ ein neuer Linuxbenutzer für den Host angelegt werden. Der Linuxbenutzer muss nun jedoch noch manuell auf dem eigentlichen System angelegt werden und der zuvor erstellte public key des Apache muss in der authorized_keys abgelegt werden.
Bevor der erste Abgleich der Keys stattfinden kann, muss man sich über den Apache Benutzer an dem neuen Host anmelden. Durch die Anmeldung wird der Neue Host zu den known_hosts hinzugefügt.

Benutzer / Benutzergruppe
Unter Benutzer gibt es die Möglichkeit einen neuen Benutzer anzulegen bzw sich alle Benutzer anzuzeigen zu lassen.
Für die einfachere Verwaltung können Benutzer zu Gruppen zusammengefasst werden, diese Benutzergruppe wird dann dem entsprechendem Linuxbenutzer zugewiesen.

Abgleich
Unter Abgeich => Systemkey wir lediglich für den einfachen Zugriff der Public Key des Apache Benutzers dargestellt.
Bei dem Punkt anzeigen werden alles Linuxbenutzer aufgelistet die aktualisiert werden müssen. Ändert zum Beispiel ein Benutzer seinen Public Key, wird der entsprechende Linuxbenutzer hier aufgeführt. Ein klick auf den Pfeil stößt den Abgleich der Keys an.

Das Layout könnte man sicherlich noch überarbeiten, aber ich denke fürs erste sollte es reichen. Wenn jemand einen Fehler findet oder einen Änderungswunsch hat, einfach eine email schreiben.

 

Serverübersicht

 

Benutzerübersicht

 

Download

Kleine Anmerkung
Da meine grafischen Fähigkeiten leider nur reichen um Bilder mit Hilfe von Gimp zurechtzuschneiden, benutze ich folgende Buttons: http://fortawesome.github.io/Font-Awesome/

[Raspberry Pi] CUL in Fhem einbinden

Endlich habe ich es geschafft die Stehlampen im Garten an den FS20 Umschalter anzuschließen. Über die Fernbedienung konnte ich die einzelnen Ausgänge bereits schalten, nun sollte es auch über Fhem möglich sein.

In der Dokumentation hatte ich gelesen das es reicht die CUL anzuschließen und den Fhem neu zu starten. Kurz nach dem Neustart kam folgende Meldung auf der Kommandozeile:

Use of uninitialized value in string ne at ./FHEM/99_CULflash.pm line 63.

Die Meldung tritt auf wenn man beim einstecken den kleinen Taster nicht eingedrückt hat. Also nochmal raus, Taster drücken, einstecken und Fhem neu starten.

Jedoch blinkte die CUL nicht und In den fhem logs kam folgende Meldungen
Can't open /dev/ttyAMA0: Keine Berechtigung

Ich änderte die Rechte auf /dev/ttAMA0 und startete Fhem neu, diesmal erhielt ich folgende Meldung:
usb create starting
Opening CUL device /dev/ttyAMA0
Setting CUL baudrate to 38400
CUL device opened
usb create end

Was mich jedoch wunderte ist, das in den Dokumentationen von /dev/ttyACM0 die Rede ist und die CUL auch nicht blinkte. In einem Forum stieß ich auf die Lösung, wenn Fhem auf dem Rasbperry Pi läuft gibt es Probleme beim einspielen der Firmware.

Also lud ich mich mir FLIP für Windows von Atmel herunter und die benötigte Firmware. Nach der Installation der Software ließ sich die Firmware ohne Probleme aufspielen und die CUL blinkte.
Nun gab es unter Linux auch das Device /dev/ttyACM0 und in der fhem.cfg fügte ich folgende Zeile hinzu:
define CUL1 CUL /dev/ttyACM0@9600 1234

Einbinden in Fhem

Ich hatte erst am nächsten Tag Zeit den FS20 Aktor in Fhem einzubinden. Als ich Fhem im Browser aufrief gab es bereits den Raum FS20, darunter befanden sich vier Schalter.
Ich klickte den ersten Schalter an und siehe da, die Lampen gingen an. Anscheinend erkennt die CUL alle FS20 Vorgänge und leitet sie an den Fhem weiter, dieser erstellt den passenden Schalter.
Nun musste ich nur noch in der fhem.cfg die angelegten Schalter nach meinen Wünschen umbenennen.

fhem fs20

Automatisch angelegte Schalter

Fhem registriert es wenn ich die Lampen per Fernbedienung schalte und ändert den Status im Webfrontend.

cul

CUL gekauft www.busware.de