2016-05-03 9 views
1

Wir verwenden Salt Stack, um unsere App als Debian-Paket bereitzustellen. Die Anwendung selbst ist Scala und verwendet Java-Versionierung, z. Während der Entwicklung bleibt die Versionsnummer beispielsweise bei 1.5.0-SNAPSHOT. Aber das Paket selbst wird immer aktualisiert.SaltStack - So installieren Sie das Paket neu, wenn sich die Version nicht geändert hat

Das Problem ist, dass Salzstapel nur neu installieren, wenn es ein Update für die Version gibt. Aber für uns bleibt die Version gleich, aber der Inhalt ändert sich.

Bisher haben wir uns helfen, indem sie immer das Entfernen der Verpackung zuerst

my-app-removed: pkg.removed: 
    - name: my-app 

my-app: pkg.installed: 
    - sources: 
    - my-app: salt://my-app-1-5-0-SNAPSHOT.deb 

Aber dies immer wieder anbringt, so state.highstate löst immer eine Veränderung. Gibt es eine andere Möglichkeit, dpkg/pkg auf debian zu veranlassen, auch die gleichen Versionsnummern zu aktualisieren, wenn und nur wenn sich der Inhalt ändert?

Wir überprüften auch das Verify-Flag für den pkg-Status (der im Grunde auch installiert, wenn eine Datei geändert wurde), aber das hat nicht funktioniert und das doc sagt auch nur yum unterstützt es im Moment.

Antwort

2

Die Anforderung onchanges bewirkt, dass nur dann ein Status ausgeführt wird, wenn sich der abhängige Status ändert. Also, ich würde einen lokalen Cache der .deb-Datei behalten und feststellen, wenn es sich ändert, und nur den pkg entfernen, wenn sich die Datei ändert. (Sie führen auch die Installation von der lokal zwischengespeicherten Datei durch.)

snapshot-deb-file: 
    file.managed: 
    - name: /var/cache/my-app-1-5-0-SNAPSHOT.deb 
    - source: salt://my-app-1-5-0-SNAPSHOT.deb 

my-app-removed: 
    pkg.removed: 
    - name: my-app 
    - onchanges: 
     - file: snapshot-deb-file 

my-app: 
    pkg.installed: 
    - sources: 
     - my-app: /var/cache/my-app-1-5-0-SNAPSHOT.deb 
+0

danke, große Problemumgehung, funktioniert perfekt. –

Verwandte Themen