GNU/Linux >> Tutoriels Linux >  >> Linux

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

Comme vous l'avez dit vous-même, le modèle Chef recommandé consiste à gérer l'ensemble du dossier.

Si vous utilisez Chef 11, vous pourriez probablement utiliser des partiels pour ce que vous essayez d'accomplir.

Il y a plus d'informations ici et sur cet exemple de livre de cuisine.

Tant que vous avez accès au modèle de configuration d'origine, ajoutez simplement <%= render "original_config.erb" %> en haut de votre parms_to_append.conf modèle.


Comme indiqué précédemment, l'utilisation de modèles et de partiels est une manière courante de procéder, mais chef permet d'ajouter des fichiers et même de modifier (éditer) des lignes de fichiers. L'ajout est effectué à l'aide des fonctions suivantes :

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

Vous pouvez trouver un exemple ici sur stackoverflow, et la documentation complète sur rubydoc.info

Veuillez l'utiliser avec prudence et uniquement lorsque les partiels et les modèles ne sont pas appropriés.


J'ai fait quelque chose comme ça :

monit_overwrites/templates/default/monitrc.erb :

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

Dans ma recette, j'ai fait ceci :

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. Insérer plusieurs lignes de données dans un fichier après les correspondances de modèle à l'aide du script shell Linux

  2. Comment supprimer plusieurs lignes aléatoires d'un fichier texte à l'aide de Sed ?

  3. Comment ajouter plusieurs lignes à un fichier ?

  4. Compter les lignes dans un fichier ?

  5. Comment ajouter le contenu de plusieurs fichiers dans un seul fichier

Utilisation du fichier de configuration SSH

Comment joindre plusieurs lignes en une seule dans un fichier sous Linux

Comment supprimer des lignes d'un fichier à l'aide de la commande Sed

Comment commenter plusieurs lignes à la fois dans l'éditeur vim en utilisant 3 méthodes

Comment recharger le fichier de configuration tmux qui a défini plusieurs sessions ?

Utiliser tail pour suivre un fichier sans afficher les lignes les plus récentes