A partir de 0.24.8, um modelo Puppet pode chamar uma função Puppet?
Posso obter funcionalidades semelhantes chamando a função no meu manifesto, atribuindo o valor de retorno a uma variável e, em seguida, usando a lookupvar ('variável') no modelo, mas gostaria de cortar o intermediário.
<%= scope.function_template("sites/$domain/config.erb") %>
<%= scope.function_template("sites/#{domain}/config.erb") %>
.Deixe-me estender a pergunta também para funções personalizadas . Basicamente, você chama funções personalizadas da mesma maneira que as funções internas (usando o prefixo da função_), mas certifique-se de passar todos os parâmetros em uma matriz:
Observe que ele também funciona sem colchetes em algumas versões do Puppet. Mais informações: http://docs.puppetlabs.com/guides/custom_functions.html#referencing-custom-functions-in-templates
Outra coisa importante é que há um bug (ou recurso) no Puppet 2.6 ou mais antigo, em que funções personalizadas não são carregadas automaticamente no escopo do modelo. Você precisa carregá-los manualmente , caso contrário, a função não será encontrada!
Mais informações: http://projects.puppetlabs.com/issues/7991
fonte
Não tenho muita certeza do que você quer dizer com uma função Puppet, mas os modelos de fantoches são incorporados ao Ruby, para que você possa fazer qualquer coisa nos modelos que puder no Ruby.
fonte