sous-chefs / sous-chefs/sql_server

Unable to install more than one instance with same package version

Open
#118 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Ruby
Stars
64
Forks
117
Avg merge
5h 30m
Merged PRs (30d)
1

Description

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,

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the two sql_server_install declarations in a wrapper cookbook on Windows Server 2012 R2, then inspect the dynamically defined windows_package resource shown in the log. Compare how both instances are identified and verify that the completed run installs INSTANCE1 and INSTANCE2 rather than treating the second package as already installed.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
databases, devops
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.