2015-12-02 145 views
1

我想使用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,还是应该只是将文件检出到指定的目标路径?

如果是后者,我会在哪里出错?

+2

所以这个问题解决了两个问题:vcsrepo不支持svn的用户选项,所以我必须为ssh标识创建一个.ssh/config文件。其次,我之前已经声明了src文件夹,并且由于它已经存在,所以它将更多的处理为更新,失败。所以一旦删除了src文件夹,这是很好的。 – Tybul

+0

你应该考虑提交你自己的问题的答案,并接受它作为答案,以便将来的SO用户可以受益。 – ptierno

+0

并提出一个问题https://github.com/puppetlabs/puppetlabs-vcsrepo并提出拉请求,如果可以修复它。你可以从这个方面学到很多东西,我做了很多。 – BMW

回答

1

好吧,所以我确实解决了这个问题,这是由于已经创建了${doc_root}${fqdn}/src目录。当目录已经存在时,它将该命令视为更新(我相信,因此需要格式),所以一旦我删除了它的工作之前创建的文件夹。我还应该注意,因为我认为svn用户不工作,我为根创建了一个身份文件(.ssh/config),这对我很有用。

而作为@彼得苏特提到,有用户参数用户的支持,我还没有得到它的工作。

我打算在未来的时间里尝试更多的尝试。如果有其他人有任何补充,请随时免费。

还有一件事!实际上得到它的工作在一个新的傀儡设置(与你的.ssh/config文件),我不得不行补充:

StrictHostKeyChecking no 

.ssh/config,没有它结账就会失败,相信因事实上没有上述线,它会要求接受服务器指纹,然后木偶会认为失败并继续前进。

请让我知道如果我在这里的任何东西都不对,我不想传递错误的信息。

+0

你还没有接受这篇文章作为你的问题的答案!回答你自己的问题可能听起来很愚蠢,但它可以帮助未来的访问者访问你的问题的网站看到具体的答案。 – ptierno

+0

它说我必须等待24小时接受我自己的回答哈哈 – Tybul