Valores de variáveis minúsculas em um modelo de marionete

7

Na configuração do meu boneco eu preciso diminuir o valor de uma variável antes de usá-la em um modelo. Como conseguir isso? Existe uma maneira de diminuir um valor variável dentro do manifesto de fantoches? Preciso fazer isso no template?

E mais geral: onde estão as funções de manipulação de strings que eu poderia usar em manifestos.

Eu tenho que escrever minhas próprias funções rubi personalizadas para conseguir isso?

    
por paweloque 26.10.2012 / 17:31

2 respostas

11

As capacidades de manipulação de strings do Puppet dentro dos manifestos são muito limitadas. Manifestos não são destinados a lidar com coisas assim.

Mas, no modelo, é fácil; funções rubi normais estão disponíveis. Digamos que eu queira uma minúscula do osfamily fact:

<%= osfamily.downcase %>
    
por 26.10.2012 / 17:38
13

Existem duas soluções gerais em que posso pensar para este problema. Em geral, quero dizer que eles funcionam em arquivos e modelos de manifesto em vez de apenas modelos.

A solução que eu recomendo é usar a função downcase() parser no módulo da biblioteca padrão . Eu recomendo isso porque você não precisa escrever nenhum código Ruby e é mais fácil de ler:

class helloworld {
  $os_downcase = downcase($osfamily)
}
include helloworld

Se você não quer depender do módulo stdlib , então você pode usar a função inline_template para generalizar a solução mencionada por Shane:

class helloworld {
  $os_downcase = inline_template('<%= osfamily.downcase %>')
}
include helloworld

inline_template evita a necessidade de criar um arquivo *.erb separado.

Espero que isso ajude. -Jeff

    
por 27.10.2012 / 19:34