diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c9e5668..bac92f59 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ This file is used to list changes made in each version of the iis cookbook. ## Unreleased +- Allow specifying install method for windows_feature resources ## 7.5.1 - *2021-03-25* diff --git a/README.md b/README.md index f58cb4e5..774a3fde 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ This cookbook is maintained by the Sous Chefs. The Sous Chefs are a community of - `node['iis']['pubroot']` - . default is `%SYSTEMDRIVE%\inetpub` - `node['iis']['docroot']` - IIS web site home directory. default is `%SYSTEMDRIVE%\inetpub\wwwroot` - `node['iis']['cache_dir']` - location of cached data. default is `%SYSTEMDRIVE%\inetpub\temp` -- `node['iis']['windows_feature_install_method']` - specify the install method that will be used by any windows_feature resources. If ommitted it will not be specified and will the windows_feature supply a default. Valid options are ':windows_feature_dism, :windows_feature_powershell, :windows_feature_servermanagercmd' +- `node['iis']['windows_feature_install_method']` - specify the install method that will be used by any windows_feature resources. If ommitted it will not be specified and will the windows_feature supply a default. Valid options are ':windows_feature_dism, :windows_feature_powershell, :windows_feature_servermanagercmd'. Default is :windows_feature_dism ## Resources diff --git a/attributes/default.rb b/attributes/default.rb index aa2e948d..dc9a7390 100644 --- a/attributes/default.rb +++ b/attributes/default.rb @@ -27,3 +27,5 @@ default['iis']['source'] = nil default['iis']['recycle']['log_events'] = 'Time, Requests, Schedule, Memory, IsapiUnhealthy, OnDemand, ConfigChange, PrivateMemory' + +default['iis']['windows_feature_install_method'] = :windows_feature_dism diff --git a/documentation/iis_install.md b/documentation/iis_install.md index 0d3b99d4..e47cc9bb 100644 --- a/documentation/iis_install.md +++ b/documentation/iis_install.md @@ -16,7 +16,7 @@ Simple resource to install the IIS feature | ----------------------- | -------- | -------- | ------------------------------------ | | `source` | String | No | Source to install the features from. | | `additional_components` | Array | No | Features of IIS to install | -| `install_method` | :windows_feature_dism, :windows_feature_powershell, :windows_feature_servermanagercmd | No | install_method to be used to any windows_features resources | +| `install_method` | :windows_feature_dism, :windows_feature_powershell, :windows_feature_servermanagercmd | No | install_method to be used to any windows_features resources. Default is :windows_feature_dism | ## Examples diff --git a/documentation/iis_manager.md b/documentation/iis_manager.md index 5ef967ce..61c1eab5 100644 --- a/documentation/iis_manager.md +++ b/documentation/iis_manager.md @@ -17,7 +17,7 @@ Configures the IIS Manager service | `enable_remote_management` | true, false | `true` | If remote access allowed | | `log_directory` | String | | Optional. The directory to write log files to | | `port` | Integer | `8172` | The port the service listens on. | -| `install_method` | :windows_feature_dism, :windows_feature_powershell, :windows_feature_servermanagercmd | | Optional: install_method to be used to any windows_features resources | +| `install_method` | :windows_feature_dism, :windows_feature_powershell, :windows_feature_servermanagercmd | `:windows_feature_dism` | Optional. install_method to be used to any windows_features resources | ## Examples diff --git a/kitchen.yml b/kitchen.yml index 20a4c671..0724c829 100644 --- a/kitchen.yml +++ b/kitchen.yml @@ -73,7 +73,7 @@ suites: - recipe[test::vdir] - name: default-windowsfeatures-powershell run_list: - -recipe[iis::default] + - recipe[iis::default] attributes: iis: windows_feature_install_method: :windows_feature_powershell diff --git a/recipes/mod_application_initialization.rb b/recipes/mod_application_initialization.rb index 371aff2e..02c81d34 100644 --- a/recipes/mod_application_initialization.rb +++ b/recipes/mod_application_initialization.rb @@ -20,7 +20,6 @@ include_recipe 'iis' -install_method = node['iis']['windows_feature_install_method'] windows_feature 'IIS-ApplicationInit' do - install_method install_method unless install_method.nil? + install_method node['iis']['windows_feature_install_method'] end diff --git a/recipes/mod_aspnet.rb b/recipes/mod_aspnet.rb index 3a1b5b81..fc48f252 100644 --- a/recipes/mod_aspnet.rb +++ b/recipes/mod_aspnet.rb @@ -21,11 +21,9 @@ include_recipe 'iis' include_recipe 'iis::mod_isapi' -install_method = node['iis']['windows_feature_install_method'] - windows_feature %w(IIS-NetFxExtensibility IIS-ASPNET) do action :install all !IISCookbook::Helper.older_than_windows2012? source node['iis']['source'] unless node['iis']['source'].nil? - install_method install_method unless install_method.nil? + install_method node['iis']['windows_feature_install_method'] end diff --git a/recipes/mod_aspnet45.rb b/recipes/mod_aspnet45.rb index ffc5f6f6..310e89f3 100644 --- a/recipes/mod_aspnet45.rb +++ b/recipes/mod_aspnet45.rb @@ -21,8 +21,6 @@ include_recipe 'iis' include_recipe 'iis::mod_isapi' -install_method = node['iis']['windows_feature_install_method'] - windows_feature %w(NetFx4Extended-ASPNET45 IIS-NetFxExtensibility45 IIS-ASPNET45) do - install_method install_method unless install_method.nil? + install_method node['iis']['windows_feature_install_method'] end diff --git a/recipes/mod_auth_basic.rb b/recipes/mod_auth_basic.rb index 4917206b..cd6abc12 100644 --- a/recipes/mod_auth_basic.rb +++ b/recipes/mod_auth_basic.rb @@ -20,10 +20,8 @@ include_recipe 'iis' -install_method = node['iis']['windows_feature_install_method'] - windows_feature 'IIS-BasicAuthentication' do - install_method install_method unless install_method.nil? + install_method node['iis']['windows_feature_install_method'] end iis_section 'unlocks basic authentication control in web.config' do diff --git a/recipes/mod_auth_digest.rb b/recipes/mod_auth_digest.rb index a1e89f1c..99f16749 100644 --- a/recipes/mod_auth_digest.rb +++ b/recipes/mod_auth_digest.rb @@ -20,10 +20,8 @@ include_recipe 'iis' -install_method = node['iis']['windows_feature_install_method'] - windows_feature 'IIS-DigestAuthentication' do - install_method install_method unless install_method.nil? + install_method node['iis']['windows_feature_install_method'] end iis_section 'unlocks digest authentication control in web.config' do diff --git a/recipes/mod_auth_windows.rb b/recipes/mod_auth_windows.rb index 51ea98e1..ce19e02e 100644 --- a/recipes/mod_auth_windows.rb +++ b/recipes/mod_auth_windows.rb @@ -20,10 +20,8 @@ include_recipe 'iis' -install_method = node['iis']['windows_feature_install_method'] - windows_feature 'IIS-WindowsAuthentication' do - install_method install_method unless install_method.nil? + install_method node['iis']['windows_feature_install_method'] end iis_section 'unlocks windows authentication control in web.config' do diff --git a/recipes/mod_cgi.rb b/recipes/mod_cgi.rb index d152a860..418f9cd2 100644 --- a/recipes/mod_cgi.rb +++ b/recipes/mod_cgi.rb @@ -20,8 +20,6 @@ include_recipe 'iis' -install_method = node['iis']['windows_feature_install_method'] - windows_feature 'IIS-CGI' do - install_method install_method unless install_method.nil? + install_method node['iis']['windows_feature_install_method'] end diff --git a/recipes/mod_compress_dynamic.rb b/recipes/mod_compress_dynamic.rb index 39723023..e7868690 100644 --- a/recipes/mod_compress_dynamic.rb +++ b/recipes/mod_compress_dynamic.rb @@ -20,8 +20,6 @@ include_recipe 'iis' -install_method = node['iis']['windows_feature_install_method'] - windows_feature 'IIS-HttpCompressionDynamic' do - install_method install_method unless install_method.nil? + install_method node['iis']['windows_feature_install_method'] end diff --git a/recipes/mod_compress_static.rb b/recipes/mod_compress_static.rb index 066ca45a..e76fc1c6 100644 --- a/recipes/mod_compress_static.rb +++ b/recipes/mod_compress_static.rb @@ -20,8 +20,6 @@ include_recipe 'iis' -install_method = node['iis']['windows_feature_install_method'] - windows_feature 'IIS-HttpCompressionStatic' do - install_method install_method unless install_method.nil? + install_method node['iis']['windows_feature_install_method'] end diff --git a/recipes/mod_ftp.rb b/recipes/mod_ftp.rb index 5acd45b3..6d8aa613 100644 --- a/recipes/mod_ftp.rb +++ b/recipes/mod_ftp.rb @@ -20,8 +20,6 @@ include_recipe 'iis' -install_method = node['iis']['windows_feature_install_method'] - windows_feature %w(IIS-FTPServer IIS-FTPSvc IIS-FTPExtensibility) do - install_method install_method unless install_method.nil? + install_method node['iis']['windows_feature_install_method'] end diff --git a/recipes/mod_iis6_metabase_compat.rb b/recipes/mod_iis6_metabase_compat.rb index 0c59c9d0..b2f1e310 100644 --- a/recipes/mod_iis6_metabase_compat.rb +++ b/recipes/mod_iis6_metabase_compat.rb @@ -20,8 +20,6 @@ include_recipe 'iis' -install_method = node['iis']['windows_feature_install_method'] - windows_feature %w(IIS-IIS6ManagementCompatibility IIS-Metabase) do - install_method install_method unless install_method.nil? + install_method node['iis']['windows_feature_install_method'] end diff --git a/recipes/mod_isapi.rb b/recipes/mod_isapi.rb index d7b4f263..d76ab58f 100644 --- a/recipes/mod_isapi.rb +++ b/recipes/mod_isapi.rb @@ -20,8 +20,6 @@ include_recipe 'iis' -install_method = node['iis']['windows_feature_install_method'] - windows_feature %w(IIS-ISAPIFilter IIS-ISAPIExtensions) do - install_method install_method unless install_method.nil? + install_method node['iis']['windows_feature_install_method'] end diff --git a/recipes/mod_logging.rb b/recipes/mod_logging.rb index 1e1f38b9..cafdb714 100644 --- a/recipes/mod_logging.rb +++ b/recipes/mod_logging.rb @@ -20,8 +20,6 @@ include_recipe 'iis' -install_method = node['iis']['windows_feature_install_method'] - windows_feature 'IIS-CustomLogging' do - install_method install_method unless install_method.nil? + install_method node['iis']['windows_feature_install_method'] end diff --git a/recipes/mod_management.rb b/recipes/mod_management.rb index 64f539fd..54ceb532 100644 --- a/recipes/mod_management.rb +++ b/recipes/mod_management.rb @@ -20,10 +20,8 @@ include_recipe 'iis' -install_method = node['iis']['windows_feature_install_method'] - windows_feature %w(IIS-ManagementConsole IIS-ManagementService) do action :install all !IISCookbook::Helper.older_than_windows2012? - install_method install_method unless install_method.nil? + install_method node['iis']['windows_feature_install_method'] end diff --git a/recipes/mod_security.rb b/recipes/mod_security.rb index 52f412fe..26196160 100644 --- a/recipes/mod_security.rb +++ b/recipes/mod_security.rb @@ -20,8 +20,6 @@ include_recipe 'iis' -install_method = node['iis']['windows_feature_install_method'] - windows_feature %w(IIS-URLAuthorization IIS-RequestFiltering IIS-IPSecurity) do - install_method install_method unless install_method.nil? + install_method node['iis']['windows_feature_install_method'] end diff --git a/recipes/mod_tracing.rb b/recipes/mod_tracing.rb index e8970bb5..0d850fa1 100644 --- a/recipes/mod_tracing.rb +++ b/recipes/mod_tracing.rb @@ -20,8 +20,6 @@ include_recipe 'iis' -install_method = node['iis']['windows_feature_install_method'] - windows_feature 'IIS-HttpTracing' do - install_method install_method unless install_method.nil? + install_method node['iis']['windows_feature_install_method'] end diff --git a/resources/install.rb b/resources/install.rb index fffba71d..3d15203e 100644 --- a/resources/install.rb +++ b/resources/install.rb @@ -21,7 +21,7 @@ property :source, String property :additional_components, Array, default: [] -property :install_method, [:windows_feature_dism, :windows_feature_powershell, :windows_feature_servermanagercmd], required: false +property :install_method, Symbol, required: false, equal_to: [:windows_feature_dism, :windows_feature_powershell, :windows_feature_servermanagercmd], default: :windows_feature_dism action :install do features_to_install = ['IIS-WebServerRole'].concat new_resource.additional_components @@ -31,6 +31,6 @@ action :install all !IISCookbook::Helper.older_than_windows2012? source new_resource.source unless new_resource.source.nil? - install_method new_resource.install_method unless new_resource.install_method.nil? + install_method new_resource.install_method end end diff --git a/resources/manager.rb b/resources/manager.rb index 522b7a3d..03e13f16 100644 --- a/resources/manager.rb +++ b/resources/manager.rb @@ -22,7 +22,7 @@ property :enable_remote_management, [true, false], default: true property :log_directory, String property :port, Integer, default: 8172 -property :install_method, [:windows_feature_dism, :windows_feature_powershell, :windows_feature_servermanagercmd], required: false +property :install_method, Symbol, required: false, equal_to: [:windows_feature_dism, :windows_feature_powershell, :windows_feature_servermanagercmd], default: :windows_feature_dism action :config do iis_install 'Web-Mgmt-Service' do