2010-12-13 16 views
24

Używam marionetki do konfigurowania serwerów. Chcę wydrukować bieżącą nazwę komputera (węzła) w szablonie * .erb. Istnieje zmienna o nazwie, ale zawiera ona nazwę hosta puppetmaster. Czy istnieje jakieś dobre odniesienie/lista dotyczące tego tematu?nazwa hosta marionetki

Odpowiedz

28

Wydaje się, że tęsknię - gdzieś spojrzałem. Mogę dostać (Print) Node-hosta po prostu powołując się następujący kod * .erb Szablon:

<%= @hostname %> 

Edit: Jak Lalek 3, stosując zmienne lokalne (tj hostname jest przestarzała; Marionetka 4 usunie wsparcie dla nich . całkowicie Zalecanym sposobem jest użycie zmiennych instancji (z prefiksem @ Więc w tym przypadku, @hostnameSource

+0

ah dokładnie, byłem naprawdę zaskoczony, bo w moim przypadku o „fqdn” Mam pełną nazwę hosta (na przykład „myhost.acnemcom”), podczas gdy dla "hostname" Dostaję krótką wersję (tę zwróconą przez komendę hostname -s), taką jak "myhost". W żadnym wypadku nie dostaję hostii lalkowej. – PierluigiVernetto

23

wprowadzając następujące polecenie w terminalu powróci zmienne dostępne w plikach Erb:..

facter --puppet 
+1

Świetnie! To bardzo pomaga. –

+1

Tak! To przydatna wiedza. – JCotton

+1

Ta odpowiedź pokazuje, że nie chcę, aby nazwa "host", ale "fqdn" tworzyła moją aplikację. –

6

Tak do wszystkich powyższych; możesz również znaleźć użyteczną zmienną fqdn, w zależności od tego, co robisz.

Jeśli znajdziesz się potrzeby info Władcą Marionetek serwera w szablonie, można użyć zmiennych servername, serverip i serverversion (From the FAQ).

2

Pamiętaj jednak, że jest to nazwa hosta, a nie nazwa węzła (o którą pierwotnie prosiłeś). W 99% przypadków będą one takie same. AFAIK nie ma sposobu, aby uzyskać rzeczywistą nazwę węzła w szablonach (a jeśli tak, to chciałbym to usłyszeć).

4

Podobno można teraz używać

<%= fqdn %> 

i uzyskać reverse DNS nazwy.

Jeśli trzeba to małe litery, należy

<%= fqdn.downcase %> 
Powiązane problemy