문제

I'm using puppet to configure servers. I want to print current machine (node) name in *.erb template. There is hostname variable, but this holds puppetmaster hostname. Is there any good reference/list regarding to this topic?

도움이 되었습니까?

해결책

Seems like I have miss-looked somewhere. I can get(print) node-hostname simply by invoking following code in *.erb template:

<%= @hostname %>

Edit: As of Puppet 3, using local variables (i.e. hostname is deprecated; Puppet 4 will remove support for them entirely. The recommended way is to use instance variables (prefixed with @. So in this case, @hostname. Source

다른 팁

Entering the following command into your terminal will return variables available in your erb files:

facter --puppet

Yes to all the above; you may also find the fqdn variable useful, depending on what you're up to.

If you DO find yourself needing the puppet master server's info in a template, you can use the variables servername, serverip, and serverversion (From the FAQ).

Apparently you can now use

<%= fqdn %> 

and get the DNS reverse name.

If you need to lowercase it, use

<%= fqdn.downcase %>

Do note though, this is the hostname rather than the node name (which you originally asked for). In 99% of cases, these will be the same. AFAIK there isn't a way to get the actual node name in templates (and if there is, I'd love to hear it).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top