sous-chefs / sous-chefs/sql_server
Unable to install more than one instance with same package version
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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