Utilisation d'une recette Chef pour ajouter plusieurs lignes à un fichier de configuration

Je suis en train de créer une recette Chef pour ajouter plusieurs lignes (20 à 30) à un fichier de config.

Je suis conscient que le modèle recommandé est de changer ensemble de fichiers de configuration plutôt que de simplement ajouter du texte à un fichier, mais je n'aime pas cette approche pour plusieurs raisons.

Jusqu'à présent, la seule solution que j'ai trouvé est d'utiliser un cookbook_file et ensuite utiliser un bash de ressources pour le faire:

cat lines_to_append >> /path/configfile

Évidemment, cela ne fonctionnerait pas correctement, il faudrait ajouter un fichier de plus de et plus, à chaque fois que vous exécutez le chef-client. Je dois créer un petit script bash pour rechercher une chaîne spécifique à la première, et, si elle ne trouve pasajouter au fichier.

Mais ce qui semble à l'encontre du but de l'utilisation de Chef. Il doit y avoir une meilleure façon.

Une solution prometteuse est la ligne de livre de cuisine de OpsCode de la Communauté. Elle vise à résoudre ce problème exact. Malheureusement, la fonctionnalité est incomplète, buggy, et le code est juste un petit hack. Loin d'être une solution solide.

Une autre option, j'ai évalué a été augeas. Semble assez puissant, mais il serait bien de l'ajouter encore une autre couche d'abstraction du système. Overkill, dans mon cas.

Étant donné que c'est l'un des la plupart des tâches évidentes pour tout sysadmin, est-il facile et belle solution avec le Chef que je ne suis pas voyant?


EDIT: voici comment je suis résoudre jusqu'à présent:

 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

Il fonctionne, mais pas sûr que cela est recommandé Chef de modèle.

source d'informationauteur Gui Ambros | 2013-06-02