2016-04-27 7 views

Antwort

1

Es ist nur Kurzschrift für nichts. Yaml benötigt es, so dass du die direkt darunter haben kannst. Man könnte es auch so formatiert werden:

httpd: 
    pkg: 
    - installed 
    file: 
    - managed: 
    - name: /etc/httpd/conf/httpd.conf 
    - source: salt://httpd/httpd.conf 
    - require: 
     - pkg: httpd 
3

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.

+0

Ich hoffe, Salz schlägt fehl und tut nichts, wenn Sie doppelte IDs haben. – guettli

+2

Mach dir keine Sorgen, Salz wird dich warnen und aufhören. – mootmoot