sous-chefs / sql_server

Development repository for the sql_server cookbook
https://supermarket.chef.io/cookbooks/sql_server
Apache License 2.0
63 stars 124 forks source link

Unable to install more than one instance with same package version #118

Open lbn-chef-team opened 6 years ago

lbn-chef-team commented 6 years ago

Cookbook version

5.4.0 (with the fix https://github.com/chef-cookbooks/sql_server/pull/114)

Chef-client version

13.0.118

Platform Details

Windows Server 2012 R2

Scenario:

I'm trying to use custom ressource to install two or more instance on the same server.

Steps to Reproduce:

Create a wrapper cookbook with the following content in the recipe:

sql_server_install `Install SQL Server 2016 =>  instance1` do
  source_url 'c:\chef\cache\package\SQLServer2016SP1-FullSlipstream-x64-ENU.exe'
  version '2016'
  package_checksum '0a9a202671068ddd160f9d535f0ab8523048805dba852c4b9f79193227a6cc64'
  accept_eula true
  instance_name 'INSTANCE1'
  feature %w(SQLENGINE, CONN)
end

sql_server_install `Install SQL Server 2016 =>  instance2` do
  source_url 'c:\chef\cache\package\SQLServer2016SP1-FullSlipstream-x64-ENU.exe'
  version '2016'
  package_checksum '0a9a202671068ddd160f9d535f0ab8523048805dba852c4b9f79193227a6cc64'
  accept_eula true
  instance_name 'INSTANCE2'
  feature %w(SQLENGINE, CONN)
end

Expected Result:

I expect that the two instances are installed at the end of the chef-client

Actual Result:

Only the first instance is installed. The second instance show this message:

[2018-01-10T14:28:10+01:00] DEBUG: windows_package[Microsoft SQL Server 2016 (64-bit)] checking package version
[2018-01-10T14:28:10+01:00] INFO: Processing remote_file[c:\chef\cache\package\SQLServer2016SP1-FullSlipstream-x64-ENU.exe] action create (dynamically defined)
[2018-01-10T14:28:10+01:00] DEBUG: remote_file[c:\chef\cache\package\SQLServer2016SP1-FullSlipstream-x64-ENU.exe] checksumming file at c:\chef\cache\package\SQLServer2016SP1-FullSlipstream-x64-ENU.exe.
[2018-01-10T14:28:10+01:00] DEBUG: remote_file[c:\chef\cache\package\SQLServer2016SP1-FullSlipstream-x64-ENU.exe] checking for changes
[2018-01-10T14:28:10+01:00] DEBUG: remote_file[c:\chef\cache\package\SQLServer2016SP1-FullSlipstream-x64-ENU.exe] checksum matches target checksum (0a9a202671068ddd160f9d535f0ab8523048805dba852c4b9f79193227a6cc64) - not updating
[2018-01-10T14:28:10+01:00] DEBUG: windows_package[Microsoft SQL Server 2016 (64-bit)] fetched source file to c:\chef\cache\package\SQLServer2016SP1-FullSlipstream-x64-ENU.exe
[2018-01-10T14:28:10+01:00] DEBUG: windows_package[Microsoft SQL Server 2016 (64-bit)] checking package version
[2018-01-10T14:28:10+01:00] DEBUG: windows_package[Microsoft SQL Server 2016 (64-bit)] Microsoft SQL Server 2016 (64-bit) [nil] already installed
[2018-01-10T14:28:10+01:00] DEBUG: windows_package[Microsoft SQL Server 2016 (64-bit)] is already installed - nothing to do

This problem seems to be due to package ressource that is idempotent with the package name /display name from Windows Registry. I have no idea to bypass this :(

Best Regards,

F-Fab commented 6 years ago

Hi,

Do you know if there is a road map for this feature or not ?

Regards

TheLunaticScripter commented 6 years ago

@F-Fab There is not currently a road map for this feature. My best recommendation is to look at this blog post https://www.habitat.sh/blog/2018/01/a-plan-for-sql-server/ as it may be a better option to accomplish this. To get multiple instances to work would require another re-write of the custom resources.

EasyAsABC123 commented 5 years ago

We also need support for this.