最近想在本地搞一套jenkins+gitlab+maven自动部署demo,但是在一切准备就绪后,发现jenkins无法拉取gitlab的代码、无限超时。
觉得很奇怪,既然可以拉取github的代码,就说明jenkins部署是没问题的,并且git config也没问题,但是为什么不能拉取gitlab的代码呢。
试过添加ssh key、试过clone with ssh,这两种方法都不行。
jenkins是通过dmg安装包自动安装的。
查阅资料后发现,可能是由于启动jenkins的用户权限不够。
mac上的启动停止jenkins都是通过org.jenkins-ci.plist文件进行的,在目录/Library/LaunchDaemons下。
直接vim该文件,可以查看到GroupName的默认值是damon,UserName的默认值是Jenkins。
进入本机的 系统偏好设置-用户与群组,查看当前用户的高级选项,可以看到群组名为 staff,账户名称为XXX。
将jenkins启动文件org.jenkins-ci.plist中的GroupName和UserName修改为当前本就登录用户的群组名和账户名。
修改完成后,再给用户、群组、文件添加权限。
sudo chown geiniyituoxiang /Library/LaunchDaemons/org.jenkins-ci.plist 。 添加用户权限
sudo chgrp staff /Library/LaunchDaemons/org.jenkins-ci.plist 。 添加群组权限
sudo chmod 600 /Library/LaunchDaemons/org.jenkins-ci.plist 。 更改文件权限。
最后再restart jenkins即可。