厨师中不存在软件包SQLServer2012SP4KB4018073x64ENU.exe的源代码

问题描述

我正在尝试使用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再次运行,它将使安装成为幂等。