Ansible Vaults bequem editieren

Ansible ist eine ganz nette Software um Serverlandschaften deklarativ zu administrieren /konfigurieren. Nicht so schön ist die Tatsache, daß alles per Yaml definiert wird – einer Auszeichnungssprache die mit Einrückungen arbeitet. Unangenehm wird es, wenn man Vault Files editieren möchte. Diese sind mit einem Passwort verschlüsselt und müssen mit dem Befehl

ansible-vault

entschlüsselt werden. Im Erfolgsfall öffnet sich nun der Default Editor (konfiguriert über update-alternatives –config editor unter Debian oder Ubuntu).

Das funktioniert prinzipiell, ist aber sehr fehleranfällig beim Anlegen von neuen Strukturen. Um z.B. Sublime Text für das Editieren zu nutzen muß nur die EDITOR Variable gesetzt werden :

EDITOR="subl -n -w"

Um den Editor dauerhaft auf Sublime umzustellen muß die Variable nur in die Shell Konfiguration ( ~/.bashrc) eingetragen werden:

export EDITOR="subl -n -w"

LibreELEC Kodi bequem updaten

Für bewegte Bilder auf der Glotze ist bei mir Kodi auf einem Raspberry Pi2 zuständig. Ich nutze dafür die Testbuilds von Milhouse weil man damit auch den Streaming Dienst von Amazon nutzen kann. Wie man das initial einrichtet erklärt Christoph von bei Linuxundich ganz gut. Da es sich um Testbuilds handelt macht es Sinn öfter mal ein Update einzuspielen. Wenn man das händisch macht ist es halt mit viel Arbeit verbunden und Arbeit sollten man vermeiden wo es nur geht. Deshalb habe ich ein kleines Script gebastelt welches mir diese Arbeit abnimmt. Die Geschichte ist natürlich bei weitem nicht perfekt. Ich habe aufgehört als es funktioniert hat.

Wichtig: mein Script lädt die Files für den Raspberry PI2 /3 wenn du einen Raspberry Pi 1 hast solltest Du dieses Script auf keinen Fall verwenden!

Benötigte Software

Um das ganze zum laufen zu bringen brauchst du PHP und Bash.

Die Scripte liegen in einem Repo auf Github wenn Du dir das genauer anschauen magst.

Falls nicht mußt du nur dieses Phar File  und ein Bash Script downloaden und in ein bin folder legen – $USER/bin wäre ein schöner Ort dafür.

Nun muß noch das executable flag gesetzt werden:

chmod +x today-release.phar 
chmod +x update-kodi.sh

Nutzung

Einfach das Script mit dem ssh String zum Raspberry aufrufen

update-kodi.sh kodi@192.168.0.89

Tipps zur Nutzung

  • Generell solltest Du Deinen public SSH Key auf dem Raspberry ablegen. Das erspart das Eintippen des Passworts bei jedem Aufruf. Zu dem Thema gibt es wohl eine Million Blog Posts. Hier ist einer.
  • Das SSH Config File nutzen.
  • Einen Cronjob in der Nacht einrichten der dann die Arbeit für einen erledigt –  00 00 * * * $HOME/bin/update-kodi.sh kodi

Was noch fehlt

Die Geschichte mit den Scripts ist schon ein wenig smelly. Eigentlich wollte ich mir das mit Ansible aufsetzen und das ADHS hat mich gezwungen  diese Scripte zu erzeugen. Sinnvoll wäre es auch, wenn vor dem Einspielen des Updates die /etc/issue geprüft wird um zu schauen ob das Gerät schon auf der aktuellen Version läuft.

Hat jemand einen Tipp für mich?

Ich parse die Url http://milhouse.libreelec.tv/builds/master/RPi2/ das ist ziemlich unelegant wie ich finde. Gibt es da vielleicht eine Art Http Standard um sowas direkt lesen zu können?

 

Serielle Kommunikation über Bluetooth

Für ein kleines Projekt (Mobiltelefon steuert Arduino) habe ich mir ein HC-06 Bluetooth Modul für wenig Geld in China besorgt. Bluetooth habe ich nie gemocht, weil ich nie viel Freude daran hatte diese Gerätschaften unter Linux zu konfigurieren, aber der Preisunterschied zu Arduino WLAN Modulen hatte dann doch den Ausschlag gegeben:).
 Über GUI ließ sich das Gerät leider nicht konfigurieren, aber  mit den bluez-utils auf der Kommandozeile ließ sich das Problem rasch beheben.

Zuerst muß die MAC Adresse des Moduls in Erfahrung gebracht werden.

ms@debian:~/$ hcitool scan
Scanning ...
	0C:DF:A4:DE:01:54	S3350
	20:14:04:11:15:16	HC-06

Das File rfcomm.conf anpassen

root@debian:/# cat /etc/bluetooth/rfcomm.conf 
#
# RFCOMM configuration file.
#
 
rfcomm0 {
#	# Automatically bind the device at startup
	bind yes;
#
#	# Bluetooth address of the device
	device 20:14:04:11:15:16;
#	# RFCOMM channel for the connection
	channel	1;
#
#	# Description of the connection
	comment "HC-06";
}

Nun die Pin des Geräts (Default ist 1234) setzen – Mac Adresse am Besten per Tabulator vervollständigen
root@debian:/# sudo echo „20:14:04:11:15:16 1234“ >> /var/lib/bluetooth/08\:3E\:8E\:E5\:1C\:5E/pincodes

Und den Bluetooth Daemon neu starten.

root@debian:/# sudo /etc/init.d/bluetooth restart

Befehle an den Bluetooth Client senden

Strings kann man nun einfach an das Gerät redirecten
ms@debian:~$ echo „beep“ >/dev/rfcomm0

Ausgabe des Bluetooth Clients lesen

Einfach mit cat die Gerätedatei ausgeben

ms@debian:~$ cat /dev/rfcomm0
==Commands==
led on
led off
beep
beep_d [duration]
==Commands==
led on
led off
beep
beep_d [duration]

fin.

Servus Planet!

Hallo zusammen,

ich war vor langer Zeit schonmal mit der Prämisse „Unerklärliches am Rande“ und dem Slogan „Worte des Parteivorsitzenden“ auf dem Planeten unterwegs (Domain schmiddi.co.cc). Wer das noch kennt kann nun im Feedreader auf weiter klicken weil sich nicht viel geändert hat.

Den Vergesslichen und auch Neuen Planetenkonsumenten sei gesagt, daß es sich hier alles um Linux dreht, nette Programme, Bash, wie ich meine Hardware damit zum laufen bringe,  ein wenig Skripten und ab und an Hardware ohne x86 CPU aber mit Linux :).

An Rechnern betreibe ich momentan ein Thinkpad W530 mit Ubuntu, eine kleine Debian Workstation, Raspberry Pi, Pogo Plug sowie diverse Android Telefone + Tablets und meinen heißgeliebten Ebookreader.

In diesem Sinne: auf fröhliches Bloggen!