Chef节点用法

时间:2017-11-24 09:52:27

标签: chef chef-recipe

我正在学习厨师,发现很难理解节点的用法,比如它的用法。

我通过了Chef文档,但仍无法完全理解这些概念。

示例,下面是使用'node'的场景。任何人都可以用简单的术语解释不同场景下节点的用法。谢谢。

情景1:

E(g)

情景2:

V(g)$color <- (V(g) %in% vertices) + 1L
plot(g)

场景3: 通过使用节点属性:

currentUser = node['myusers'][node['myenv'] - 1] #arrays start at 0, doing -1 for 2 pointing to second user
user currentUser do
  gid node['mygroup']
  home "/home/#{currentUser}"
end
execute "sudoers for #{currentUser}" do
  command "echo '#{currentUser} ALL=(ALL) ALL' >> /etc/sudoers"
  not_if "grep -F '#{currentUser} ALL=(ALL) ALL' /etc/sudoers"
end

2 个答案:

答案 0 :(得分:1)

节点属性是一组嵌套的哈希值。基本上是一个全局变量,它从许多来源(角色,环境,烹饪书,节点本身,Ohai)收集信息,并通过单个API(即全局散列的API)提供这些信息。您如何使用这些数据完全取决于您以及您希望如何编写代码。有些烹饪书使用了大量的节点属性,有些只使用来自Ohai的数据。

答案 1 :(得分:1)

为了理解将Node属性视为字典数据类型,并且在字典中,每个键都有自己的值。同样的方式节点[&#39; platform_family&#39;]将具有debian或centos的值,具体取决于它从ohai获得的值。 ohai通常为节点属性赋值。还有其他方法,例如node.run_state,它可以用来在厨师运行期间动态地为节点[key]赋值。例如node.run_state [weather] = sunny会将节点[天气]值指定为晴天。