Error using vault_secret in microsoft_azure cookbook


#1

Hello,

I’m trying to use the vault_secret helper in the microsoft_azure cookbook on a Windows 2012 R2 server as follows (this is essentially the example from the readme):

include_recipe 'microsoft_azure'

spn = {
  'tenant_id' => node['jjk_ts_test']['azure_tenant_id'],
  'client_id' => node['jjk_ts_test']['azure_client_id'],
  'secret' => node['jjk_ts_test']['azure_client_secret']
}

super_secret = vault_secret(node['jjk_ts_test']['azure_vault_name'], node['jjk_ts_test']['azure_secret_name'], spn)

file 'c:/temp/test.txt' do
  content "password = #{super_secret}"
end

However, the following error occurs in one of the cookbooks that the microsoft_azure cookbook relies on:

Starting Chef Client, version 12.14.89
resolving cookbooks for run list: [“jjk_ts_test”]
Synchronizing Cookbooks:

  • seven_zip (2.0.2)
  • jjk_ts_test (0.1.0)
  • windows (2.0.2)
  • microsoft_azure (0.3.0)
  • xml (1.3.0)
  • build-essential (6.0.6)
  • mingw (1.2.4)
  • compat_resource (12.14.7)
  • chef-sugar (3.4.0)
    Installing Cookbook Gems:

================================================================================
Recipe Compile Error in c:/chef/cache/cookbooks/jjk_ts_test/recipes/default.rb

NoMethodError

undefined method `each’ for nil:NilClass

Cookbook Trace:

c:/chef/cache/cookbooks/xml/recipes/default.rb:20:in from_file' c:/chef/cache/cookbooks/xml/recipes/ruby.rb:32:infrom_file’
c:/chef/cache/cookbooks/microsoft_azure/recipes/default.rb:18:in from_file' c:/chef/cache/cookbooks/jjk_ts_test/recipes/default.rb:11:infrom_file’

Relevant File Content:

c:/chef/cache/cookbooks/xml/recipes/default.rb:

13: # Unless required by applicable law or agreed to in writing, software
14: # distributed under the License is distributed on an “AS IS” BASIS,
15: # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16: # See the License for the specific language governing permissions and
17: # limitations under the License.
18: #
19:
20>> node[‘xml’][‘packages’].each do |pkg|
21: r = package pkg do
22: action(node[‘xml’][‘compiletime’] ? :nothing : :install)
23: end
24: r.run_action(:install) if node[‘xml’][‘compiletime’]
25: end
26:

Platform:

x64-mingw32

Any ideas what I’m missing?

Thanks,

Sean