私たちの組織では、開発者はクックブックを所有する所有権を与えられています。クックブックは当初、運用担当者によって作成されました。私は Java の専門家であり、シェフ/Ruby/Ops の専門家ではありません。クックブックが正しいデータバッグから読み取らない問題をデバッグするタスクが与えられました。
シェフノードで利用可能なすべてのデータバッグを一覧表示することはできますか? このようなことを試しましたが、時間がかかります。
# 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)
シェフクライアントがノードで実行されると、すべての 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
ありがとう。