【问题标题】:Node Name in Chef Template?Chef模板中的节点名称?
【发布时间】:2011-10-16 00:40:35
【问题描述】:

我一直在试图弄清楚如何将节点的名称 (knife bootstrap -N) 放入模板中。我尝试了十几种不同的想法,但还没有找到任何可行的方法。有谁知道如何从 Chef 食谱中访问它?

还有——有没有办法列出厨师食谱可用的所有变量?

【问题讨论】:

    标签: chef-infra chef-recipe


    【解决方案1】:

    Attributes wiki 页面上显示了一种更简洁更简洁的方式:

    node.name
    

    【讨论】:

    • 这给出了 FQDN。有什么办法可以得到简称?
    • 我不知道一个非常熟练的方法,但是 node.name.split('.')[0] 工作正常
    • 在获取厨师属性时,您应该始终使用 node[:attribute] 语法。 ohai 派生属性位于 node[:hostname]
    • @jarrad 请注意,您的链接现在已损坏,因为厨师文档已移动。您能否将其更新为正确的(我认为docs.chef.io/ohai.html)?
    • @Blaskovicz 我已经更新了答案。感谢您的提醒!
    【解决方案2】:

    您可以在您的食谱中使用Chef::Config[:node_name]。我在 Opscode 的厨师客户食谱中找到了这个。

    【讨论】:

    • 我同意@anaudmeuret,这个解决方案在 Shef 和一个食谱中对我有用,而接受的答案却没有。
    • 原来的问题是如何在模板中访问节点名。这个答案不适用于那个。实际上, 是 .erb 文件的完整语法,也是如何在模板中访问节点名称的方法。
    • 模板语法和配方语法似乎不同。我有一个使用 语法的模板并且只是在配方中使用了上面的 Chef::Config[:node_name] 语法
    【解决方案3】:

    查看所有节点特定属性类型命令

    knife node edit <name> -a
    

    可通过“节点”访问的一级键。前缀。

    {
      "name": "n1",
      ...
      "hostname": "chef-n1",
      "fqdn": "chef-n1.dan.lan",
      "domain": "dan.lan",
      "ipaddress": "192.168.4.4",
      "macaddress": "52:54:00:72:E7:C5",
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-27
      • 2016-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多