2017-07-17 78 views
0

我试图从詹金斯与命令“帽生产部署”壳部署红宝石不适当的ioctl,但将引发一个错误:如果我从终端手动执行命令詹金斯壳会因设备

[email protected]'s password:(Backtrace restricted to imported tasks) cap aborted! SSHKit::Runner::ExecuteError: Exception while executing as [email protected]: Inappropriate ioctl for device Errno::ENOTTY: Inappropriate ioctl for device

它执行没有问题。 我设置了公钥,以便我可以执行该命令而不需要输入密码,并且还可以将部署密钥添加到GitLab中的项目中。

当我搜索答案时,我发现在大多数情况下,问题在于部署密钥,但我已将其添加到项目中,并且我可以从终端手动执行该命令,因此问题必须出现在Jenkins贝壳。 它似乎可能会使用终端的一些解释而不是真实的东西。

有没有一种方法可以解决这个问题,所以我可以从Jenkins shell执行命令?

+0

似乎没有设备绑定到连接,因为它是一个没有交互的纯命令。唯一的方法应该是公钥。 –

+0

@GeminiKeith但是我在Jenkins服务器上创建了公钥,并将其添加到生产服务器中。或者你的意思是其他方式? – Rudolfs

+0

您是否正确配置了您的ssh服务器?您可以在没有密码的情况下登录到您的服务器吗? –

回答

1

我解决了这个问题。我以詹金斯用户的身份登录了jenkins服务器,并与他一起创建了公钥并将其上传到生产服务器。之后,一切正常。我没有看到詹金斯有自己的用户,我不得不与该用户创建公钥。