2017-05-01 6 views
0

シェフを初めて使いました。ネストされた属性を持つdata_bagsから値を取得するにはいくつか問題があります。私は(?BackupCatalogとその値など)のネストされた値を取得するためのforeachを書くことができますどのようにシェフネストされたデータバッグ

{ 
    "id": "bareos-fd", 
    "description": "Client resource of the Director itself.", 
    "address": "localhost", 
    "job": { 
    "backup-bareos-fd": { 
     "jobdefs": "DefaultJob" 
    }, 
    "BackupCatalog": { 
     "description": "Backup the catalog database (after the nightly save)", 
     "jobdefs": "DefaultJob", 
     "level": "Full", 
     "fileset": "Catalog", 
     "schedule": "WeeklyCycleAfterBackup", 
     "run_before": "/usr/lib/bareos/scripts/make_catalog_backup.pl MyCatalog", 
     "run_after": "/usr/lib/bareos/scripts/delete_catalog_backup", 
     "bootstrap": "|/usr/bin/bsmtp -h localhost -f \\\"\\(Bareos\\) \\\" -s \\\"Bootstrap for Job %j\\\" [email protected]", 
     "priority": "11" 
    }, 
    "RestoreFiles": { 
     "type": "Restore", 
     "fileset": "LinuxAll", 
     "storage": "File", 
     "pool": "Incremental", 
     "messages": "Standard", 
     "where": "/tmp/bareos-restores" 
    } 
    } 
} 

答えて

0

オブジェクトはハッシュのようなdata_bag_item作品から返されたジョブキーがある

bag = data_bag_item('something', 'bareos-fd') 
bag['job']['BackupCatalog'].each do |key, value| 
    # ... 
end 
+0

動的。私がしようとしているのは、名前と値をキーとしてファイルを作成することです。 このデータベースは、デフォルトの構成ファイルの例です.BackupCatalogはこの特定のクライアント専用です。私の問題は動的kvを参照することです。これは ' "仕事" のようなものでした:{ "another_job":{ "タイプ": "その他" }} ' 私は内のすべてのクライアントとbareos_clientsという名前data_bagを持っています。私はすべての内容を読むことができますが、私はどのように仕事のエントリをループするかについての手掛かりがありません。 –

+0

それだけで、Rubyコードが私の主張です。 Rubyの 'Hash'クラスと' Array'クラスを調べると、必要なメソッドを見つけることができます。 – coderanger

関連する問題