节点如何读取角色文件?

时间:2017-10-10 23:53:35

标签: ruby chef

假设我们有一个名为 mycomputer 的节点。它在run_list中有一个角色说myrole

现在, mycomputer 想要访问并读取其run_list中存在的角色文件。

有办法做到这一点吗?

我试过

knife role show myrole

因为它没有knife.rb和user-key.pem文件(.chef目录)所以它无法访问它。

如果有办法访问角色文件,请告诉我。 myrole

1 个答案:

答案 0 :(得分:1)

当您写到节点“mycomputer”在其运行列表中具有给定角色时,所包含的信息是“自动”可用的。确切地说,属性(和其他运行列表条目)会自动与其他属性(来自环境,烹饪书等)合并。

因此,如果您的角色“myrole”定义了以下属性:

default_attributes 'apache2' => {
  'listen_ports' => [ '80', '443' ]
}

这将在您的节点上的厨师运行期间通过

进行访问
node['apache2']['listen_ports']

属性是厨师的基本概念,应该解决您的问题,在角色中定义一些信息,并在厨师运行的某个节点上阅读。

您可以在有关Attribute Precedence的文档中找到有关该概念的更多信息。没有真正的方法来阅读普通文件 - 如果你真的认为你需要这样做,你就会以错误的方式使用Chef。更好地陈述你的下一个问题,你的最终目标是什么。