2017-03-14 1 views
0

Ich möchte einen Befehl (cmd.run) auszuführen, die Dateien innerhalb des Salz-Verzeichnis verwendet, zum Beispiel:Wie verwendet man Dateien im Verzeichnis salt für cmd.run?

fly_set_{{ pipeline }}: 
    cmd.run: 
    - name: | 
     fly -t ci set-pipeline -p {{ pipeline }} -c pipeline.yml -l credentials.yml 
    - require: 
     - cmd: fly_login_{{name}} 
     - file: /etc/concourse/teams/builds/{{ pipeline }}/pipeline.yml 
     - file: /etc/concourse/teams/builds/{{ pipeline }}/credentials.yml 

Ist dies der richtige Ansatz oder sehe ich das erste tun müssen?

file: 
    managed: 
    - source: salt://concourse/teams/builds/{{ pipeline }}/pipeline.yml 
+0

Stellen Sie klar, wo Sie cmd.run im Salt-Server ausführen möchten? oder Salz-Günstling? – mootmoot

Antwort

3

Ich bin nicht sicher genau, was Sie auf mehrere Dateien den richtigen Weg sein würde dies zu tun, abhängig ist zu erreichen, aber wenn Ihr Befehl versuchen:

/etc/concourse/teams/builds/{{ pipeline }}/pipeline.yml: 
    file.managed: 
    - source: salt://concourse/teams/builds/{{ pipeline }}/pipeline.yml 

/etc/concourse/teams/builds/{{ pipeline }}/credentials.yml: 
    file.managed: 
    - source: salt://concourse/teams/builds/{{ pipeline }}/credentials.yml 

fly_set_{{ pipeline }}: 
    cmd.run: 
    - name: | 
     fly -t ci set-pipeline -p {{ pipeline }} -c pipeline.yml -l credentials.yml 
    - require: 
     - file: /etc/concourse/teams/builds/{{ pipeline }}/pipeline.yml 
     - file: /etc/concourse/teams/builds/{{ pipeline }}/credentials.yml 

ersten beiden file.managed Richtlinie Stellen Sie sicher, dass beide Dateien auf dem Diener vorhanden sind. Die require Direktive in cmd.run wird sicherstellen, dass Dateien auf dem Diener vor die Ausführung des Befehls vorhanden sind.

Verwandte Themen