dev-sec / chef-windows-hardening

This chef cookbook provides windows hardening configurations for the DevSec Windows baseline profile.
http://dev-sec.io
96 stars 43 forks source link

Getting undefined local variable error when running cookbook #33

Open slbailey opened 6 years ago

slbailey commented 6 years ago

I'm running the cookbook using chef-solo as part of a packer deployment and I'm getting an error that I'm sure is my stupidity but I can't figure out what's wrong:

vmware-iso: Compiling Cookbooks...
vmware-iso: Converging 32 resources
vmware-iso: Recipe: windows-hardening::enable_winrm_access
vmware-iso:   * powershell_script[Remote Management] action run
vmware-iso:     - execute "C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -NonInteractive -NoProfile -ExecutionPolicy Bypass -InputFormat None -File "C:/Users/ADMINI~1/AppData/Local/Temp/chef-script20180503-2024-1siyebd.ps1"
vmware-iso: Recipe: windows-hardening::password_policy
vmware-iso:   * password_policy[password_history] action set
vmware-iso:
vmware-iso:     ================================================================================
vmware-iso:     Error executing action `set` on resource 'password_policy[password_history]'
vmware-iso:     ================================================================================
vmware-iso:
vmware-iso:     NameError
vmware-iso:     ---------
vmware-iso:     undefined local variable or method `policy_name' for #<#<Class:0x028c9f08>:0x04e6b898>
vmware-iso:
vmware-iso:     Resource Declaration:
vmware-iso:     ---------------------
vmware-iso:     # In c:/windows/temp/packer-chef-solo/local-mode-cache/cache/cookbooks/windows-hardening/recipes/password_policy.rb
vmware-iso:
vmware-iso:      11: password_policy 'password_history' do
vmware-iso:      12:   policy_command 'uniquepw'
vmware-iso:      13:   value 24
vmware-iso:      14:   action :set
vmware-iso:      15: end
vmware-iso:      16:
vmware-iso:
vmware-iso:     Compiled Resource:
vmware-iso:     ------------------
vmware-iso:     # Declared in c:/windows/temp/packer-chef-solo/local-mode-cache/cache/cookbooks/windows-hardening/recipes/password_policy.rb:11:in `from_file'
vmware-iso:
vmware-iso:     password_policy("password_history") do
vmware-iso:       action [:set]
vmware-iso:       default_guard_interpreter :default
vmware-iso:       declared_type :password_policy
vmware-iso:       cookbook_name "windows-hardening"
vmware-iso:       recipe_name "password_policy"
vmware-iso:       policy_command "uniquepw"
vmware-iso:       value 24
vmware-iso:       policy_name "password_history"
vmware-iso:     end
vmware-iso:
vmware-iso:     System Info:
vmware-iso:     ------------
vmware-iso:     chef_version=14.0.202
vmware-iso:     platform=windows
vmware-iso:     platform_version=6.3.9600
vmware-iso:     ruby=ruby 2.5.1p57 (2018-03-29 revision 63029) [i386-mingw32]
vmware-iso:     program_name=c:/opscode/chef/bin/chef-solo
vmware-iso:     executable=c:/opscode/chef/bin/chef-solo
vmware-iso:
rabidpitbull commented 6 years ago

It would appear the resource in the cookbook is a victim of a breaking change in chef-client 14.x, which requires that properties are referenced with new_resource.propertyname.

It works fine under chef-client 13.x