Dies ist nur ein Beispiel für un-Koordinatensalz Entwickler schlechter Dokumentation Gewohnheiten, die Sie zu flexiblen Salz Zustand Baumstruktur annehmen, wissen.
Sie müssen verstehen, es gibt eine Menge Verknüpfung im Salzstapel. Nehmen Sie das Beispiel mit.
# you can write this "shorthand" to install httpd
# http are ID and also package name
httpd:
pkg.installed
# this do similar works. I specify a more descriptive ID
install-http-package:
pkg.installed:
- name: http
# this install httpd package together with other package. Again I use descriptive ID
install-web-app-pacakges:
pkg.installed:
- pkgs:
- httpd
- php5
- django
So ist das Problem über die erste Ebene "ID". Der Salzstapel durchquert den gesamten Yaml-Baum, um festzustellen, ob es sich um einen beschreibenden Wert handelt, oder um ihn als Paketnamen zu verwenden.
Allerdings muss das Parsing einem bestimmten Format entsprechen, damit es nicht fehlschlägt. Wenn Sie die Kurzschrift übertreiben, wird der Parser verwirrt. Eine Kurzschrift behandelt nur 2 Zeilen.
Um das Problem zu beheben, wird der leere Listenwert [] übergeben. dann Parser sehen die [] und stimmen zu, dass es die beschreibende ID httpd als Paketname übergeben wird, und den Rest der anderen Aktion fortsetzen.
In der Tat kann die "Stenografiergruppe" als dies schreiben.
# Use simple shorthand
httpd:
pkg.installed
copy-customise-httpd.conf-to-server:
file.managed:
- name: /etc/httpd/conf/httpd.conf
- source: salt://httpd/httpd.conf
- require:
- pkg: httpd
Es gibt keinen Vorteil, die Kurzschrift zu übertreiben. Sie speichern nur ein paar Zeilen der Eingabe. Stenographie ist einer der Gründe für die Salz-Stack-YAML Config steil Lernkurve.
Und es gibt einen weiteren Haken bei der Verwendung des Paketnamens als ID: ID muss eindeutig sein. Sie können in einen Fehler geraten, wenn Sie sie wegen eines Grundwissens wiederverwenden.
Ich hoffe, Salz schlägt fehl und tut nichts, wenn Sie doppelte IDs haben. – guettli
Mach dir keine Sorgen, Salz wird dich warnen und aufhören. – mootmoot