【问题标题】:Jenkins on Openshift cannot clone repoOpenshift 上的 Jenkins 无法克隆 repo
【发布时间】:2016-09-06 01:11:02
【问题描述】:

我对 Jenkins 和 Openshift 都是新手,所以有点纠结。

我已经设置了 Jenkins 并将其指向我的 github 存储库,但它无法克隆它,因为我找不到任何地方来存储我的 git 凭据,并且当我 ssh 进入 jenkins 框时,我无法访问~ /.ssh 创建新密钥或在其中查找密钥。另一个问题可能是我的 git repo 是私有的。

我试过谷歌,但找不到任何东西。如何允许 Jenkins 访问我的私人 git 存储库?

编辑:好的,我在管理中找到,然后为用户名和电子邮件配置一个位置。然后我已经 ssh 进入,并使用 ssh-keygen 在 .openshift_ssh 中创建 ssh 密钥并将其添加到 github,首先作为普通 ssh 密钥,然后作为部署密钥,然后在 app-root/data 中相同/.ssh 但还是什么都没有

【问题讨论】:

  • 除了'赏金消息':我没有使用Github,只是将代码推送到OpenShift上的远程

标签: git jenkins github openshift


【解决方案1】:

您可以尝试关注 Ramzi Maâlej 的“Building a project hosted on Github using an Openshift Jenkins instance ”。

确保 Openshift 不会授予对 Jenkins 实例上多个文件夹的写入权限,例如:.ssh.m2。 (或者 ssh 无论如何都不会工作,因为对文件夹的权限“过于宽松”)
仅此一项可能是您问题的根源,但如果这还不够,请继续阅读。

然后:

rhc ssh buildserver
mkdir app-root/data/git-ssh
ssh-keygen -t rsa -b 4096 -C "youremail@yourdomain.com" -f $OPENSHIFT_DATA_DIR/git-ssh/id_rsa

将您的 $OPENSHIFT_DATA_DIR/git-ssh/id_rsa.pub 部署到 your GitHub account

创建一个脚本ssh-wrapper.sh,执行以下操作:

#!/bin/bash

ID_RSA="$OPENSHIFT_DATA_DIR/git-ssh/id_rsa"
KNOWN_HOSTS="$OPENSHIFT_DATA_DIR/git-ssh/known_hosts"

ssh -o UserKnownHostsFile=$KNOWN_HOSTS -i $ID_RSA $1 $2

别忘了让它可执行:chmod +x ssh-wrapper.sh

测试一下:

 ./ssh-wrapper.sh -T git@github.com
Hi Jenkins! You've successfully authenticated, but GitHub does not provide shell access.

最后,配置 Jenkins:

转到Manage Jenkins > Configure System > Global Properties 并创建一个名为GIT_SSH 的新环境变量,它引用您创建包装器的位置。

【讨论】:

  • 尽管这不是我所要求的 :-) 我现在决定在 BitBucket 上托管该项目,您的解决方案也适用于它。
【解决方案2】:

通过 SSH 连接到您的 Jenkins 应用并使用包含在 $OPENSHIFT_DATA_DIR/.ssh/jenkins_id_rsa.pub 中的公钥作为您的 Github/Gitlab/Bitbucket 部署密钥。

【讨论】:

    猜你喜欢
    • 2022-10-24
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多