jenkins的流水线部分代码如下
sh'''
ssh root@192.168.2.234 << remotessh
cd /var/lib/jenkins/workspace/testxkc
/usr/local/maven/apache-maven-3.8.6/bin/mvn clean package -U
ls
remotessh
'''
在流水线中尽量使用:remotessh进行伪终端登录,要是使用其他ssh -t的话,也会出现以下报错的。
执行流水线出现报错:Pseudo-terminal will not be allocated because stdin is not a terminal
分析原因,可能是底层的jenkins用户无法正常ssh到root。因为本质上是ssh,所以jenkins大多时候报错需要我们进入到底层虚拟机去查看具体情况。
#root登录jenkins的虚拟机,切换用户为jenkins
su jenkins
#执行ssh
ssh root@192.168.2.234
#回显发现需要输入yes,输入后去jenkins执行流水线发现能正常执行了