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执行流水线发现能正常执行了
本文讲述了在Jenkins流水线中遇到的SSH问题,特别提到使用remotessh而非ssh-t时的Pseudo-terminal限制。解决方法是确保jenkins用户可以正确SSH到root,通过root登录虚拟机并解决需要输入yes的提示以顺利执行流水线。
8043

被折叠的 条评论
为什么被折叠?



