2015-12-02 74 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