puppet node hostname

前端 未结 5 1447
暗喜
暗喜 2021-02-03 23:05

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.

相关标签:
5条回答
  • 2021-02-03 23:19

    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

    0 讨论(0)
  • 2021-02-03 23:26

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

    facter --puppet
    
    0 讨论(0)
  • 2021-02-03 23:29

    Apparently you can now use

    <%= fqdn %> 
    

    and get the DNS reverse name.

    If you need to lowercase it, use

    <%= fqdn.downcase %>
    
    0 讨论(0)
  • 2021-02-03 23:37

    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 Puppet docs).

    0 讨论(0)
  • 2021-02-03 23:40

    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).

    0 讨论(0)
提交回复
热议问题