【问题标题】:[chef]: View all available data bags on a node[chef]:查看节点上所有可用的数据包
【发布时间】:2020-03-23 14:48:16
【问题描述】:

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

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

# 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-infra chef-recipe databags


    【解决方案1】:

    正如您在data bags chef documentation 中看到的那样,您还指定您正在寻找代码

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

    所以你的问题

    在编写说明书时,我必须指定要加载的 data_bag 吗?

    答案是肯定的。参考你的sn-p中的第二行,它指定从一个名为id的数据包中加载一个名为item的数据包项,并使用secret2键将其删除。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-15
      相关资源
      最近更新 更多