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"

Argumente an Alias weitergeben

Den meisten Leuten dürfte  bekannt sein, dass man einer Aliasfunktion Argumente übergeben kann. Mir war es neu / ich war noch nie auf die Idee gekommen sowas zu tun :). Ein Beispielaufruf:

create_audiobook ()
{
mpg123 -s $1 | faac -P -X -w -o $2 –
}
create_audiobook (){
mpg123 -s $1 | faac -P -X -w -o $2 -
}

$1 & $2 wären die Variablen, die gesetzt sein sollten für den Aufruf. Problematisch wirds, wenn nur ein oder gar kein Argument mitgegeben wird. Das kann man mit einer simplen If Abfrage validieren:

create_audiobook (){
expr1=$2
expr2=$1
if [ "$expr1" -a "$expr2" ]
then
	mpg123 -s $1 | faac -P -X -w -o $2 -
else
	echo "Usage: create_audiobook INPUTFILE OUTPUTFILE"
fi
}

Das Fleißsternchen bekommt man, wenn man die Existenz der Befehle vor der Ausführung abprüft:

create_audiobook (){
APP1=mpg123
APP2=faac

if which $APP1 &>/dev/null && which $APP2 &>/dev/null
then
	echo "$APP1 & $APP2 found"
else
	echo "Please install $APP1 & $APP2"
	exit
fi

expr1=$2
expr2=$1
if [ "$expr1" -a "$expr2" ]
then
	mpg123 -s $1 | faac -P -X -w -o $2 -
else
	echo "usage: create_audiobook INPUTFILE OUTPUTFILE"
fi
}
######create_audiobook konvertiert ein mp3 zu einer mp4 Datei

Mich würde an dieser Stelle noch interessieren, ob Ihr im Community Planeten an solchen Posts interessiert seid, oder ob ich solche Ergüsse für mich behalten sollte^^.