GNU/Linux >> Linux Esercitazione >  >> Linux

Utilizzo di una ricetta Chef per aggiungere più righe a un file di configurazione

Come hai detto tu stesso, il modello consigliato da Chef è quello di gestire l'intero file.

Se stai usando Chef 11 potresti probabilmente usare i partial per quello che stai cercando di ottenere.

Ci sono più informazioni qui e su questo libro di cucina di esempio.

Finché hai accesso al modello di configurazione originale, aggiungi semplicemente <%= render "original_config.erb" %> in cima al tuo parms_to_append.conf modello.


Come detto prima, l'utilizzo di modelli e parziali è un modo comune per farlo, ma chef consente di aggiungere file e persino di modificare (modificare) le righe di file. Appendend viene eseguito utilizzando le seguenti funzioni:

  • insert_line_after_match(regex, newline);
  • insert_line_if_no_match(regex, newline)

Puoi trovare un esempio qui su StackOverflow e la documentazione completa su rubydoc.info

Si prega di usarlo con cautela e solo quando partial e template non sono appropriati.


Ho fatto qualcosa del genere:

monit_overwrites/templates/default/monitrc.erb:

#---FLOWDOCK-START
set mail-format { from: [email protected] }
#---FLOWDOCK-END

Nella mia ricetta ho fatto questo:

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. Inserisci più righe di dati in un file dopo le corrispondenze dei modelli utilizzando lo script della shell di Linux

  2. Come eliminare più righe casuali da un file di testo utilizzando Sed?

  3. Come aggiungere più righe a un file?

  4. Contare le righe in un file?

  5. Come aggiungere il contenuto di più file in un unico file

Utilizzo del file di configurazione SSH

Come unire più righe in una in un file in Linux

Come rimuovere le righe da un file usando il comando Sed

Come commentare più righe contemporaneamente nell'editor di vim usando 3 metodi

Come selezionare più righe da un file o da pipe in uno script?

Trova e sostituisci il testo in un file tra un intervallo di righe usando sed