通过SSH发送构建工件 - 无法创建目录

Sop*_*des 4 git ssh jenkins

我正在努力研究将jenkins的变化推向aws的自动化过程.问题似乎是在GIT回购中,我有2个文件夹,一个是docroot,另一个是database.我需要docroot进入/var/www/html和数据库现在应该被忽略.

作为试运行,我正在尝试以下设置:

设置1:

后期制作行动

转移集

Source files: **/*
Remove prefix: empty
Remote directory: empty
Exec command: pwd
Run Code Online (Sandbox Code Playgroud)

结果:错误:发布时出现异常,异常消息[无法创建或更改目录.目录[数据库]]构建步骤'通过SSH发送构建工件'将构建结果更改为不稳定完成:不稳定

设置2:

后期制作行动

转移集

Source files: **/*
Remove prefix: empty
Remote directory: /var/www/html
Exec command: pwd
Run Code Online (Sandbox Code Playgroud)

结果:错误:发布时出现异常,异常消息[无法创建或更改目录.目录[var]]构建步骤'通过SSH发送构建工件'将构建结果更改为UNSTABLE Finished:UNSTABLE

所有错误似乎都围绕创建目录 - 但我不需要创建一个...

Joh*_*ney 6

如果您在此步骤中使用的插件是Publish Over SSH Plugin,那么第一个调用点就是在控制台中启用详细输出.要显示此选项,您必须单击Advanced...下拉列表中的服务器名称下的按钮,您应该看到如下内容:

启用详细输出

完成后,而不仅仅是:

ERROR: Exception when publishing, exception message [Could not create or change to directory. Directory [var]]
Build step 'Send files or execute commands over SSH' changed build result to UNSTABLE
Run Code Online (Sandbox Code Playgroud)

你可能会看到这样的事情:

SSH: Connecting from host [some.host]
SSH: Connecting with configuration [Some Configuration] ...
SSH: Creating session: username [user], hostname [x.x.x.x], port [22]
SSH: Connecting session ...
...
SSH: cd [/var/lib/module/]
SSH: OK
SSH: mkdir [var]
SSH: FAILED: Message [Permission denied]
Run Code Online (Sandbox Code Playgroud)

这应该可以为您提供可能出错的线索.

在您的情况下,您没有明确创建任何目录,但如果您切换Remote directory字段的帮助提示,您将看到:

Optional destination folder.

This folder will be below the one in the global configuration, if present.
The folder will be created if does not exist.
Run Code Online (Sandbox Code Playgroud)

这表示您尝试进入的位置pwd不存在,并且插件有助于您尝试创建它,但您的用户无权这样做.

虽然用户权限可能有问题,但如果您确定该目录存在且不应创建任何目录,请检查以下全局设置:

Manage Jenkins -> Configure System -> Publish over SSH
Run Code Online (Sandbox Code Playgroud)

并看看该Remote Directory领域:

在此输入图像描述

假设那里有/home/sophie指定插件将尝试将您的文件发送到/home/sophie/var/www/html您想要的文件.