Openshift上的Jenkins无法克隆回购

als*_*air 6 git github jenkins openshift access

我是詹金斯和Openshift的新手,所以有点紧张.

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

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

编辑:确定我在管理中找到,然后配置用户名和电子邮件的地方.然后我有ssh'd,并使用ssh-keygen在.openshift_ssh中创建ssh密钥并将其添加到github,首先作为普通的ssh密钥,然后作为部署密钥,然后在app-root/data中相同/.ssh但仍然没有

Von*_*onC 5

您可以尝试并使用RamziMaâlej的 " 使用Openshift Jenkins实例构建一个在Github上托管的项目 ".

确保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
Run Code Online (Sandbox Code Playgroud)

部署$OPENSHIFT_DATA_DIR/git-ssh/id_rsa.pub您的GitHub帐户

创建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
Run Code Online (Sandbox Code Playgroud)

别忘了让它可执行: 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.
Run Code Online (Sandbox Code Playgroud)

最后,配置Jenkins:

转到Manage Jenkins > Configure System > Global Properties并创建一个名为的新环境变量GIT_SSH,该变量指的是您创建包装器的位置.