我希望能够将open包安装到openshift,但这些包存放在我的私有存储库中,位于bitbucket上。
如何为Openshift创建SSH密钥,如何在安装软件包时让Openshift使用它? (将相应的公钥添加到bitbucket作为Deploy Key之后)
我尝试过的事情:
我使用ssh-keygen
在~/.openshift_ssh/
上创建了一个密钥。它已创建,但我不确定它是否被使用。
我也尝试在<jenkins_dir>/app-root/data/.ssh/jenkins_id_rsa.pub
上添加publick键,但结果总是一样的。在buildjob的jenkins控制台输出上:
Doing git clone from ssh://git@bitbucket.org/jpimentel/zed.git to /tmp/easy_install-FpEKam/zed.git
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
有什么可以做的吗?
答案 0 :(得分:1)
所以,此时OpenShift并没有提供一个简单的机制来实现这一点。我敦促开发人员查看https://gondor.io/support/dependencies/以找到解决问题的有效方法。
也就是说,我终于能够找到一个可接受的(至少对我而言)解决方案,该解决方案适用于可伸缩和不可伸缩的应用程序,具有以下过程:
在存储库中创建部署/目录
将您的私有部署密钥的副本放在所述目录
创建一个bash脚本deploy / wrapper.sh,它将使用提供的密钥运行ssh:
#!/bin/sh
ssh -o StrictHostKeyChecking=no -i $OPENSHIFT_REPO_DIR/deploy/id_deploy $@
注意传递的选项以禁用主机密钥检查;没有它,克隆就会失败。
在构建挂钩(.openshift/action_hooks/build
)中安装依赖项。在我的情况下,我添加了类似
echo "Cloning private repo..."
source $VIRTUAL_ENV/bin/activate
GIT_SSH=$OPENSHIFT_REPO_DIR/deploy/wrapper.sh pip install git+ssh://git@bitbucket.org/team/reponame.git#egg=reponame
提交所有内容并将其推送到openshift。
利润!
答案 1 :(得分:0)
如果要部署自定义python模块,那么推荐的方法是在应用程序源代码根目录中创建一个libs目录,并将它们推送到应用程序git存储库。 OpenShift会自动选择你的模块。