2017-08-25 116 views
6

我想從OpenShift 2遷移到OpenShift 3. 我在OpenShift 3上創建了一個新應用程序,但我努力將我的BitBucket私人git存儲庫克隆到它。 (我對OpenShift 2沒有任何問題)。OpenShift 3:無法克隆私人BitBucket存儲庫

我已經嘗試在Build/Advanced Options中設置機密(SSH或基本身份驗證),但沒有運氣。

以下是錯誤消息:

Cloning "[email protected]:(myusername)/(myrepository).git" ... error: 
build error: Host key verification failed. fatal: Could not read from 
remote repository. Please make sure you have the correct access rights 
and the repository exists. 
+1

你是說,你使用的是私人到位桶倉庫?如果是的話,你採取了哪些步驟在BitBucket中註冊存儲庫SSH密鑰,創建sshauth祕密,允許builder服務帳戶訪問該祕密,然後配置你的構建以使用它庫? –

+0

這是一個私人存儲庫是的。 我已經設置了源密鑰中的BitBucket SSH密鑰 – zov

+1

正如已經問到的,你能列出你所做的步驟嗎?你是否使用''ssh-keygen''創建一個新的存儲庫SSH密鑰?您是否將密鑰的公共部分註冊爲BitBucket上私人存儲庫上的訪問密鑰?你有沒有在OpenShift中使用'oc secrets new-sshauth'創建一個祕密?你是否允許'builder''通過運行'oc secrets link'來使用這個祕密?那麼你是如何編輯構建配置以使用源密碼的?或者你是否試圖通過Web控制檯設置它?更多的細節將有助於理解你可能錯過了什麼。 –

回答

9

的步驟,如果在命令行工作如下:

1),用於與儲存庫使用創建一個新的SSH密鑰對。這不能有密碼。

ssh-keygen -C "openshift-source-builder/[email protected]" -f repo-at-bitbucket -N '' 

這將生成文件:

repo-at-bitbucket 
repo-at-bitbucket.pub 

是私人和公共密鑰文件。

2)進入設置 - >訪問鍵上到位桶庫,選擇添加關鍵並在彈出的窗口中輸入鍵名openshift-source-builder和公共密鑰文件的內容粘貼。在這種情況下,repo-at-bitbucket.pub。通過點擊確認創建在彈出窗口中添加鍵

3)運行創建關鍵在OpenShift一個祕密:

oc secrets new-sshauth repo-at-bitbucket --ssh-privatekey=repo-at-bitbucket 

4)啓用從builder服務帳戶訪問的祕密。

oc secrets link builder repo-at-bitbucket 

5)爲了使OpenShift知道這個祕密是這個特定的私有Git倉庫,並自動使用它,註釋與SSH URI存儲庫的祕密。

oc annotate secret/repo-at-bitbucket \ 
    'build.openshift.io/source-secret-match-uri-1=ssh://bitbucket.org/yourusername/private-repo.git' 

這裏非常重要的是URI的形式。在到位桶Web界面將顯示它:

[email protected]:yourusername/private-repo.git 

不要使用。這裏需要使用URI的SSH形式。

6)然後,我們可以從私人Git存儲庫部署應用程序。

oc new-app [email protected]:yourusername/private-repo.git --name mysite 

好使用[email protected]:yourusername/private-repo.git這裏,或者也可以使用URI的SSH形式。

您也可以從Web控制檯執行所有操作。重要的是,如果在Web控制檯中創建祕密作爲一個單獨的步驟來鏈接builder服務帳戶。如果在部署時創建源密碼,則會自動鏈接builder服務帳戶。

請注意,如果OpenShift實例與BitBucket之間具有防火牆,並且SSH連接被阻止,則這將不起作用。在這種情況下,您需要退回到使用HTTP基本身份驗證通過SSH連接使用個人訪問令牌(應用程序密碼)。


這些細節現在好多了通過博客文章系列開始解釋: