Git服务器搭建与Jenkins交互下代码

时间:2023-01-12 18:54:18

今天在测试jenkins 拉代码的时候,又出现一些权限和交互的问题,今天再总结一下​:

一,Git服务器的配置根据这里的指导直接操作

https://www.runoob.com/git/git-server.html

特别要注意里面git账号和文件的权限,ssh文件的权限(全部按照这里说的操作)

二,Jenkins服务器配置

Git服务器搭建与Jenkins交互下代码


记住在使用Jenkins网页拉取代码和在Jenkins服务器上拉取代码时,使用的SSH秘钥位置是完全不同的

  1. 通过Jenkins网页访问git服务器的时候其实是利用jenkins账号来访问的,他调用的ssh key相关信息存储在/var/lib/jenkins/.ssh中,这个文件夹的属主和属组必须是jenkins,而且权限不能太大,也不能太小,都有可能导致无法访问
  2. 直接登录jenkins 服务器访问git服务器的时候,用的是当前登录的用户的用户目录下的.ssh文件,文件的属主和组都必须是当前用户,而且权限也不能太大,不然也无法访问



Git服务器搭建与Jenkins交互下代码


这是jenkins的ssh账号信息,把这里的pub key

Git服务器搭建与Jenkins交互下代码


Copy到git服务器的authorized.keys 文件中


Git服务器搭建与Jenkins交互下代码


如果权限不对的话,这里一直报错,检查的方法即使在jenkins服务器上切换到jenkins 账号


Git服务器搭建与Jenkins交互下代码


根据jenkins服务器上登录界面的提示

git ls-remote -h -- git@10.180.116.165:/home/gitrepo/runoob.git HEAD只要这个命令在jenkins用户下操作没有什么问题,基本上在jenkins网页登录git服务器就没有问题,可以根据这个命令中报错提示,去找原因(注意,这条命令执行不需要任何其他操作才能成功

Git服务器搭建与Jenkins交互下代码


Git服务器搭建与Jenkins交互下代码


这是另外一台Git服务器,其他操作都一样,唯一的差别就是操作

git ls-remote -h -- git@10.180.116.175:/home/gitrepo/runoob.git HEAD这条命令的时候需要输入密码(这里貌似是认证的ssh key没有生效,所有需要输入密码验证,检查git的auth 下的key和jenkins服务器的key知否一致,如果一致,理论上不需要其他的验证,ssh key就应该已经交互了)​

https://blog.csdn.net/bigwood99/article/details/107073603这个文件对jenkins中权限的设置,写的比较清楚