【发布时间】:2020-11-22 12:46:59
【问题描述】:
我正在尝试配置我的 Jenkinsfile,以便我的主 jenkins ssh 进入远程 ec2 服务器并在远程服务器上运行命令。到目前为止,我已将我的主 jenkins 服务器公钥添加到我的远程 ec2 服务器的 authorized_keys 列表中,并且我能够 ssh 进入我的远程服务器。我的 Jenkinsfile 的相关部分:
echo "===> about to SSH into the dev environment.."
sh '''#!/bin/bash
echo "===> in bash script now"
ssh -tt ubuntu@xxx.xx.xx.xxx
ls
pwd
git pull origin master
rm -rf node_modules
npm install
node app.js
'''
我知道我能够通过 ssh 连接到远程 ec2 实例,因为 ls 打印了远程服务器上文件的内容。
但是,pwd 打印出 /var/lib/jenkins/workspace/jenkinsfile_master 这意味着我仍在我的 jenkins 主服务器上。此外,我的 git 和 npm 命令无法运行,因为我的 Jenkins 主服务器上没有安装 git 和 npm。
因此,我的第一个问题是我真的 ssh 到我的远程服务器吗?如果我这样做了,为什么pwd 在我的 Jenkins 服务器而不是我的远程服务器上打印工作目录?其次,如何才能真正在远程服务器上运行命令?
【问题讨论】:
标签: amazon-web-services jenkins amazon-ec2 ssh