我无法让厨师下载我需要在SVN服务器的配方中使用的文件。
subversion "download installer" do
repository "http://svnrepourl/path/to/installer.msi"
revision "HEAD"
destination "C:\\chef-repo\\cookbooks\\common\\files"
action :export
svn_username "username"
svn_password "password"
end
以下是chef-client run的输出:
Compiling Cookbooks...
Converging 1 resources
Recipe: common::svntest
* subversion[download installer] action export[2014-01-09T14:41:42-05:00] INFO
: Processing subversion[download installer] action export (common::svntest line
12)
(up to date)
[2014-01-09T14:41:42-05:00] INFO: Chef Run complete in 1.482104 seconds
[2014-01-09T14:41:42-05:00] INFO: Running report handlers
[2014-01-09T14:41:42-05:00] INFO: Report handlers complete
Chef Client finished, 0 resources updated
第12行是“颠覆”下载安装程序“do”。没有超级有用的输出 - 我不知道在这里引起了什么。它不会在我的系统上的任何位置下载文件 - 目标目录为空。
运行此命令可以正常工作:
svn export -r HEAD http://svnrepourl/path/to/installer.msi --username username --password password C:\chef-repo\cookbooks\common\files
它成功从服务器下载文件并将其放在目标中。现在,我可以在执行块中编写此命令,但我想以Chef方式执行此操作。如何在Windows上从SVN仓库下载特定文件?
答案 0 :(得分:0)
看起来这是Chef中的一个错误,记录为here。
为了解决这个问题,我跑了chef-client -l debug > log.txt
,这引导我走上这些路线:
[2014-01-10T09:35:00-05:00] INFO: Processing subversion[download installer] action export (common::svntest line 12)
[2014-01-10T09:35:00-05:00] DEBUG: subversion[download installer] export destination C:\chef-repo\cookbooks\common\files already exists or is a non-empty directory - nothing to do
看起来Chef subversion资源需要一个空目录作为目标(我在OP中指定的目标包含一个文件夹)。请注意,使用svn shell命令的情况不 - 我能够使用它成功导出到非空目录。
此时,我将简单地使用执行资源来获取我需要的文件,并希望Opscode能够解决这个长期存在的错误。
特别感谢Chef的IRC社区。 p>