假设我们有一个名为 mycomputer 的节点。它在run_list中有一个角色说myrole
。
现在, mycomputer 想要访问并读取其run_list中存在的角色文件。
有办法做到这一点吗?
我试过
knife role show myrole
因为它没有knife.rb和user-key.pem文件(.chef目录)所以它无法访问它。
如果有办法访问角色文件,请告诉我。 myrole
。
答案 0 :(得分:1)
当您写到节点“mycomputer”在其运行列表中具有给定角色时,所包含的信息是“自动”可用的。确切地说,属性(和其他运行列表条目)会自动与其他属性(来自环境,烹饪书等)合并。
因此,如果您的角色“myrole”定义了以下属性:
default_attributes 'apache2' => {
'listen_ports' => [ '80', '443' ]
}
这将在您的节点上的厨师运行期间通过
进行访问node['apache2']['listen_ports']
属性是厨师的基本概念,应该解决您的问题,在角色中定义一些信息,并在厨师运行的某个节点上阅读。
您可以在有关Attribute Precedence的文档中找到有关该概念的更多信息。没有真正的方法来阅读普通文件 - 如果你真的认为你需要这样做,你就会以错误的方式使用Chef。更好地陈述你的下一个问题,你的最终目标是什么。