Jenkins Github SSH管道无法正常工作

时间:2015-11-04 10:43:26

标签: jenkins ssh jenkins-plugins

我已经构建了一个小的Helloworld节点应用程序。我们的想法是将代码推送到Github服务器,该服务器然后向Jenkins服务器发送通知(webhook),该服务器将构建代码。这部分很好用。然后我还希望每次Jenkins构建成功时都通过SSH将代码部署到服务器。我无法让这一步工作。

为了能够使用SSH部署代码,我编写了一个小的shell脚本(注意我安装了SSH代理插件并使用私钥正确配置了凭据):

#---Contents of /script/deploy-dev.sh---

ssh username@<IP_OF_MY_SERVER> <<EOF
cd ~/HelloWorld
sudo git pull
sudo npm install --production
sudo forever restartall
exit
EOF

我将以下代码放在“执行shell”框中(作为构建的一部分)

npm install
./script/test
./script/deploy-dev.sh

前两行效果很好,可以成功构建。添加最后一行会给出以下错误消息:

由于stdin不是终端,因此不会分配伪终端。 02:33:38 sudo:没有tty存在且没有指定askpass程序

有什么建议吗?

注意:我实际上是在关注this教程,但它建议选择“推送到Github时的构建”,需要Github插件,因为这是一个企业Jenkins我无法添加插件。只有SSH代理才能使用那个

1 个答案:

答案 0 :(得分:1)

看起来您还没有在目标服务器上配置无密码sudo。 sudo: no tty present and no askpass program specified是因为sudo需要密码,但无法向您询问密码。

请查看https://serverfault.com/questions/160581/how-to-setup-passwordless-sudo-on-linux,详细了解如何进行设置。