为从节点配置 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
我在 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