weiqi7777

jenkins _curses.error setupterm could not find terminal

0
阅读(163) 评论(0)

在使用jenkins的pipeline时,如果执行的命令中,有用到nurse库,就有如下错误信息,造成pipeline失败。

_curses.error: setupterm: could not find terminal

使用nurse库,会在终端界面,显示字符界面。如著名的menuconfig,就是用的nurse来实现的。但是jenkins执行pipeline时,是没有终端界面的,因此就不能显示字符界面。

所以为了解决上述问题,就需要jenkins在执行时,能够有一个终端界面,去执行命令。

这里,就用到了jenkins的ssh远程执行功能。

首先,安装jenkins的ssh插件。

在系统管理->系统设置中,设置ssh的remote hosts。

要注意 Pty 选项,一定要选上。开启了该选项,在ssh远程执行时,就会有一个终端去执行。

之后,新建一个job,用来执行需要使用nurse库的操作。

构建,选择 Execute shell script on remote host using ssh。

SSH site:选择刚刚添加的host,command输入要执行的命令。

修改pipeline的jenkinsfile,在需要使用nurse库的地方,改成执行这个job即可。