【发布时间】:2020-02-03 05:12:43
【问题描述】:
尝试在管道中使用 Jenkins ssh 代理插件将 war 文件复制到 tomcat(两者都在 Ec2 上的 Ubuntu 18.04 上运行)。
使用标准示例代码并使用基于密钥的身份验证。 Tomcat 已启动并正在运行。
stage('Deploy to Tomcat'){
sshagent(['Tomcat-cred']) {
sh 'scp -o StrictHostKeyChecking=no target/*.war ubuntu@xxxx:/opt/tomcat/latest/webapps/'
}
}
获取错误:scp:/opt/tomcat/latest/webapps//myweb-0.0.7-SNAPSHOT.war:权限被拒绝
已设置具有“最新”(符号链接)权限的 tomcat 用户
这是我的文件权限:
drwxrwxrwx 7 tomcat tomcat 4096 Sep 16 15:52 webapps.
我现在尝试了一些更改:
scp: /opt/tomcat/latest/webapps/: 没有这样的文件或目录
scp: /opt/tomcat/apache-tomcat-9.0.26/webapps/: 没有这样的文件或目录
目录当然存在:
ubuntu@ip-xxxxx:/opt/tomcat/apache-tomcat-9.0.26$ ls
webapps
【问题讨论】:
-
tomcat用户真的有权限在ubuntu@xxxx:/opt/tomcat/latest/webapps/上写吗?直接从命令行尝试怎么样。也许这不是 sshAgent 的问题..
-
当我与 Jenkins 进行 ssh 时,我使用 'ubuntu' 用户 - 但该用户也应该具有权限。在上面的帖子中添加了更多细节。现在错误不同了——“没有这样的文件”
-
我尝试在 google 中搜索 'scp no such file or directory but file exists',并且有几种解决方案,但我不确定哪一个可以解决您的问题。也许你可以尝试其中一些解决方案。
标签: tomcat jenkins jenkins-pipeline ubuntu-18.04 ssh-agent