同様の問題があります。 ターゲットディレクトリに対する権限がない場合は、Jenkinsの「ビルド後」アクションにファイルをコピーする方法
Jenkins ワークスペースで次にファイルを移動/コピー/rsync する意向があります。
/var/www/アプリケーション
権限が次に設定されている
Apache:Apache
グループにJenkinsを追加しました。 Apacheただし、jenkinsインスタンスはファイルを/var/www/appにコピーできません。
また、/var/www/appの権限をapache:jenkinsに設定しようとしましたが、Jenkinsはまだ次のエラーを吐き出します。権限が拒否されたか、操作が許可されていません。
PS:オペレーティングシステムが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のlocalhostで/var/wwwに書きたいです。私のサーバーでは、/var/wwwはwww-dataの所有であるため、www-dataグループにjenkinsを追加し、/var/wwwグループを書き込み可能にしましたが、許可拒否エラーが発生し続けます。 Jenkinsサービスを再起動すると問題が解決しました。
答え3
まず、SSHとssh-key Exchangeを使用して、LinuxまたはApacheサーバーをJenkinsサーバーに追加します。次に、ユーザー名jenkin(unixユーザー)を使用してlinux / apacheサーバーにユーザーを作成します。 SSHを使用してファイルをインポートまたはプッシュする場合、jenkinは "jenkin"を標準ユーザーとして使用するためです。
unix の jenkin グループに Apache ユーザーを追加すると便利です。