我是詹金斯和Openshift的新手,所以有点紧张。
我已经设置了Jenkins,并将其指向我的github仓库,但它无法克隆它因为我找不到任何地方存储我的git凭据,当我ssh进入jenkins框我无法访问〜 /.ssh创建新密钥或找到那里的密钥。另一个问题也可能是我的git repo是私有的。
我试过谷歌,但我找不到任何东西。我如何允许Jenkins访问我的私人git仓库?
编辑:确定我在管理中找到了,然后为用户名和电子邮件配置了一个位置。然后我有ssh'd,并使用ssh-keygen在.openshift_ssh中创建ssh密钥并将其添加到github,首先作为普通的ssh密钥,然后作为部署密钥,然后在app-root / data中相同/.ssh但仍然没有
答案 0 :(得分:5)
您可以尝试并遵循RamziMaâ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
的新环境变量,该变量引用您创建包装器的位置。
答案 1 :(得分:0)
SSH进入Jenkins应用程序并使用$OPENSHIFT_DATA_DIR/.ssh/jenkins_id_rsa.pub
中包含的公钥作为Github / Gitlab / Bitbucket部署密钥。