Puppet, alterando o arquivo de várias propriedades com augeas

2

Estou usando muito a ferramenta puppet e augeas para configurar arquivos de propriedades. Meu último requisito é aplicar o mesmo conjunto fixo de alterações a uma lista bastante longa de arquivos de propriedades. Então, eu gostaria de fazer isso de uma só vez e não escrever um augeas para cada arquivo de propriedades.

Exemplo:

  augeas { 'change_name_whatever':
    lens    => 'a_customized_lens',
    incl    => "$path/file1.properties", 
    changes => $change_set,
  }
  augeas { 'change_name_whatever':
    lens    => 'a_customized_lens',
    incl    => "$path/file2.properties", 
    changes => $change_set,
  }
etc...

Eu gostaria de usar:

  augeas { 'change_name_whatever':
    lens    => 'a_customized_lens',
    incl    => "[list of files to change], 
    changes => $change_set,
  }

mas não é possível, pois o augeas precisa pré-carregar o arquivo.

Como estou usando o Puppet 3.8, não posso usar o tipo foreach de loop. Eu vi que no fantoche 4 você pode declarar uma lista de arquivos, e então fazer um loop neles e fazer sua coisa. O que é legal ... mas não funciona no fantoche 3.

Então, eu tenho outra solução e copio / colo o mesmo código várias vezes?

aplausos.

    
por bioShark 12.01.2016 / 11:44

1 resposta

5

A melhor opção para isso é criar um tipo de recurso definido:

define customized::filetype ($change_set) {
 augeas { "customized filetype ${title}":
    lens    => 'a_customized_lens',
    incl    => $name, 
    changes => $change_set,
  }
}

e, em seguida, use-o com uma matriz no título:

customized::filetype { [
  "$path/file1.properties",
  "$path/file2.properties"
  ]:
  change_set => $change_set,
}

Você pode até (e eu recomendo) abstrair o conjunto de alterações como parâmetros chave / valor no tipo de recurso definido. Por exemplo:

define customized::filetype ($key, $value) {
 augeas { "customized filetype ${title}":
    lens    => 'a_customized_lens',
    incl    => $name, 
    changes => "set ${key} ${value}",
  }
}
    
por 12.01.2016 / 12:16

Tags