Mit einem Koch-Rezept zum Anhängen mehrerer Zeilen in eine config-Datei

Ich versuche zu schaffen, ein Koch Rezept zum Anhängen mehrerer Zeilen (20-30) auf eine bestimmte config-Datei.

Ich bin mir bewusst, dass das empfohlene Muster ist ändern der gesamten config-Dateien vielmehr als nur das Anhängen an eine Datei, aber ich mag diesen Ansatz aus mehreren Gründen.

Bisher die einzige Lösung, die ich fand war die Verwendung eines cookbook_file und dann mit einem bash-Ressource zu tun:

cat lines_to_append >> /path/configfile

Offensichtlich würde dies nicht funktionieren, richtig, es würde Anhängen, die Datei immer und immer wieder, jedes mal, wenn Sie ausführen, chef-client. Ich würde erstellen Sie ein kleines bash-script prüfen, ob eine bestimmte Zeichenfolge erste, und, wenn nicht gefunden, anfügen an die Datei.

Aber dies scheint die Niederlage der Zweck der mit-Chef. Es muss einen besseren Weg geben.

Eine vielversprechende Lösung war die line-Kochbuch von OpsCode Gemeinschaft. Es trifft zu lösen genau dieses problem. Leider ist die Funktionalität ist unvollständig, fehlerhaft, und der code ist nur ein schneller hack. Weit davon entfernt, eine solide Lösung.

Andere option, die ich ausgewertet wurde augeas. Scheint ziemlich mächtig, aber es würde noch hinzufügen-eine weitere Ebene der Abstraktion auf das system. Übertrieben, in meinem Fall.

Gegeben, dass dies eine der offensichtlichsten Aufgaben für jeden sysadmin, gibt es eine einfache und schöne Lösung mit dem Chef, ich bin nicht zu sehen?


EDIT: hier ist, wie ich bin die Lösung die es so weit:

 cookbook_file "/tmp/parms_to_append.conf" do
   source "parms_to_append.conf"
 end

 bash "append_to_config" do
   user "root"
   code <<-EOF
      cat /tmp/parms_to_append.conf >> /etc/config
      rm /tmp/parms_to_append.conf
   EOF
   not_if "grep -q MY_IDENTIFIER /etc/config"
 end

Funktioniert es, aber nicht sicher, ob dies ist die empfohlene Koch-Muster.

InformationsquelleAutor Gui Ambros | 2013-06-02

Schreibe einen Kommentar