Chef节点的运行列表在哪里物理存储?

时间:2016-05-21 22:44:02

标签: chef

我输入knife node show test,结果显示

Node Name:   test
Environment: _default
FQDN:        ip-xxx-xxx-xxx-xxx.us-west-2.compute.internal
IP:          xxx.xxx.xxx.xxx
Run List:    recipe[hello_chef_server]
Roles:       
Recipes:     hello_chef_server, hello_chef_server::default
Platform:    ubuntu 14.04
Tags:      

所以我看到节点测试"有一个运行列表"。该协会在哪里实际存储?也就是说,它在哪里物理存储了节点" test"有运行列表"配方[hello_chef_server]"?它是在厨师服务器或厨师节点上吗?它是在一个文件中(如果是这样,在文件系统中的哪个位置)?它是否存储在厨师服务器的postgres DB中(如果是,有人知道它存储在哪个表中)?

1 个答案:

答案 0 :(得分:1)

这是我能想到的最好的:

  • 在厨师服务器上
  • 在它的postgres DB
  • " opscode_chef"数据库
  • "节点"表
  • " serialized_object"该表中的字段。

在我刚刚在Ubuntu AWS上创建的厨师服务器上,Chef的嵌入式postgres数据目录为/var/opt/opscode/postgresql/9.2/data。当我SELECT serialized_object FROM nodes时,我真正得到一个巨大的序列化对象,在反序列化之前是无法解读的。

我相信我所寻找的答案的原因是基于this description in Chef documentation

  

要了解模板的工作原理,您应该先了解一下   更多关于节点。回想一下节点代表一个服务器而且是   通常是虚拟机或物理服务器 - 基本上任何计算   您的基础架构中由Chef管理的资源。当你   引导您的节点, Chef服务器创建了所谓的节点   对象。此节点对象包含许多属性   描述节点,这些属性保存在Chef服务器上。

     

当配方运行时,节点对象将加载到程序中。的厨师   将节点的属性从Chef服务器加载到内存。对于我们   主页,我们要显示服务器的完全限定域名   (FQDN)。为此,我们访问节点对象的fqdn属性。