2012-05-02 13 views
21

Czy można dokonać zamiany strun/transformacji w Puppet za pomocą wyrażenia regularnego?Zmiana sznurka w Puppet?

Jeśli $ hostname to "web1", chcę, aby $ nazwa_hosta bez numeru była "web". Następująca nie jest poprawna składnia Puppet, ale myślę, że potrzebuję czegoś takiego:

$hostname_without_number = $hostname.gsub(/\d+$/, '') 

Odpowiedz

37

Tak, jest to możliwe.

Sprawdź odniesienie function lalkowy: http://docs.puppetlabs.com/references/2.7.3/function.html

istnieje regularna funkcja podstawienie wyrażenie wbudowany Prawdopodobnie wywołuje tę samą funkcję gsub podstawowej..

$hostname_without_number = regsubst($hostname, '\d+$', '') 

Lub jeśli wolisz, aby rzeczywiście wołać do Ruby, można użyć szablonu inline ERB:

$hostname_without_number = inline_template('<%= hostname.gsub(/\d+$/, "") %>') 
+1

Dzięki! Użyję wbudowanego regsubst() tym razem, ale bardzo się cieszę, że wiem o inline_template! To bardzo elastyczne. – richardkmiller

+0

Warto zauważyć, że 'regsubst()' obsługuje także arg argenty na czwartej pozycji. Flaga taka jak "G" globalnie zastąpi wszystkie dopasowania w podanym łańcuchu. – killthrush

Powiązane problemy