为从节点配置 Jenkins SSH 选项

Configuring Jenkins SSH options to slave nodes

我在 Ubuntu14.04 (Trusty Tahr) 上 运行ning Jenkins 通过 SSH 与从属节点。我们能够与节点通信以执行 运行 大多数命令,但是当命令需要 tty 输入时,我们会得到经典的

the input device is not a TTY

错误。在我们的例子中,它是一个 docker exec -it 命令。

所以我正在搜索有关 Jenkins 的大量信息,试图弄清楚如何配置与从节点的连接以启用 -t 选项来强制 tty 实例,我即将开始空的。我们如何做到这一点?

据我所知,您不能将 -t 提供给 Jenkins 启动的 ssh(这是有道理的,因为 Jenkins 本质上是分离的)。来自 the documentation:

When the SSH slaves plugin connects to a slave, it does not run an interactive shell. Instead it does the equivalent of your running "ssh slavehost command..." a few times...

但是,您可以通过以下方式在构建脚本中解决这个问题...

  • 回到你自己:ssh -t localhost command
  • 使用本地 PTY 生成器:script --return -c "command" /dev/null