OpenShift 3:无法克隆私有BitBucket存储库

时间:2017-08-25 18:43:10

标签: openshift bitbucket

我尝试从OpenShift 2迁移到OpenShift 3。 我在OpenShift 3上创建了一个新的应用程序,但我正在努力克隆我的BitBucket私有git存储库。 (我对OpenShift 2没有任何问题。)

我尝试在构建/高级选项中设置机密(SSH或基本身份验证),但没有运气。

以下是错误消息:

Cloning "git@bitbucket.org:(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 个答案:

答案 0 :(得分:10)

从命令行工作的步骤如下:

1)创建一个新的SSH密钥对以与存储库一起使用。这不能有密码。

ssh-keygen -C "openshift-source-builder/repo@bitbucket" -f repo-at-bitbucket -N ''

这将生成文件:

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

是私人和公钥文件。

2)转到BitBucket上存储库的设置 - >访问密钥,选择添加密钥,然后在弹出窗口中输入密钥名称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的形式。在BitBucket Web界面中,它将显示为:

git@bitbucket.org:yourusername/private-repo.git

不要使用它。您需要在此处使用URI的SSH形式。

6)然后我们可以从私有Git存储库部署应用程序。

oc new-app httpd~git@bitbucket.org:yourusername/private-repo.git --name mysite

好的是在这里使用git@bitbucket.org:yourusername/private-repo.git,或者也可以使用URI的SSH形式。

您也可以从Web控制台执行此操作。重要的是,如果在Web控制台中单独创建密钥,以便在执行此操作时链接builder服务帐户。如果在部署时创建源密码,则它将自动链接builder服务帐户。

请注意,如果OpenShift实例在它与BitBucket之间有防火墙且SSH连接被阻止,则无法使用。在这种情况下,您需要使用HTTP基本身份验证通过SSH连接回退使用个人访问令牌(应用程序密码)。

这些细节现在可以通过以下开头的博客文章系列得到更好的解释: