jenkins中使用shell脚本必须切换jenkins用户

时间:2024-11-01 21:06:32

https://blog.****.net/cdnight/article/details/81078191

安装这篇解决的

正确使用脚本的方式:

1、脚本必须使用jenknins用户,且所有命令必须使用sudo 否则报错

#!/bin/bash -ilex
sudo su -s /bin/bash jenkins
sudo scp -r /var/lib/jenkins/jobs/moven-test/workspace/target/ssoserver.war root@192.168.0.72:/usr/local/apache-tomcat-8.5.31/webapps/

2、要有使用sudo的所有权限,就是使用scp等命令不需要密码

添加如下内容到 visudo里面,然后强制保存 wq!

[root@node2 ~]#visudo

jenkins ALL=(ALL) NOPASSWD: ALL

3、jenkins用户必须可以免密登录

[jenkins@node2 root]$ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.72

[jenkins@node2 root]$ssh root@192.168.0.72
Last login: Tue Sep 25 15:51:41 2018 from 192.168.0.76

报错解决:

1、

sudo: no tty present and no askpass program specified

解决:

切换到root下

vi /etc/sudoers

为用户添加免密码

jenkins ALL=(ALL) NOPASSWD: ALL

2、

Host key verification failed

原因是没有用jenkins账号,脚本必须使用 sudo jenkins;且没有在jenkins用户下配置免密远程登录tomcat主机