我遇到類似的問題: 如果我沒有目標目錄的權限,如何將檔案複製為 Jenkins「建置後」操作
我願意將文件從 jenkins 工作區移動/複製/rsync 到
/var/www/應用程式
權利設定為
阿帕契:阿帕契
我已將詹金斯添加到群組中 阿帕契,但是jenkins實例無法將檔案複製到/var/www/app。
我也嘗試將 /var/www/app 的權限設為 apache:jenkins 但 Jenkins 仍然不斷吐出錯誤:權限被拒絕或操作不允許
PS:忘記新增作業系統是centOS;)
編輯1:這是jenkins腳本運行的日誌:
[workspace] $ /bin/sh -xe /tmp/hudson1379987233097some_more_numbers.sh + sh /path_to_sh_script/script.sh 傳送增量檔案列表
應用/
rsync:無法在「/var/www/app/application」上設定權限:不允許操作(1)
這就是腳本本身:)
#!/bin/bash
rsync -avzh /path/to/jenkins/jobs/app/workspace/default/application /var/www/app ;
rsync -avzh /path/to/jenkins/jobs/app/workspace/default/library /var/www/app ;
rsync -avzh /path/to/jenkins/jobs/app/workspace/default/public /var/www/app ;
答案1
經過評論中長時間而富有成效的討論,以及以下內容這個連結用戶設法解決了添加的問題
--no-perms --omit-dir-times
到rsync
選項。
初步嘗試解決此問題:
我想如果你在短時間內不關心安全問題,你可以嘗試一下
chmod a+rwx /var/www/app
然後嘗試寫入該目錄。請注意,如果有子目錄,則必須遞歸執行:
chmod --recursive a+rwx /var/www/app
如果成功,那麼您可以開始逐漸刪除權限,這將幫助您找出問題。
驗證使用者 jenkins 是否已經是 apache 的群組成員
groups apache
答案2
我有類似的問題。我想在 Jenkins 的本機上寫入 /var/www 。在我的伺服器上 /var/www 屬於 www-data,因此我將 jenkins 新增至 www-data 群組並使 /var/www 群組可寫,但不斷出現權限被拒絕的錯誤。只需重新啟動詹金斯服務就可以解決我的問題。
答案3
首先使用 SSH 和 ssh-key Exchange 將您的 Linux 或 apache 伺服器新增至 Jenkin 伺服器。並在 linux/apache 伺服器中建立一個用戶,用戶名為 jenkin(unix 用戶)。因為如果您使用 ssh 來拉/推文件,jenkin 會使用“jenkin”作為標準使用者。
將 apache 使用者新增至 unix 中的 jenkin 群組可能會有所幫助。