我无法让Jenkins连接到我的git存储库。我怀疑我的问题出在钥匙的位置。我应该把钥匙放在哪里?我读过的是它应该放在Jenkins主目录中。这是Jenkins运行的目录吗? / home / tomcat或jenkins所说的是配置系统/ opt / bitnami / apps / jenkins / jenkins_home的主目录?是否需要在与键相同的目录中配置文件?
答案 0 :(得分:3)
Zach,你可能很久以前就解决了这个问题,但是为了防止其他人在寻找答案,这对我有用。这里没有什么特别的东西 - 如果你可以使用git作为用户tomcat并与你的git repo进行交互,那就是它的全部内容。除了提供项目仓库位置(没有密钥设置或凭证等)之外,不要再在jenkins构建工作中做任何事情。我们会让Jenkins外面的git和ssh完成所有工作。
我也使用bitnami jenkins AMI,事实上它在Tomcat中运行Jenkins作为战争应用程序 - 所以它作为Tomcat运行。
PATH="/opt/bitnami/git/bin:$PATH"
' git --version'应该现在作为tomcat用户工作,所以典型的git第一次设置
现在是ssh设置
Host bitbucket.org
IdentityFile ~/.ssh/id_rsa
最终检查
(可选)
我做了以下操作来帮助验证我的密钥设置和指纹,但我认为这不是必需的。
SSH_ENV=$HOME/.ssh/environment
# start the ssh-agent
function start_agent {
echo "Initializing new SSH agent..."
# spawn ssh-agent
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
echo succeeded
chmod 600 "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
/usr/bin/ssh-add
}
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi