首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[chef]:查看节点上所有可用的数据包

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

Stack Overflow用户
提问于 2020-03-22 16:10:50
回答 1查看 117关注 0票数 1

在我们的组织中,开发人员被赋予拥有食谱的所有权。食谱最初是由行动组的人写的。我是个java专家,而不是厨师/红宝石/运维专家。我有一个任务是调试一个问题,在这个问题上,食谱没有从正确的数据包中读取。

是否可以列出chef节点上的所有可用数据包?我试过这样的东西,但花了很长时间。

代码语言:javascript
复制
# find / -type f  -not -name "*test*" -exec grep -IHnl data_bag {} \; | grep -v gems

我正在查看的代码是:

代码语言:javascript
复制
secret2 = Chef::EncryptedDataBagItem.load_secret(secret)
passwords = data_bag_item(id, item, secret2)

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

更新:

在我将搜索范围限制在chef的目录之后,这个命令运行得非常快:

代码语言:javascript
复制
# 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

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-03-23 14:48:16

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

代码语言:javascript
复制
secret2 = Chef::EncryptedDataBagItem.load_secret(secret)
passwords = data_bag_item(id, item, secret2)

所以对于你的问题

在编写食谱时,我是否必须指定要加载的data_bag?

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

现在来回答你的第二个问题:

当chef-client在节点上运行时,是否将所有data_bag

文件合并为一个数据结构。

据我所知,答案是否定的。chef-client按需从chef-server获取特定的数据包(根据食谱中所写的内容)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60797160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档