首页 > 解决方案 > 使用 SSH 从 jenkins 运行 SSH 脚本命令

问题描述

为了在 linux 服务器上部署应用程序,ubuntu我有一堆我目前使用 PuTTY 运行的 SSH 命令。服务器有本地帐户serviceaccount1。在 PuTTY 中,我使用 serviceaccount1 连接到服务器并一一执行以下命令

cd /home/serviceaccount1/cr-ml
script /dev/null
screen -S data_and_status
cd cr-ml/notebooks
source activate crml
unset XDG_RUNTIME_DIR
jupyter kernelgateway --api='kernel_gateway.notebook_http' --seed_uri='data_and_status_api.ipynb' --port 8894 --ip 0.0.0.0
...
...
and so on

现在我想使用 Jenkins 自动执行此操作。我安装了SSHserviceaccount1插件,使用带有私钥的SSH 用户名配置了凭据

然后创建了一个新的jenkins项目并添加了一个构建步骤Execute shell scripts on remote host using ssh,然后添加了上述所有命令。
当我构建 jenkins 项目时,它卡在执行第二个命令script /dev/null 我看到以下控制台输出 在此处输入图像描述

标签: linuxjenkinssshputty

解决方案


对我来说,罪魁祸首似乎是screen -S data_and_status命令。一旦启动 a screen,我认为您将无法通过 SSH 连接执行后续命令。

或者,您可以尝试使用 Ansible 之类的工具对远程服务器运行一堆命令。


推荐阅读