2016-07-23 55 views
4

我正在嘗試鍛鍊將更改從jenkins推送到aws的自動化過程。問題似乎是在GIT倉庫中,我有2個文件夾,一個是docroot,另一個是database。我需要docroot進入/var/www/html,現在應該忽略數據庫。通過SSH發送構建工件 - 無法創建目錄

,作爲試運行,我試圖進行以下設置:

設置1:

生成後操作

在傳送設置

Source files: **/* 
Remove prefix: empty 
Remote directory: empty 
Exec command: pwd 

結果: 錯誤:發佈時發生異常,異常消息[無法創建或更改爲目錄。目錄[數據庫]] 生成步驟 '發送構建構件通過SSH' 改變建立結果不穩定 成品:不穩定

設置2

生成後操作

在傳送設置

Source files: **/* 
Remove prefix: empty 
Remote directory: /var/www/html 
Exec command: pwd 

結果: 錯誤:發佈時發生異常,異常消息[無法創建或更改爲導向器年。目錄[VAR] 構建步驟「發送構建工件通過SSH」改爲建立結果不穩定 成品:不穩定

所有的錯誤似乎周圍建立一個目錄進行循環 - 但是我不需要創建一個..

回答

4

如果您正在用於此步驟的插件是Publish Over SSH Plugin,那麼似乎是這種情況,第一個調用點將是在控制檯中啓用詳細輸出。對於這個選項出現,你必須點擊Advanced...按鈕的下拉下下來的服務器名稱,你應該看到這樣的事情:

Enabling verbose output

一旦你這樣做的那個,而不是一個單純的:

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 

您可能會看到這樣的事情:

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] 

這應該給你的東西可能是錯誤的線索。

在你的情況,你沒有明確創建任何目錄,但如果您切換的幫助提示爲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. 

這表明該位置嘗試pwd中不存在並且該插件正在幫助您創建它,但您的用戶沒有權限這樣做。

雖然用戶權限可能有問題,如果你有一定的目錄存在,沒有應建立再檢查全局設置中:

Manage Jenkins -> Configure System -> Publish over SSH 

,並採取看看Remote Directory領域:

enter image description here

比方說有規定有那麼插件會嘗試將文件發送到/home/sophie/var/www/html這是不是你想要的/home/sophie