Lage
Wir müssen die Cloud Shell Kommandos immer erneut zusammensetzen oder aus unserer Dokumention holen.
Auftrag
Erstellen Sie Bash-Scripte, die die Cloud Shell Kommandos ausführen und einem bei der Eingabe unterstützen.
Durchführung
- Laden Sie das Template herunten.
- Gehen Sie im Azure-Portel auf das Icon Cloud Shell in der blauen Leiste rechts neben dem Copilot-Button.
- Laden Sie die Template-Datei in die Cloudshell hoch.

Benennen Sie die Datei mit dem Kommando mv in template.json um.
-
Erstellen Sie eine neue Datei per Nano mit dem Namen datentraeger.sh
Ich habe Ihnen hier mit cat den Inhalt gezeigt. In der Datei definieren wir diese als Script und schreiben unser Kommando rein. Ändern Sie den Parameter meinfestplattename ab.
Mit chmod +x datentraeger.sh machen wir die Datei ausführbar und damit zum Script.
Und führen Sie das Script mit ./datentraeger.sh aus.

-
Jetzt sind die Werte in der datentraeger.sh leider sehr statisch und ich muss die Werte, die vor jeder Ausführung geändert werden müssen unten im Kommando suchen. Daher nutzen wir jetzt Variablen in dem Bash-Shell-Script.
#!/bin/bash
# Variablen setzen
RG_NAME="francecentral"
HDD_NAME="meineDiskAuto2"
az deployment group create --resource-group myResGroup --template-file template.json --parameters meinfestplattename=$HDD_NAME meinregion=$RG_NAME
-
Wir können aber auch Werte beim Aufruf als Parameter übergeben und im Script nutzen.
$1 ist hierbei der erste Parameter beim Aufruf des Scripts. Bei mehreren Parametern ist also die Reihenfolge wichtig.
#!/bin/bash
# Variablen setzen
RG_NAME="francecentral"
# Parameter auslesen
HDD_NAME=$1
az deployment group create --resource-group myResGroup --template-file template.json --parameters meinfestplattename=$HDD_NAME meinregion=$RG_NAME
In der Cloud Shell rufen wir das Script dann mit ./datentraeger.sh meineDiskAuto3 auf.
-
Wenn ich aber das Script ohne Parameter aufrufe gibt es eine Azure-Fehlermeldung. Wir wollen daher in das Script eine Sicherheitsfunktion einbauen, dass schon das Script einen Fehler ausgibt, wenn der Parameter nicht gesetze ist.
Dazu nehmen wir eine if-Abfrage in der Bash. if [ -z "$1" ]] überprüft, ob das erste Argument leer ist. Wenn das der Fall ist, wird eine Fehlermeldung ausgegeben und mit exit 1 das Script abgebrochen.
#!/bin/bash
# Prüfen, ob ein Parameter übergeben wurde
if [ -z "$1" ]; then
echo "kein Parameter!"
exit 1
fi
# Variablen setzen
RG_NAME="francecentral"
# Parameter auslesen
HDD_NAME=$1
az deployment group create --resource-group myResGroup --template-file template.json --parameters meinfestplattename=$HDD_NAME meinregion=$RG_NAME
-
Wir wollen das Script benutzerfreundlicher gestalten. Nach ein paar Wochen ist es auch schwer, sich an alle Parameter zu erinnern.
#!/bin/bash
# Prüfen, ob ein Parameter übergeben wurde
if [ -z "$1" ]; then
echo "Usage:"
echo "$0 <festplattenname>"
echo "Beispiel:"
echo "$0 meinefestplatte_v2"
exit 1
fi
# Variablen setzen
RG_NAME="francecentral"
# Parameter auslesen
HDD_NAME=$1
az deployment group create --resource-group myResGroup --template-file template.json --parameters meinfestplattename=$HDD_NAME meinregion=$RG_NAME
-
Machen Sie aus der Region ebenfalls ein Parameter. Die wäre der 2. Parameter und mit $2 abrufbar.
Denken Sie daran, die if-Abfrage auf den 2. Parameter auszuweiten.