2013-07-05 127 views
2

我想运行一个厨师食谱,将在Ubuntu客户端上安装SVN,然后签出一个SVN Subversion存储库到客户端机器。以下是代码:厨师食谱做一个SVN签出

#Installing svn 
package "subversion" do 
action :install 
end 

#Checkout SVN repo 
bash "Checking out Antitheft Repository" do 
cwd "#{Chef::Config[:file_cache_path]}" 
code <<-EOH 
svn co --username 'userxxx' --password 'passxxx' 'http://example.com/svn/trunk/yyy' 
EOH 
end 

命令

svn co --username 'userxxx' --password 'passxxx' 'http://example.com/svn/trunk/yyy' 

工作得很好,当在客户端上的终端上运行,但是当通过配方执行相同的命令被显示没有错误,也不是结帐完成。

这里有什么问题?

+0

您可以设置日志级别调试(通过client.rb文件),并粘贴在控制台输出? –

+0

我对厨师很新,你能告诉我这个文件在哪里。作为“locate client.rb”列出它的多个实例 –

+1

它应该在/ etc/chef/ –

回答

2

只需使用内置scm资源:

package "subversion" 

subversion "Antitheft" do 
    repository "http://example.com/svn/trunk/yyy" 
    destination "#{Chef::Config[:file_cache_path]}/antitheft" 
    svn_username "userxxx" 
    svn_password "passxxx" 
end 
+0

你可以通过使用加密的数据bad来保存subversion证书来进一步改进。 –

+1

甚至更​​好:chef-vault(https://github.com/Nordstrom/chef-vault) – StephenKing

+0

如果它在本地文件中,该怎么办? – pitchblack408