Usando una receta de Chef para agregar varias líneas a un archivo de configuración

Estoy tratando de crear una receta de Chef para agregar varias líneas (20-30) a un archivo de configuración específico.

Soy consciente de que el patrón recomendado escambiar archivos de configuración completos en lugar de solo añadirlo a un archivo, pero no me gusta este enfoque por múltiples razones.

Hasta ahora, la única solución que encontré fue usar uncookbook_file y luego usar un recurso bash para hacer:

cat lines_to_append >> /path/configfile

Obviamente, esto no funcionaría correctamente, ya que adjuntaría el archivo una y otra vez, cada vez que ejecute chef-client. Tendría que crear una pequeña secuencia de comandos de bash para verificar primero una cadena específica, y,si no se encuentra, adjuntar al archivo.

Pero esto parece derrotar el propósito de usar Chef. Tiene que haber una mejor manera.

Una solución prometedora fue lalibro de cocina de línea de la comunidad OpsCode. Su objetivo era resolver este problema exacto. Desafortunadamente, la funcionalidad es incompleta, con errores, y el código es solo un truco rápido. Lejos de ser una solución sólida.

Otra opción que evalué fueaugeas. Parece bastante poderoso, pero agregaría otra capa de abstracción al sistema. Exceso, en mi caso.

Dado que esta es una de las tareas más obvias para cualquier administrador de sistemas, ¿hay alguna solución fácil y hermosa con Chef que no esté viendo?

EDIT: así es como lo estoy resolviendo hasta ahora:

 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

Funciona, pero no estoy seguro de que este sea el patrón recomendado por Chef.

Respuestas a la pregunta(4)

Su respuesta a la pregunta