Linux环境下jenkins插件Gerrit Trigger配置--"/var/lib/jenkins/.ssh/id_rsa" does not exist.
Gerrit可以实现在线代码Review的功能,与GitLab的merge request功能相当。目前想在Gerrit的基础上增加静态代码扫描的功能,以进一步提升代码质量。网上搜到的技术方案是:Gerrit + Jenkins + Gerrit Trigger。一句话概括就是:在Jenkins上创建一个代码检查的工程,通过pom文件方式配置号第三方的静态代码扫描工具;Jenkins通过Gerri
Gerrit可以实现在线代码Review的功能,与GitLab的merge request功能相当。目前想在Gerrit的基础上增加静态代码扫描的功能,以进一步提升代码质量。网上搜到的技术方案是:Gerrit + Jenkins + Gerrit Trigger。一句话概括就是:
1.在Jenkins上创建一个代码检查的工程,通过pom文件方式配置好第三方的静态代码扫描工具;
2.Jenkins通过Gerrit Trigger插件来侦听Gerrit一侧的代码变动,进而自动触发代码检查工程的构建和执行;
3.检查结果Jenkins以Reviewer的身份反馈给Gerrit。
在Jenkins上配置Gerrit Trigger的过程中,”Username” 和 “SSH Keyfile”两项填写时总不得解。从官网上也没得到启示。参考了Stack OverFlow的解决办法。
这里我给出终极答案:
1.”Username”,要填的是在gerrit应用中注册过的一个账号,比如我个人的gerrit账号是:changwenna001;
2.对于”SSH Keyfile”一项,
2.1 首先要确保目录真实存在;
默认安装完jenkins时,存在目录”/var/lib/jenkins”,但是不存在.ssh子目录,这需要手动创建(命令mkdir);
然后通过ssh-keygen命令生成私钥公钥;
2.2 将公钥内容粘贴到Gerrit的个人账号changwenna001里的SSH Public Keys里;
具体操作是通过vim命令打开id-rsa.pub,复制后,访问gerrit的web服务,settings->
SSH Public Keys->粘贴,Add。
2.3 在”SSH Keyfile”一项里填写“/var/lib/jenkins/.ssh/id_rsa”,如果提示文件不存在,则进行如下操作:
a.修改id_rsa俩文件的访问权限,确保公私钥对Linux环境里其他用户也是可读的,通过命令chmod来操作,例如:
[root@vm ~]# chmod 777 /var/lib/jenkins/.ssh
[root@vm ~]# cd /var/lib/jenkins/.ssh
[root@vm .ssh]# chmod 777 id_rsa*
我这里,给出了最高权限777。
再次尝试,如果jenkins还提示文件不存在,则第二招:
b.尝试修改id_rsa俩文件的用户归属。使用的命令是chown。
[root@vm ~]# cd /var/lib/jenkins/.ssh
[root@vm .ssh]# ll
total 8
-rwxrwxrwx 1 root root 1675 Jul 13 15:45 id_rsa
-rwxrwxrwx 1 root root 389 Jul 13 15:45 id_rsa.pub
[root@vm .ssh]# chown jenkins:jenkins id_rsa*
[root@vm .ssh]# ll
total 8
-rwxrwxrwx 1 jenkins jenkins 1675 Jul 13 15:45 id_rsa
-rwxrwxrwx 1 jenkins jenkins 389 Jul 13 15:45 id_rsa.pub
上述操作之后,就应该能解决”/var/lib/jenkins/.ssh/id_rsa” does not exist.的问题了。
附上ssh key的生成命令:
[root@vm .ssh]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /var/lib/jenkins/.ssh/id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /var/lib/jenkins/.ssh/id_rsa.
Your public key has been saved in /var/lib/jenkins/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:RHnJYOv3HfjDxC6YbH+UQHbpe6H4UFdDSJF+U1+ajJw root@vm
The key's randomart image is:
+---[RSA 2048]----+
| ++ ..o=o |
| o..+ ooo.+|
| o. +.* o*|
| o E===.|
| S . +.Boo|
| o * B+..|
| = =.*. |
| . . o.. |
| .. |
+----[SHA256]-----+
[root@vm .ssh]# cd /var/lib/jenkins/.ssh
[root@vm .ssh]# ll
total 8
-rwxrwxrwx 1 root root 1675 Jul 13 15:45 id_rsa
-rwxrwxrwx 1 root root 389 Jul 13 15:45 id_rsa.pub
更多推荐
所有评论(0)