Apache のフォルダでの Jenkins の権限

Apache のフォルダでの Jenkins の権限

次のような問題が発生しています: 宛先ディレクトリへの権限がない場合に、Jenkins の「ビルド後」アクションとしてファイルをコピーする方法

私はJenkinsワークスペースからファイルを移動/コピー/rsyncしたいのですが

/var/www/app

権利が設定されています

アパッチ:アパッチ

Jenkinsをグループに追加しました アパッチしかし、jenkins のインスタンスは /var/www/app にファイルをコピーできません。

/var/www/app の権限を apache:jenkins に設定しようとしましたが、それでも Jenkins はエラーを吐き続けます: 権限が拒否されました、または操作は許可されていません

PS: OS を追加するのを忘れましたが、それは CentOS です ;)

編集 1: これは Jenkins スクリプト実行時のログです:

[ワークスペース] $ /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 グループを書き込み可能にしましたが、アクセス許可が拒否されるというエラーが発生し続けました。jenkins サービスを再起動するだけで問題は解決しました。

答え3

まず、SSH と ssh-key exchange を使用して Linux または apache サーバーを Jenkin サーバーに追加します。次に、linux/apache サーバーに jenkin(unix ユーザー) というユーザーを作成します。ファイルの pull/push に ssh を実行する場合、jenkin は標準ユーザーとして 'jenkin' を使用するためです。

Unix の Jenkin グループに Apache ユーザーを追加すると役立つ場合があります。

関連情報