2010-12-13 7 views
24

Я использую марионетку для настройки серверов. Я хочу напечатать текущее имя машины (узла) в шаблоне * .erb. Существует имя хоста переменная, но это занимает имя кукольного мастера. Есть ли хорошая ссылка/список по этой теме?имя кукольного узла имя хоста

ответ

28

Похоже, что у меня есть мисс-где-то. Я могу получить (печать) узла-хоста просто вызвав следующий код * .erb шаблона:

<%= @hostname %> 

Edit: На Кукол 3, используя локальные переменные (т.е. hostname осуждается, кукольный 4 удалит их поддержку . полностью рекомендуемый способ заключается в использовании переменных экземпляра (с префиксом @ Таким образом, в этом случае, @hostnameSource

+0

ах точно, я был очень озадачен, потому что в моем случае для «FQDN» Я получаю полное имя хоста (например, «myhost.acnemcom»), в то время как для «hostname» Я получаю короткую версию (ту, которая возвращается командой hostname -s), например «myhost». Ни в коем случае я не принимаю хозяина кукол. – PierluigiVernetto

23

Введите следующую команду в терминале будет возвращать переменные, доступные в ваших ERB файлов:..

facter --puppet 
+1

Отлично! Это очень помогает. –

+1

Да! Это полезная часть знаний. – JCotton

+1

Этот ответ показывает, что я не хочу «hostname», но «fqdn» вместо моего приложения. –

6

Да ко всем вышеперечисленным; вы также можете найти переменную fqdn полезной, в зависимости от того, что вы делаете.

Если вы нашли себя нуждаясь информацией мастера-сервер марионетки в шаблоне, вы можете использовать переменные servername, serverip и serverversion (From the FAQ).

2

Обратите внимание, что это имя хоста, а не имя узла (которое вы изначально запрашивали). В 99% случаев они будут одинаковыми. AFAIK нет способа получить фактическое имя узла в шаблонах (и если есть, я бы хотел его услышать).

4

Видимо теперь вы можете использовать

<%= fqdn %> 

и получить DNS обратное имя.

Если вам нужно в нижнем регистре, используйте

<%= fqdn.downcase %> 
Смежные вопросы