linux - 使用 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
我看到以下控制台输出
解决方案
对我来说,罪魁祸首似乎是screen -S data_and_status
命令。一旦启动 a screen
,我认为您将无法通过 SSH 连接执行后续命令。
或者,您可以尝试使用 Ansible 之类的工具对远程服务器运行一堆命令。
推荐阅读
- unity3d - 使用图集压缩 Unity sprites
- android - android将来电切换到其他呼叫应用程序
- python-3.x - Frozenset to list 产生错误的结果
- python - Python Web 应用程序出现故障的列表
- validation - Flask WTform 验证多个字段
- android - ConstraintLayout 中的 ImageView 缩放问题
- ruby-on-rails - Rails 5 flash 消息不适用于 redirect_to
- python - 从python中的文本中提取信息
- android - 将字符串转换为 JSONArray 结果为错误
- mysql - Mysql 表连接耗时太长,而简单的选择结果很快