[chef]:查看节点上所有可用的数据包

问题描述 投票:0回答:1

在我们的组织中,赋予开发者所有权以拥有食谱。这些菜谱最初是由操作人员编写的。我是一个Java专家,而不是厨师/红宝石/操作专家。我已经得到了一个任务,以调试食谱未从正确的数据袋读取的问题。

是否可以在Chef节点上列出所有可用的数据包?我尝试过类似的方法,但是需要很长时间。

# find / -type f  -not -name "*test*" -exec grep -IHnl data_bag {} \; | grep -v gems

我正在查看的代码是:

secret2 = Chef::EncryptedDataBagItem.load_secret(secret)
passwords = data_bag_item(id, item, secret2)

当Chef-client在节点上运行时,它是否将所有data_bag json文件组合为1个数据结构。在编写食谱时,我是否必须指定要加载哪个data_bag?

更新:

在我仅将搜索限制在厨师的目录后,该命令很快运行:

# find /run/chef /opt/chef /var/chef /etc/chef  -type f  -not -name "*test*" -exec grep -IHnl data_bag {} \; | grep -v gems

/var/chef/cache/cookbooks/users/resources/manage.rb
/var/chef/cache/cookbooks/users/CHANGELOG.md
/var/chef/cache/cookbooks/users/metadata.json
/var/chef/cache/cookbooks/users/README.md
/var/chef/cache/cookbooks/xyz_users/recipes/default.rb
/var/chef/cache/cookbooks/xyz_users/attributes/default.rb
/var/chef/cache/cookbooks/xyz_users/README.md
/var/chef/cache/cookbooks/xyz_users/.kitchen.yml
/var/chef/cache/cookbooks/xyz_base/.kitchen.yml
/var/chef/cache/cookbooks/splunk/recipes/mysqlmonitor.rb
/var/chef/cache/cookbooks/splunk/attributes/default.rb
/var/chef/cache/cookbooks/splunk/.kitchen.yml
/var/chef/cache/cookbooks/xyz_service/recipes/config.rb
/var/chef/cache/cookbooks/xyz_service/attributes/default.rb
/var/chef/cache/cookbooks/xyz_service/.kitchen.yml
/var/chef/cache/cookbooks/xyz_service/README.md
/var/chef/cache/cookbooks/xyz_service2/attributes/default.rb
/var/chef/cache/cookbooks/xyz_service2/recipes/certificates.rb
/var/chef/cache/cookbooks/xyz_service2/README.md
/var/chef/cache/cookbooks/xyz_service2/metadata.json
/var/chef/cache/cookbooks/xyz_nginx/.kitchen.yml

谢谢。

chef chef-recipe databags
1个回答
0
投票

正如您在data bags chef documentation中看到的,并且您还指定要查找代码

secret2 = Chef::EncryptedDataBagItem.load_secret(secret)
passwords = data_bag_item(id, item, secret2)

所以提出您的问题

编写菜谱时,我必须指定要加载哪个data_bag吗?

答案是肯定的。请参考代码段的第二行,该行指定从名为item的数据包中加载名为id的数据包项,然后使用secret2键将其删除。

现在是您的第二个问题:

当Chef-client在节点上运行时,它是否将所有data_bag json文件组合为1个数据结构。

据我所知,答案是否定的。厨师客户端按需从厨师服务器中获取特定的数据包(根据食谱中的内容)。

© www.soinside.com 2019 - 2024. All rights reserved.