GNU/Linux >> Tutoriales Linux >  >> Linux

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

Como tú mismo dijiste, el patrón Chef recomendado es administrar todo el archivo.

Si está usando Chef 11, probablemente podría usar parciales para lo que está tratando de lograr.

Hay más información aquí y en este libro de cocina de ejemplo.

Siempre que tenga acceso a la plantilla de configuración original, simplemente agregue <%= render "original_config.erb" %> en la parte superior de tu parms_to_append.conf plantilla.


Como se dijo antes, el uso de plantillas y parciales es una forma común de hacer esto, pero Chef permite agregar archivos e incluso cambiar (editar) líneas de archivo. La adición se realiza usando las siguientes funciones:

  • insert_line_after_match(regex, newline);
  • insertar_línea_si_no_coincide(regex, nueva línea)

Puede encontrar un ejemplo aquí en stackoverflow y la documentación completa en rubydoc.info

Úselo con precaución y solo cuando los parciales y las plantillas no sean apropiados.


Hice algo como esto:

monit_overwrites/templates/default/monitrc.erb:

#---FLOWDOCK-START
set mail-format { from: example@unixlinux.online }
#---FLOWDOCK-END

En mi receta hice esto:

monit_overwrites/recipes/default.rb:

execute "Clean up monitrc from earlier runs" do
  user "root"
  command "sed '/#---FLOWDOCK-START/,/#---FLOWDOCK-END/d' > /etc/monitrc"
end

template "/tmp/monitrc_append.conf" do
  source "monitrc_append.erb"
end

execute "Setup monit to push notifications into flowdock" do
  user "root"
  command "cat /tmp/monitrc_append.conf >> /etc/monitrc"
end

execute "Remove monitrc_append" do
  command "rm /tmp/monitrc_append.conf"
end

Linux
  1. Inserte varias líneas de datos en un archivo después de que el patrón coincida con el script de shell de Linux

  2. ¿Cómo eliminar varias líneas aleatorias de un archivo de texto usando Sed?

  3. ¿Contar líneas en un archivo?

  4. Cómo copiar un archivo a varios directorios usando el comando gnu cp

  5. Convertir varias líneas en una línea separada por comas

Uso del archivo de configuración SSH

Cómo unir varias líneas en una en un archivo en Linux

Cómo quitar líneas de un archivo usando el comando Sed

Cómo comentar varias líneas a la vez en el editor vim usando 3 métodos

¿Cómo recargar el archivo de configuración tmux que ha definido múltiples sesiones?

Uso de la cola para seguir un archivo sin mostrar las líneas más recientes