Usando uma receita do Chef para anexar várias linhas a um arquivo de configuração

Estou tentando criar uma receita de Chef para acrescentar várias linhas (20-30) a um arquivo de configuração específico.

Estou ciente de que o padrão recomendado éalterar arquivos inteiros de configuração em vez de apenas anexar a um arquivo, mas eu não gosto dessa abordagem por vários motivos.

Até agora, a única solução que encontrei foi usar umcookbook_file e, em seguida, use um recurso bash para fazer:

cat lines_to_append >> /path/configfile

Obviamente, isso não funcionaria corretamente, pois acrescentaria o arquivo várias vezes, sempre que você executasse o cliente-chefe. Eu teria que criar um pequeno script bash para verificar primeiro uma string específica e,se não for encontrado, acrescente ao arquivo.

Mas isso parece frustrar o propósito de usar o Chef. Deve haver um caminho melhor.

Uma solução promissora foi alivro de receitas de linha da Comunidade OpsCode. O objetivo era resolver esse problema exato. Infelizmente, a funcionalidade está incompleta, com bugs, e o código é apenas um truque rápido. Longe de ser uma solução sólida.

Outra opção que eu avaliei foiaugeas. Parece muito poderoso, mas acrescentaria ainda outra camada de abstração ao sistema. Excessivo, no meu caso.

Dado que esta é uma das tarefas mais óbvias para qualquer administrador de sistema, existe alguma solução fácil e bonita com o Chef que eu não esteja vendo?

EDIT: aqui está como eu estou resolvendo isso até agora:

 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, mas não tenho certeza se esse é o padrão de Chef recomendado.

questionAnswers(4)

yourAnswerToTheQuestion