我想使用vcsrepo模块来检出一个SVN回购。继承人的代码页我用:傀儡SVN退房与vcsrepo不工作
package { $repo_package:
ensure => installed,
}
vcsrepo { "${doc_root}${fqdn}/src":
ensure => present,
provider => $repo_provider, #svn
source => $repository, #svn+ssh://remoterepo.com/path/to/trunk
user => $deploy_user,
owner => 'www-data',
group => 'www-data',
require => [ File["/home/${deploy_user}/.ssh/${deploy_private_key}"], Package["${repo_package}"] ], #making sure ssh key is there and that svn is installed
}
当我运行它,我得到这个错误:
Error: /Vcsrepo[/checkout/destination/path]: Could not evaluate:
Execution of '/usr/bin/svnlook uuid /checkout/destination/path'
returned 1: svnlook: E000002: Can't open file
'/checkout/destination/path/format': No such file or directory
我看着svnlook的这是在看回购,对我似乎错误在于这段代码试图在/ checkout/destination /路径中创建一个回购站,而不是仅仅试图将代码签出到那里。
总结我的问题:vcsrepo模块试图创建一个新的repo,还是应该只是将文件检出到指定的目标路径?
如果是后者,我会在哪里出错?
所以这个问题解决了两个问题:vcsrepo不支持svn的用户选项,所以我必须为ssh标识创建一个.ssh/config文件。其次,我之前已经声明了src文件夹,并且由于它已经存在,所以它将更多的处理为更新,失败。所以一旦删除了src文件夹,这是很好的。 – Tybul
你应该考虑提交你自己的问题的答案,并接受它作为答案,以便将来的SO用户可以受益。 – ptierno
并提出一个问题https://github.com/puppetlabs/puppetlabs-vcsrepo并提出拉请求,如果可以修复它。你可以从这个方面学到很多东西,我做了很多。 – BMW