问题描述
我正在尝试使用Chef将sql Server 2012安装到虚拟框中。以下是我使用的代码,但我获取源代码不存在错误。下面是我拥有的server.rb代码。
package package_name do
source 'C:\Users\user\AppData\Local\Temp\sqlServer2012SP4KB4018073x64ENU.exe'# package_url
checksum package_checksum
timeout node['sql_server']['server']['installer_timeout']
installer_type :custom
options "/q /ConfigurationFile=#{config_file_path} #{passwords_options}"
action :install
notifies :request_reboot,'reboot[sql server install]'
returns [0,42,127,3010]
* template[C:\Users\vagrant\AppData\Local\Temp\kitchen\cache\ConfigurationFile.ini] action create (up to date)
windows_package[sqlServer2012SP4KB4018073x64ENU.exe] action install
* Source for package sqlServer2012SP4KB4018073x64ENU.exe does not exist
解决方法
除了使文件可以访问windows_package
资源之外,还可以进行其他更改。
windows_package resource的名称应与“控制面板”中显示的应用程序名称匹配。当您使用SQLServer2012SP4KB4018073x64ENU.exe
作为名称时,Chef将在每次运行时开始安装软件包(这可能不是我们想要的)。
例如如果要安装WinSCP之类的简单软件包,该软件包在“控制面板”中显示为WinSCP <version>
,则应以此命名我的资源。
windows_package 'WinSCP 5.17.7' do
source 'C:\Users\Administrator\Downloads\WinSCP-5.17.7-Setup.exe'
installer_type :custom
options '/silent'
end
现在,如果Chef再次运行,它将使安装成为幂等。