2016-03-23 5 views
0

Wir haben ein Problem mit Chef darin, dass es unnötigerweise neu startet. Wir planen Chefkäufer, alle 1 5 Minuten zu laufen. Ein Neustart von Prozessen und der App tritt jedoch jedes Mal auf, auch wenn der Benutzer keine Änderungen vorgenommen hat.Chef - Neustart aufgrund von Auto-Verschlüsselungsmechanismus

Der Grund dafür ist, dass wir eine proprietäre App haben, die einen Mechanismus automatisiert, der ein Klartext-Passwort in einer Konfigurationsdatei verschlüsselt. Jedes Mal, wenn der Chef läuft, sieht er einen Unterschied in der Konfigurationsdatei die Vorlage (unverschlüsselte Zeichenfolge) und die aktuell bereitgestellte Konfigurationsdatei (die diese App nach dem Chef berührt und den Text verschlüsselt hat).

Das App-Team berührt diese Datei häufig an anderen Orten, so dass das Ignorieren dieser Datei vollständig nicht ideal ist. Allerdings suchen Sie nach Optionen von anderen, die das gleiche Problem haben könnten.

Vielen Dank im Voraus.

Antwort

0

Der beste Ansatz wäre wahrscheinlich, Ihre eigene Ressource zu erstellen, die weiß, wie sie nach dem vorhandenen verschlüsselten Blob sucht, es aus der Datei herauszieht und es dann in die gerenderte Vorlage einfügt, damit es genau gleich ist. Sie könnten dafür eine benutzerdefinierte Ressource erstellen oder einfach eine ruby_block Ressource verwenden, um die Datei zu analysieren (Regex am wahrscheinlichsten, wenn das Format nicht zu schrecklich ist).

0

Ich denke, das Problem ist typisch mit Apps, die nicht nur lesen, sondern auch Konfigurationsdateien aktualisieren. Dies ist üblich. Passwortverschlüsselung ist ein Grund, aber es gibt andere.

Die Art, wie ich "Stille" Chef ist, ist eine separate, zusätzliche, Schatten-Konfigurationsdatei zu erstellen. Wenn zum Beispiel die Konfigurationsdatei /opt/app/config.xml ist, erzeuge ich /opt/app/config.xml.chef. Alle Daten, die ich in die config.xml mit Chef I setzen auch in config.xml.chef setzen.

Die notifies ich bewegen sich von der ursprünglichen Konfigurationsdatei Schatten Config config.xml.chef

template "/opt/app/config.xml.chef" do 
    ... 
    notifies :reload, 'service[myapp]', :delayed 
end 

In der Ressource für die ursprüngliche Konfiguration ich eine Erinnerung setzen.

template "/opt/app/config.xml" do 
    ... 
    # no notifies here, use shadow config file 
end 
Verwandte Themen