私が取り組んでいるいくつかの新しい Chef レシピの InSpec テストを書いています。クックブックで使用される data_bags を利用して、データ バッグ アイテムを反復処理したいと考えています。InSpec テストでそれらにアクセスする方法がわかりません! レシピは、search、data_bag、および data_bag_item メソッドを使用しています。しかし、これらのメソッドは、私の InSpec テストでは利用できないようです。これらは Chef DSL 固有のメソッドだと思いますか? data_bags のソースはソース管理下にあるため、ローカル ファイル システムでそれらの json にアクセスできます。
InSpec 構文を使用して Chef_zero でこれらの data_bags にアクセスするにはどうすればよいですか?
オンラインでいくつかの例を見つけましたが、テストで使用できるように、data_bagsがchef_zeroによって実際にロードされる方法がわかりません。 /chef-repo/cookbooks/users/test/integration/default/serverspec/default_spec.rb および https://github.com/chef/chef/blob/master/kitchen-tests/test/integration/webapp/default_spec.rb
Vagrant テストキッチンで Windows サーバー 2012R2 ボックスを使用しています。これは、データ バッグの 1 つからのデータ バッグ アイテムの例です。
{
"User": "mcummins",
"FullName": "Martin Cummins",
"id": "mcummins"
}
この特定のデータ バッグには、管理者グループに追加された Windows Active Directory ユーザーが一覧表示されます。
.kitchen.yml に data_bag_path を設定しました (スイートとプロビジョナーに設定しました) が、どちらが正しいかを確認するまでには至っていません。
---
driver:
name: vagrant
customize:
natdnshostresolver1: "on"
provisioner:
name: chef_zero
data_bags_path: ../../../data_bags
# client_rb:
# audit_mode: :audit_only
verifier:
name: inspec
platforms:
- name: mwrock/Windows2012R2
transport:
name: winrm
suites:
- name: default
data_bags_path: ../../../data_bags
run_list:
- recipe[SPMWindowsBuilder::default]
verifier:
inspec_tests:
- test/integration
attributes: